PMIx v5.x series
================

This file contains all the NEWS updates for the PMIx v5.x
series, in reverse chronological order.

5.0.11 -- xx May 2026
---------------------
:: important:: This release contains the following important changes:

                * restoration/repair of the OmniPath support component
                * Repair support of OMPI default MCA params

Detailed changes include:
 - PR #3869: Multiple commits
    - Update NEWS and VERSION
    - pmdl/ompi: use the right type to enumerate myenvars
    - fix var group lookup in component repository release
    - Prepend I/O residuals to correct redirected streams
    - Restore pnet/opa component
    - Don't pass zero-byte stdin to host
    - Correct the wrapper compiler man page
    - Default output to file to nocopy
    - Properly handle qualified values in client get
    - Do not double-process IOF formats
    - Correct cflags used for check_compiler_version.m4
    - Fully support return of static values


5.0.10 -- 23 Jan 2026
---------------------
.. important:: This release includes two critical changes:

               * a fix for a bug that apparently went undetected
                 for a long time. The bug prevented selection of
                 the loopback interface on a node for use by the PMIx
                 messaging system, even when no remote connections
                 were allowed. This prevented PMIx from working
                 in an environment where only loopback devices
                 were available.
               * re-enabling of the compression support. An undetected
                 typo caused PMIx to disable compression even when
                 the supporting libz (or libzng) libraries were present
               * repair of the indirect debugger connection procedure.
                 Hardening of the authentication procedure inadvertently
                 prevented tools fork'd by PMIx itself from connecting
                 back to the server.

Detailed changes include:
 - PR #3781: Multiple commits
    - Update NEWS and VERSION for release
    - Improve description of PMIx_Compute_distances API
    - Silence valgrind issues
    - update-my-copyright.py: properly support git workspaces
 - PR #3762: Update PMIx_Fence to fully conform to Standard
 - PR #3757: Update NEWS and VERSION for rc3
 - PR #3756: Multiple commits
    - printf.c: fix off-by-one + underflow errors
    - Workflow does not contain permissions
    - Potentially overflowing call to snprintf (alert 11)
    - Potential double free and use after free (alerts 13,14)
 - PR #3745: Update NEWS important note
 - PR #3744: Multiple commits
    - Extend debugger CI tests
    - Update VERSION and NEWS
 - PR #3742: Fix indirect debugger launch
 - PR #3740: Multiple commits
    - Add refresh test
    - Fix refresh cache request
 - PR #3737: Multiple commits
    - Fix cmd line option checker
    - Fix bitmap mask literal size
    - Cleanup ready-for-debug announcement
 - PR #3730: Multiple commits
    - Protect against equal signs in option check
    - Check if we fork'd the tool ourselves
 - PR #3723: Roll rc1
 - PR #3720: Multiple commits
    - Fix compression components
    - Use the correct value for the number of info to unpack
    - Remove stale/unused tests
    - bitmap num_set boundary condition bugfix
    - preg/compress parsing bugfix
    - Port bug fixes to zlibng component
    - Flush namespace sinks' residuals before destroying them
    - Put the sink cleanup in the sink destructor
    - Replace sprintf with snprintf
 - PR #3719: Enable use of loopback interface


5.0.9 -- 9 Sept 2025
--------------------
Detailed changes include:
 - PR #3679: Final update of NEWS for release
 - PR #3677: Multiple commits
    - Update NEWS for release
    - Silence a few Coverity complaints
    - define default MAXPATHLEN if not defined by system
    - Improve selection of interfaces
    - Avoid duplicate namespace entries
    - Cleanup a bit on connection handling
    - Allow foreign tools by default
    - Do not remove nspace from global list on rejected connection
    - Correctly check length in pmix_bitmap_num_set_bits
    - Fix the abort server upcall
 - PR #3668: Multiple commits
    - Provide better FQDN support
    - Pass the uid/gid for client connections
    - Prevent memory overrun in regx calculation
    - Pass the client's pid as well
    - Provide more info on connections
    - Extend authentication support
    - Update listener thread setting of permissions on connection files.
 - PR #3653: Multiple commits
    - github: add python-version checks for bindings
    - bindings: fix Python 3.x error for 'long' integer
    - Properly trigger the "keepalive failed" event
    - Ensure cleanup of allocated pmix_info_t
    - Change default show-load-errors to "none"
    - Only report bad prefix if verbose requested
    - Correct client notify of ready for debugger
    - Check return code for notify ready-for-debug
    - Parameterize client finalize timeout
    - IOF output file bugfix
 - PR #3623: Update OAC submodule
 - PR #3621: Multiple commits
    - Check for pthread_np.h header
    - Update VERSION and NEWS
 - PR #3604: Update xversion CI


5.0.8 -- 10 May 2025
--------------------
Detailed changes include:
 - PR #3596: Update NEWS for release
 - PR #3595: Multiple commits
    - Remove stale solaris components
    - Correct client4 error output
    - Provide callback function for client_connected2
    - docs: Add a "Last updated on:" HTML footer
    - Eliminate stale pnet/opa component
    - Use stdout instead of stderr for help output
 - PR #3582: Multiple commits
    - Extend cmd line processor to deal with envar ops
    - Roll version to v5.0.8
 - PR #3581: Add a new client example


5.0.7 -- 19 Mar 2025
--------------------
.. important:: This release contains significant rewrite of
               the PMIx_Query_info and PMIx_Resolve_xxx
               functions to provide better, more complete
               answers.

Detailed changes include:
 - PR #3573: Update NEWS for release
 - PR #3572: Multiple commits
    - Fix segfault on error in shmem2
    - Update NEWS
 - PR #3567: Multiple commits
    - Add new pub-lookup stress example
    - Just ignore any lto settings
    - Have show_help output all directories tried
    - Extend the pubstress test and add it to CI
    - Cleanup spawn and clarify attribute comment
    - Properly handle OPAL_PREFIX
 - PR #3562: Update OAC submodule
 - PR #3556: Multiple commits
    - Do not block in query upcall
    - Further cleanup of "resolve" functions
    - Silence error output when running as singleton - PR #3547: Update NEWS and headers for release
 - PR #3545: Multiple commits
    - Exit with correct status after displaying help or version
    - Revamp the query implementation
    - Update CI workflows
    - Silence warnings exposed by updated CI
    - Fix format of fetch response for peer's version
 - PR #3538: Multiple commits
    - Correct the fetch procedure
    - Propagate shmem fix and add new example plus test
    - Silence Coverity warning in fd support
    - Silence Coverity warnings
    - Silence unnecessary error log
    - Silence some more Coverity nits
    - Cleanup the "resolve" functions
    - Add resolve doc and minor cleanups
 - PR #3523: Enable fetch of job-level data for another nspace
 - PR #3520: Allow arbitrary keys to use data arrays
 - PR #3518: v5.0: Add OPAL_* in the list of default envars
 - PR #3512: Provide a better error message to user
 - PR #3509: Multiple commits
    - Delete stale markdown and update README
    - Update issue templates
 - PR #3506: Add missing lock construct
 - PR #3501: Transfer the query response for partial complete
 - PR #3491: Add missing function


5.0.6 -- 06 Jan 2025
--------------------
.. warning:: This release contains a patch required for all
             servers that enable tool connections. Minus
             the patch, PMIx may over-aggressively cleanup
             files from the temporary directory that it did
             not create. The precise timing of the bug's
             introduction to the release series is unclear.
             Thus, all users are advised to update to this
             version as soon as possible.

Detailed changes include:
 - PR #3479: Multiple commits
    - Cleanup a segfault when the host refuses group construct support
    - Update PRRTE CI to point at PRRTE v3.0 branch
    - Add a --nogreek option to make tarball
    - Repair the file removal code


5.0.5 -- 15 Dec 2024
--------------------
Detailed changes include:
 - PR #3469: Final update for release
 - PR #3468: Remove remnants of unsupported capability
 - PR #3467: Remove stale configure.m4 scripts
 - PR #3465: Update NEWS and VERSION
 - PR #3463: Remove prm framework as not currently implemented
 - PR #3462: Remove unused components from various frameworks
 - PR #3461: Remove pgpu framework
 - PR #3460: Remove pstrg framework
 - PR #3452: .gitignore: add configure~
 - PR #3449: Multiple commits
    - Retry fetch with wildcard rank
    - Fix typo in shmem2 fetch


5.0.4 -- 13 Nov 2024
--------------------
.. important:: This release represents the expected end of
               the v5.0 series. Any follow-on bug fixes will
               be committed to the release branch, but are
               unlikely to generate an official release
               tarball.

Detailed changes include:
 - PR #3441: Update NEWS and VERSION for final release
 - PR #3440: Minor cleanups plus resolve peers example
 - PR #3434: Collapse the pfexec framework
 - PR #3432: Update VERSION for release
 - PR #3430: Multiple commits
    - Update NEWS to include v5.0 branch
    - Drop the sphinx required level to match PRRTE
    - Ensure IOF respects formatting requests
 - PR #3419: Add some missing attributes
 - PR #3417: Multiple commits
    - Fix typo in equality check
    - Fix delayed get
    - avoid warn-as-error for variable init
    - Add support for libz-ng
 - PR #3408: Update pmix_portable_platform_real.h from upstream gasnet
 - PR #3404: Path must start with "src"
 - PR #3402: Remove unused yaml
 - PR #3400: add contrib/construct_event_strings.py to the dist tarball
 - PR #3397: Multiple commits
    - Add missing files
    - mca/pif: fix pmix_found_linux typo
    - Add cross-version compatibility to docs
 - PR #3393: Multiple commits
    - Add python directive
    - Cleanup pfexec spawn operations
    - Add missing function call
 - PR #3387: Update OAC to latest HEAD
 - PR #3385: Correctly check MCA params
 - PR #3383: Protect against LTO optimizer
 - PR #3381: Read The Docs updates
 - PR #3379: Multiple commits
    - Revert Sphinx requirements
    - Warn against building tarball on MacOSX
    - configure: fix regression that caused python to be mandatory to build
    - configure: fix broken bashisms resulting in logic failure
    - Update the requirements for Sphinx
 - PR #3372: Multiple commits
    - Update MLNX CI
    - Apply prefix to copied version of the app array

5.0.3 -- 8 Jul 2024
-------------------
Detailed changes include:
 - PR #3369: Update NEWS and VERSION for release
 - PR #3366: Transfer results from partial success of lookup
 - PR #3363: Multiple commits
    - Fix singletons
    - Protect against NULL fields
 - PR #3361: Remove unused function in shmem2
 - PR #3357: Github action: bring back MacOS builds
 - PR #3354: Multiple commits
    - Don't strip quotes from cmd line entries
    - Handle single character filenames
    - Update tar format to tar-pax
    - Perform some cleanup
    - Include devel-check status in configure summary
    - Turn off MacOS CI
 - PR #3334: Fix function declaration
 - PR #3332: Fixes for PR3329

5.0.2 -- 21 Mar 2024
--------------------
.. important:: Cross-version incompatibility
               The known issue of cross-version operability between
               members of the PMIx v5.0 release series has been
               resolved in this release. Thus, v5.0.2 and all subsequent
               releases can operate across versions, including the
               v5.0.1 and v5.0.0 releases.

Detailed changes include:
 - PR #3330: Do not include PMIX_PREFIX in spawn upcall
 - PR #3325: Multiple commits
    - Correctly set the app cmd and argv0 fields
    - Don't overwrite user's args
    - Correct error in retrieval of node and app info
 - PR #3319: Toughen the submodule checks in autogen.pl
 - PR #3317 Correct group modex storage to avoid duplication
 - PR #3314 Fix memory leak in storing of modex data
 - PR #3311 More cleanup of group operations and local client array
 - PR #3307 Include notes about submodules in docs
 - PR #3299 Multiple commits
    - gds/shmem2: provide a useful error message on memory allocation failure
    - Add "close stale issues" actions
    - oac: strengthen Sphinx check
    - Remove stat call when destroying a dirpath
    - Do not remove the system tmpdir during cleanup
 - PR #3293 Multiple commits
    - gds/shmem: fix build
    - Update how PMIx attributes are looked up.
    - Improve PMIx attribute lookup efficiency.
    - gds/shmem: improve cross-version capabilities
    - Revert "Disable gds/shmem at runtime"
    - Revert "gds/shmem: fix build."
    - Rename the gds/shmem component to gds/shmem2
    - Protect output files during cleanup
    - Begin to add man pages for PMIx commands
    - Restore support for HWLOC truly ancient
    - Continue work on tool man pages
    - Fix the dictionary transfer in shmem2
 - PR #3280 Multiple commits
    - Implement attribute to specify connection order and process MCA params
    - Error out of attempts for 32-bit builds
    - hash: Add internal APIs that specify target key index.
    - hash: Update pmix_hash functions to accept a pmix_keyindex_t*
    - gds/shmem: Improve error message in tma_realloc()
    - Remove static version of global function
    - Fix handling of "--" in cmd lines
    - Update the doubleget test
    - Fully implement refresh cache support
    - Adjust preg component priorities
    - Remove unused function
    - gds/shmem: Implement first cut of tma_realloc()
    - Begin work on removing use of "stat"
    - Fix typo
    - avoid loopback in resolve_nspace_requests
    - Refactor the prm framework
    - Assign NULL to free'd pointer
    - Cleanup some "unused params" errors
    - Protect a variable
    - Check for stdatomic.h
    - Remove pmix_osd_dirpath_access
    - Remove use of stat from pmix_getcwd
    - Remove use of stat
    - Remove use of stat in pmix_globals
    - Remove use of stat to check file existence
    - Test open a dir instead of using stat
    - Minor cleanups for unused params
    - pmix.h: Add capability flags
    - Cleanup comments and prep for commit
    - Do not remove the system tmpdir during cleanup
    - Cleanup palloc and prun connections
    - Cleanup a few typos and remove debug output
    - Cast a few parameters when translating macros to functions
    - Resolve problem of stack variables and realloc
    - Restore support for detecting shared file systems
    - Properly handle directories during cleanup
    - gds/shmem: revert tma_free() strategy
    - gds/shmem: fix potentially confusing error output
    - Touchup the dirpath_destroy code
    - Fix broken link in README
    - Add a query attribute for number of available slots
    - Do not add no-unused-parameter for non-devel-check builds
    - Better support global keys
    - PMIx_Query_info: removed duplicated PMIX_RELEASE
    - Provide an explanation of session directories
    - Fix --enable-devel-check builds
    - Restore default to enable-devel-check in Git repos
    - Protect against empty envar definition for mca_base_param_files
    - Fix test builds with picky compiler options
    - Protect against NULL hash table labels in debug output
    - Update the Python regex for doc build
    - Disable gds/shmem at runtime
    - Cleanup update
 - PR #3182 Multiple commits
    - Remove debug print
    - Make checking min versions consistent
    - Add an action to test older HWLOC version
    - Touchup the OMPI integration
    - Fix couple of bugs in cmd line parser
    - Fix typo in cmd line processor
    - Add a new attribute to specify connection order
 - PR #3166: Blacklist the HWLOC GL component to avoid deadlock
 - PR #3162: Add a new Github Action


5.0.1 -- 9 Sep 2023
-------------------
.. warning:: CVE-2023-41915

             A security issue was reported by François Diakhate (CEA)
             which is addressed in the PMIx v4.2.6 and v5.0.1 releases.
             (Older PMIx versions may be vulnerable, but are no longer
             supported.)

             A filesystem race condition could permit a malicious user
             to obtain ownership of an arbitrary file on the filesystem
             when parts of the PMIx library are called by a process
             running as uid 0. This may happen under the default
             configuration of certain workload managers, including Slurm.

.. warning:: Cross-version incompatibility

             There is a known issue when operating between
             PMIx versions v5.0.1 and v5.0.0. This occurs due
             to a difference in the key-to-index conversion
             between the two versions. Users are advised
             to set the PMIX_MCA_gds=hash parameter
             in their environment when using these two
             versions.

Detailed changes include:
 - Update news and version for release
 - PR #3149 Multiple commits
    - Do not follow links when doing "chown"
    - Cleanup a little debug in new pctrl tool
 - PR #3145 Multiple commits
    - Retrieve pset names upon PMIx_Get request
    - Add a new "pctrl" tool for requesting job control ops
 - PR #3144 Multiple commits
    - Properly support the "log" example
    - show_help: strip leading/trailing blank lines
    - docs: fix some leftover "Open MPI" references
    - docs: fix HTML word wapping in table cells
    - Improve error handling in setup_topology
    - Define a new server type and connection flags
    - Minor cleanups for disable-dlopen
    - Fix Python bindings
 - PR #3131 Multiple commits
    - Switch to using event lib for connections
    - Roll to version 5.0.1


5.0.0 -- 7 Aug 2023
-------------------
.. important:: This is the first release in the v5 family
               and includes some significant changes, both internal
               and user-facing. A partial list includes:

               * initial attribute and API definitions in support of
                 scheduler integration to both applications and
                 resource managers/runtime environments.

               * a new shared memory implementation that removes the need
                 for special "workaround" logic due to limitations in the
                 prior method

               * support for "qualified" values whereby an application
                 can post multiple values to the same key, each with one
                 or more qualifiers - and then retrieve the desired one
                 by specifying the appropriate qualifier.

               * availability of both function and macro equivalents
                 for all support operations (e.g., PMIX_ARGV_APPEND and
                 PMIx_Argv_append). Note that the macro versions have
                 been deprecated by the PMIx Standard, but remain highly
                 recommended for use by those compiling against the
                 library (as opposed to dlopen'ing it)

A full list of individual changes will not be provided here,
but will commence with the v5.0.1 release.
