Skip to content

docs: update TCP docs + support deep linking into PMIx and PRTE docs#13599

Merged
jsquyres merged 4 commits intoopen-mpi:mainfrom
jsquyres:pr/tcp-docs-updates
Jan 14, 2026
Merged

docs: update TCP docs + support deep linking into PMIx and PRTE docs#13599
jsquyres merged 4 commits intoopen-mpi:mainfrom
jsquyres:pr/tcp-docs-updates

Conversation

@jsquyres
Copy link
Member

@jsquyres jsquyres commented Dec 29, 2025

This PR replaces PR #13584 (some minor TCP BTL docs updates), but also adds a lot more. See individual commit messages for details, but here's the short version:

  1. Opportunistic fixing of update-my-copyright.pl to properly support Git workspaces and also remove support for Mercurial and Subversion.
  2. Update the TCP BTL docs, per docs:update tcp tuning page #13584.
  3. Add support for Intersphinx, which allows deep linking into PMIx and PRTE docs.
  4. Update all references to pmix_info(1) and prte_info(1) in OMPI's RST docs to deep link into their respective docs.
    • Made this a separate commit just to make reviewing the code changes for Intersphinx support easier.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances Open MPI's documentation infrastructure by adding Intersphinx support for deep linking into PMIx and PRRTE documentation, while also updating TCP BTL documentation and fixing the copyright update script.

Key Changes:

  • Added Intersphinx extension to enable cross-referencing between Open MPI, PMIx, and PRRTE documentation
  • Updated TCP BTL documentation to reference PRRTE/PMIx parameters instead of deprecated OOB TCP parameters
  • Fixed update-my-copyright.pl to support Git workspaces and removed Mercurial/Subversion support

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/tuning-apps/networking/tcp.rst Updated TCP BTL documentation to reference PRRTE/PMIx network configuration parameters
docs/requirements.txt Added sphobjinv dependency for Intersphinx object inventory manipulation
docs/mca.rst Converted plain text references to pmix_info(1) and prte_info(1) into Intersphinx cross-references
docs/launching-apps/tm.rst Converted command references to Intersphinx cross-references for consistency
docs/launching-apps/pals.rst Updated command references to use Intersphinx linking
docs/launching-apps/lsf.rst Updated command references to use Intersphinx linking
docs/launching-apps/gridengine.rst Updated command references to use Intersphinx linking
docs/conf.py Implemented Intersphinx mapping configuration with dynamic inventory generation for internal PMIx/PRRTE
docs/Makefile.am Added environment variables to Sphinx build commands for Intersphinx configuration
contrib/update-my-copyright.pl Simplified script to use only Git, removing Mercurial/Subversion support
config/opal_config_pmix.m4 Added logic to determine and export PMIx documentation URL base
config/ompi_setup_prrte.m4 Added logic to determine and export PRRTE documentation URL base
3rd-party/prrte Updated submodule pointer to include PRRTE documentation changes
.gitignore Added pattern to ignore generated Intersphinx inventory files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jsquyres jsquyres force-pushed the pr/tcp-docs-updates branch 3 times, most recently from d70097f to 759bbca Compare December 29, 2025 13:47
@jsquyres jsquyres requested a review from Copilot December 29, 2025 13:55
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (2)

docs/conf.py:1

  • The comment states this is setting up internal PMIx docs, but the actual value being set is for OMPI_PRRTE_DOCS_URL_BASE (PRRTE). The URL path should be '../../pmix/html' for PMIx context, not PRRTE. This appears to be in the wrong conditional block - it should be in the PMIx section around line 312, not the PRRTE comment context.
# Configuration file for the Sphinx documentation builder.

docs/conf.py:1

  • Comment mentions 'external PRRTE docs URL' but this is in the PMIx configuration section (based on the surrounding context at line 301). Should reference 'external PMIx docs URL' instead.
# Configuration file for the Sphinx documentation builder.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jsquyres jsquyres force-pushed the pr/tcp-docs-updates branch 5 times, most recently from 2834e73 to bc928da Compare December 30, 2025 21:10
hppritcha
hppritcha previously approved these changes Jan 5, 2026
@bwbarrett
Copy link
Member

@jsquyres I finally got the AMIs updated, and there is a real build failure. It looks like a file is getting left behind after a step in make distcheck:

make[2]: Entering directory '/home/ubuntu/workspace/pen-mpi.pull_request-v2_PR-13599/openmpi-gitclone/_build/sub'
test -z "*~ .#*" || rm -f *~ .#*
rm -rf .libs _libs
rm -f *.lo
test -z "ompi/include/ompi/version.h oshmem/include/oshmem/version.h opal/include/opal/version.h ompi/mpi/fortran/configure-fortran-output.h contrib/dist/mofed/debian/changelog contrib/dist/mofed/debian/control contrib/dist/mofed/debian/copyright contrib/dist/mofed/debian/rules contrib/dist/mofed/compile_debian_mlnx_example" || rm -f ompi/include/ompi/version.h oshmem/include/oshmem/version.h opal/include/opal/version.h ompi/mpi/fortran/configure-fortran-output.h contrib/dist/mofed/debian/changelog contrib/dist/mofed/debian/control contrib/dist/mofed/debian/copyright contrib/dist/mofed/debian/rules contrib/dist/mofed/compile_debian_mlnx_example
test . = "../.." || test -z "" || rm -f 
rm -f libtool config.lt
rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
rm -f cscope.out cscope.in.out cscope.po.out cscope.files
make[2]: Leaving directory '/home/ubuntu/workspace/pen-mpi.pull_request-v2_PR-13599/openmpi-gitclone/_build/sub'
rm -f config.status config.cache config.log configure.lineno config.status.lineno
rm -f Makefile
ERROR: files left in build directory after distclean:
./docs/opal-pmix-objects.inv
make[1]: *** [Makefile:1819: distcleancheck] Error 1
make[1]: Leaving directory '/home/ubuntu/workspace/pen-mpi.pull_request-v2_PR-13599/openmpi-gitclone/_build/sub'
make: *** [Makefile:1750: distcheck] Error 1

Don't search for a .git directory; it might not exist.

Also, remove unnecessary Mercurial and Subversion support; we haven't
used these for years.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
Signed-off-by: Jeff Squyres <jeff@squyres.com>
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
Use Intersphinx
(https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html)
for making links out to PMIx and PRTE docs.

If we simply always linked against the https/internet PMIx and PRTE
docs, Intersphinx makes this very easy.  But that's not the Open MPI
way!  Instead, we want to support linking against the internal
(embedded) PMIx and PRTE docs when relevant and possible, mainly to
support fully-offline HTML docs (e.g., for those who operated in
not-connected-to-the-internet scenarios).  As such, there's several
cases that need to be handled properly:

1. When building the internal PMIx / PRTE, link to the local instances
   of those docs (vs. the https/internet instance).  Ensure to use
   relative paths (vs. absolute paths) so that the pre-built HTML docs
   that we include in OMPI distribution tarballs work, regardless of
   the --prefix/etc. used at configure time.

   NOTE: When the Open MPI Sphinx docs are built, we have not yet
   installed the PMIx / PRTE docs.  So create our own (fake)
   objects.inv inventory file for where the PMIx / PRTE docs *will* be
   installed so that Intersphinx can do its deep linking properly.  At
   least for now, we only care about deep links for pmix_info(1) and
   prte_info(1), so we can just hard-code those into those inventory
   files and that's good enough.  If the OMPI docs link more deeply
   into the PMIx / PRTE docs someday (i.e., link to a bunch more
   things than just pmix_info(1) / prte_info(1)), we might need to
   revisit this design decision.

2. When building against an external PMIx / PRTE, make a best guess as
   to where their local HTML doc instance may be (namely:
   $project_prefix/share/doc/PROJECT).  Don't try to handle all the
   possibilities -- it just gets even more complicated than this
   already is.  If we can't find it, just link out to the
   https/internet docs.

Other miscellaneous small changes:

* Added another Python module in docs/requirements.txt (for building
  the Sphinx inventory file).
* Use slightly-more-pythonix dict.get() API calls in docs/conf.py for
  simplicity.
* Updated OMPI PRTE submodule pointer to get a prte_info.1.rst label
  update that works for both upstream PRTE and the OMPI PRTE fork.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
Per the prior commit, update all OMPI docs RST to properly link to
PMIx and PRTE documentation.

Also added a few mpirun(1) links because they were in the vicinity of
the pmix_info(1) and prte_info(1) that were being updates.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
@jsquyres
Copy link
Member Author

CI failure is that the new Python module was added to all the relevant CI AMIs except RHEL 8. We're adding it now -- will take a few hours to build the new AMI, and then we can re-run CI.

rhc54 added a commit to rhc54/prrte that referenced this pull request Jan 13, 2026
Ported from an OMPI contribution by Jeff Squyres (part of open-mpi/ompi#13599):

```text
update-my-copyright.py: properly support git workspaces

Don't search for a .git directory; it might not exist.

Also, remove unnecessary Mercurial and Subversion support; we haven't
used these for years.

```

Signed-off-by: Ralph Castain <rhc@pmix.org>
rhc54 added a commit to openpmix/prrte that referenced this pull request Jan 13, 2026
Ported from an OMPI contribution by Jeff Squyres (part of open-mpi/ompi#13599):

```text
update-my-copyright.py: properly support git workspaces

Don't search for a .git directory; it might not exist.

Also, remove unnecessary Mercurial and Subversion support; we haven't
used these for years.

```

Signed-off-by: Ralph Castain <rhc@pmix.org>
@jsquyres jsquyres marked this pull request as ready for review January 13, 2026 16:13
@hppritcha hppritcha self-requested a review January 13, 2026 18:07
@jsquyres jsquyres merged commit 4b7a78a into open-mpi:main Jan 14, 2026
15 of 17 checks passed
@jsquyres jsquyres deleted the pr/tcp-docs-updates branch January 14, 2026 12:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants