Skip to content

Release Checklist

James Dinan edited this page Feb 13, 2019 · 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.h4.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, and GNI providers.
  • Test with Portals 4 reference implementation (must be done on an InfiniBand cluster).
  • 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"

Miscellaneous Tasks

  • Synchronize the external openshmem-org/sos-test repository and tag it with the corresponding version number.
  • (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.