-
Couldn't load subscription status.
- Fork 928
Closed
Description
Build the Release
- Verify the major,minor,release,greek version numbers in
VERSION - Update the
c:r:ashared library version number(s) inVERSIONper the GNU Libtool shared library version number rules- NOTE: It may be helpful to use a command like
git checkout BRANCH; git pull --rebase; git log --stat --topo-order --decorate TAG_FROM_PREVIOUS_RELEASE..HEADto examine the Git logs and see what has changed. - IF RELEVANT: If this is a new backwards-compatible release on a single branch (i.e., this is
vx.y.zwherez>1), you probably want to examinegit log --stat --no-merges last_release_tag..this_branch_nameto see what source code files have changed (which directly impacts how to increment thec:r:avalues). - IF RELEVANT: If this is a new release series (e.g.,
vx.y.0), setrto 0 and increasecvalues by 10 compared to the first release in the prior series (i.e.,vx.(y-1).0orv(x-1).0.0, as relevant). - IF RELEVANT: If this is a new backwards-compatible release series (i.e.,
vx.y.0, wherey>1), setavalues to 10 so that the shared libraries will be ABI compatible with the prior release series. - IF RELEVANT: If this is a new backwards-INcompatible release series (i.e.,
vx.0.0), setavalues to 0 so that there is no possibility of users accidentally mixing shared library versions.
- NOTE: It may be helpful to use a command like
- Update all documentation files (especially including dates and version numbers), including:
-
README: all relevant updates, build options, etc. Be sure to update the date near the top of the file. -
NEWS: List all user-noticeable changes. Similar to setting shared library versions (above):»- Pro tip: if this is a new release on a single branch (i.e., this is
vx.y.zwherez>1), you probably want to examinegit log --stat --no-merges last_release_tag..this_branch_nameto see what has changed. - Pro tip: if this is a new release series (i.e., this is
vx.y.0wherey>1, or this isvx.0.0), you will need to be more creative in examining the git logs because this release is on a different branch than the prior release (vx.(y-1).z). Hence,git log ... last_release_tag..this_branch_namewill not necessarily give you need. You may need to merge what has changed on your branch with what has changed on the prior release branch, depending on when the prior release branched from this branch. Read the SPECIFYING RANGES sectiongitrevisions(7)for more details.
- Pro tip: if this is a new release on a single branch (i.e., this is
-
LICENSE: Update the years in the copyright notices»
-
- Create a tag for the release, matching the version being released (ie,
git tag -a v3.0.1 <HASH>, orgit tag -a v4.0.0rc1 <HASH>). Verify was a nightly tarball hash and that the MTT results look good. Push the tag for a release. - Run the Tarball Builder Job on Jenkins to build the tag as a release build.
Publish the release (or release candidate)
- DO NOT DO A FINAL RELEASE if you are too close to Supercomputing and/or Christmas. If you release during these time periods, there can be a ~2 week delay while the Open MPI developer community is not paying attention to their email (and will not be able to respond to the inevitable post-release user emails).
- Update the web site to show the release and each release candidate
- If Z is 0 (i.e., this is the first release in a series):
-
cp -r software/ompi/vCURRENT_RELEASE software/ompi/vRELEASE(where RELEASE is for the new release X.Y and CURRENT_RELEASE is the X.Y of the current release) - Edit each file in the new directory to update for the new release
- Edit
timeline-graph.phpto indicate relevant dates, such as branching
- Edit
- Update
version.incto remove the "existing" versions from the previous release - Edit
software/ompi/nav.incand make this release series be the current stable release; shift other release series down as appropriate
-
- If Z is 0 (i.e., this is the first release in a series):
- For the final release:
- If Z is 0, then edit
nightly/index.phpto make this release series be the current stable release; shift other release series snapshot tarballs down as appropriate #12319 - Edit
software/ompi/current/version.incto set the new release series as the current software release. - Add the new version in
version.inc - ** Where to mail: **
- IF release candidate:**
- ** if rc1 ** send to: devel@lists.open-mpi.org, ompi-packagers@lists.open-mpi.org, and users@lists.open-mpi.org.
- ** if later rc, but NOT release **, just send to devel@lists.open-mpi.org.
- IF NOT release candidate: Update
timeline-graph.php(in the same directory asversion.inc) to add a date stamp to the timeline graph for the release of this version (i.e., callmilestone()like it is for the other releases) - IF NOT release candidate: Update the top-level
index.phpwith a news bullet about this release. It is likely possible to guess the correct URL that will be used to web archive the announcement mail sent to announce@lists.open-mpi.org, ompi-packagers@lists.open-mpi.org
- If Z is 0, then edit
- Publish the newest version of the man pages: Check with Jeff on instructions for RTD-based releases