-
Notifications
You must be signed in to change notification settings - Fork 456
Release procedures
Sean Hefty edited this page Sep 28, 2016
·
40 revisions
It's time to release -- woo hoo!
Make sure that each of the following items are done before publishing a new tarball:
- For libfabric:
- Update the version number in
configure.acto the final release version- All version numbers must be 3 digits:
X.Y.Z(even if Z is 0).
- All version numbers must be 3 digits:
- Update the version numbers in
include/rdma/fabric.h:-
FI_VERSION_MAJORshould match the first digit of the version number inconfigure.ac -
FI_VERSION_MINORshould match the second digit of the version number inconfigure.ac
-
- Update the shared library version number(s) in
Makefile.amper the GNU Libtool shared library version number rules- Pro tip: run
git log --stat --no-merges > log.txtas the head of the master - Examine this file all the way back to the Git tag for the previous release; look for changes to files in
src/,include/, andinclude/rdmato help determine if thec:r:aversion values need to change - Pro tip: run
git log <last_version_tag>..HEAD -- include/rdma - Will show all changes to the external header files since the last release. The last_version_tag should be similar to
v1.3.0
- Pro tip: run
- Update all documentation files (especially including dates and version numbers), including:
- Update the Provider Feature Matrix (PFM) for this release
- Add a link to this version's PFM on the main PFM wiki page
-
NEWS.md, including link to "Provider Feature Matrix vX.X.X" README.mdAUTHORSman/fi_<providers>.7.md- Update the years in the copyright notices in
COPYING - ...any other doc files that may not be included in this list
- Update the version number in
- For fabtests:
- Update the version number in
configure.acto the final release version - Update all documentation files (especially including dates and version numbers):
READMEREADME.mdAUTHORS- Update the years in the copyright notices in
COPYING - ...any other doc files that may not be included in this list
- Update the version number in
- Make final
libfabric-x.y.z.tar.gzandlibfabric-x.y.z.bz2tarballs - Make final
fabtests-x.y.z.tar.gzandfabtests-x.y.z.bz2tarballs
- Ensure libfabric
make distcheckpasses - Build and install libfabric
- Check that the version number and release date is correct in the installed man pages
- Ensure fabtests
make distcheckpasses - Build and install fabtests (from a tarball and with the newly-installed libfabric)
- Ensure all providers pass all (relevant) tests
- Build and install previous version of libfabric (from a tarball)
- Build and install previous version of fabtests against previous version of libfabric (from a tarball)
-
rm -rfthe installation of the previous version of libfabric - Set
LD_LIBRARY_PATHto point to the installation of the new libfabric - Re-run all fabtests and ensure that they still pass
- Ensure that building a libfabric source RPM works on a RHEL system
- Ensure that building the libfabric binary RPMs (
libfabricandlibfabric-devel) work on a RHEL system - Install both RPMs on an RHEL system
- Test building and running fabtests against the RPM-installed libfabric
- Test building a libfabric-based program with the output from
pkg-configwith the RPM-installedlibfabric.pc - Uninstall
libfabric-develand ensure libfabric programs still run correctly
-
git tag -a vX.Y.Zon the libfabric master branch -
git tag -a vX.Y.Zon the fabtests master branch -
git push --tags --dry-runto libfabric. Remove--dry-runwhen you're convinced it is correct. -
git push --tags --dry-runto fabtests. Remove--dry-runwhen you're convinced it is correct. - Make a libfabric release corresponding to the git tag on https://github.com/ofiwg/libfabric/releases
- Make a fabtests release corresponding to the git tag on https://github.com/ofiwg/fabtests/releases
- Update Homebrew formula in homebrew-core. Make sure to follow the CONTRIBUTING.md guide.
- Copy the
man/*.[0-9].mdfiles from exactly the same Git hash that was used to make the official tarball to thegh-pagesbranch of the libfabric Git repo- Put them in
vX.Y.Z/man/ - Also put an
index.mdfile in that directory (copy one from the prior releases and edit it to reflect this version, and add/remove any man pages as relevant for this release)
- Put them in
- Update the main
index.mdpage:- Add links to the new libfabric and fabtests release tarballs
- Add link for the man pages for this release
- Close the relevant Github milestone in
ofiwg/libfabricandofiwg/fabtests - Ensure that new Github milestones exist in
ofiwg/libfabricandofiwg/fabtestsfor the next release - Send an email to the
ofiwgmailing list announcing the release
- Update the libfabric and fabtests version numbers in
configure.acandinclude/rdma/fabric.hto be the next version, but with ana1suffix (i.e., alpha version 1).- E.g., if you just released v1.3.0, update the version to be v1.4.0a1.
- Update crontab to put new nightly tarballs in the new version directory
- E.g., in
.../ofiwg/nightly_tarballs/v1.4.x/
- E.g., in