Skip to content

Release Checklist

David Ozog edited this page May 15, 2024 · 23 revisions

Updating the Version Number

  • Update version number in configure.ac; format vX.Y.Z[suffix]. The X and Y numbers correspond to the highest numbered version of the OpenSHMEM specification that is supported by the release and the Y number starts at 0 and is incremented with each subsequent release. The suffix is used to denote a pre-release and has the format [a-z]+[0-9]+; we have adopted a convention of starting with "1" rather than "0" for suffix numbering. A suffix of "a" denotes an alpha release and "rc" denotes a release candidate. The suffix should not be appended with a "-" as this causes problems for autoconf (e.g. v1.3.0-rc1 was a poor choice). Examples of good version numbers: v1.4.0, v1.4.0a1, v1.4.0rc1.
  • Add entry to NEWS file for the new version. Autoconf will check that the version numbers match and fail if the NEWS entry is missing.
  • Update SHMEM_MAJOR_VERSION and SHMEM_MINOR_VERSION in mpp/shmem-def.h.in and mpp/shmem.fh.in. These numbers must follow the rules defined in the OpenSHMEM specification. In particular, they should correspond to the highest numbered version of the OpenSHMEM specification that is supported.

Testing the Release

  • Test with latest release of libfabric, including sockets, PSM2, PSM3, OPX, CXI, and verbs;ofi_rxm providers.
  • Test with c99 and c11 compilers (e.g. -std=c99)
  • Test that the tarball produced by make dist can be used to successfully build SOS (a common error is that newly added files are not included in the distribution).
    • $ make distcheck
  • Test the RPM package build:
    • $ ./configure --with-ofi=$HOME/opt/libfabric --enable-pmi-simple
    • $ make dist (note this doesn't work on Neptune)
    • $ rpmbuild -ta ./sandia-openshmem-X.Y.Z.tar.gz --define "configargs --enable-pmi-simple --with-ofi=path-to-libfabric"
  • Coverity check (optional - there may be many false positive warnings)
  • Check that all new profiling symbols (pshmem) are included in SOS (see pshmem_symbol_check.sh)
  • Travis only checks --with-ofi --with-cma --enable-error-checking --enable-profiling --enable-ofi-mr=basic --enable-av-map --enable-remote-virtual-addressing --enable-pmi-simple but we are consistently low on credits. It may be best to check it (and CMA in general) manually.
  • Check tests with --enable-lengthy-tests
  • Check non-gcc compilers (esp., Intel's oneAPI icx/icpx)
  • Check scripts/docker works...
  • Test with Portals 4 reference implementation (must be done on an InfiniBand cluster).

Miscellaneous Tasks

  • Create a new release package on Github using previous releases as a template.
  • Synchronize the external openshmem-org/tests-sos repository and tag it with the corresponding version number.
  • Update the configure.ac version number in openshmem-org/tests-sos
  • (Post release) synchronize upstream dependencies if necessary (OMPI configury, PMI-simple, dlmalloc, uthash, etc.)
  • (Post release) Update SOS_VERSION in scripts/simple-build-ofi.sh. Must be done only after the release is tagged.