-
Notifications
You must be signed in to change notification settings - Fork 387
Release procedures
Ben Turrubiates edited this page Apr 13, 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.ac
to 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_MAJOR
should match the first digit of the version number inconfigure.ac
-
FI_VERSION_MINOR
should match the second digit of the version number inconfigure.ac
-
- Update the shared library version number(s) in
Makefile.am
per the GNU Libtool shared library version number rules- Pro tip: run
git log --stat --no-merges > log.txt
as 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/rdma
to help determine if thec:r:a
version values need to change
- 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.md
AUTHORS
man/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.ac
to the final release version - Update all documentation files (especially including dates and version numbers):
README
README.md
AUTHORS
- 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.gz
andlibfabric-x.y.z.bz2
tarballs - Make final
fabtests-x.y.z.tar.gz
andfabtests-x.y.z.bz2
tarballs
- Ensure libfabric
make distcheck
passes - Build and install libfabric
- Check that the version number and release date is correct in the installed man pages
- Ensure fabtests
make distcheck
passes - 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 -rf
the installation of the previous version of libfabric - Set
LD_LIBRARY_PATH
to 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 (
libfabric
andlibfabric-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-config
with the RPM-installedlibfabric.pc
- Uninstall
libfabric-devel
and ensure libfabric programs still run correctly
-
git tag -a vX.Y.Z
on the libfabric master branch -
git tag -a vX.Y.Z
on the fabtests master branch -
git push --tags --dry-run
to libfabric. Remove--dry-run
when you're convinced it is correct. -
git push --tags --dry-run
to fabtests. Remove--dry-run
when 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].md
files from exactly the same Git hash that was used to make the official tarball to thegh-pages
branch of the libfabric Git repo- Put them in
vX.Y.Z/man/
- Also put an
index.md
file 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.md
page:- 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/libfabric
andofiwg/fabtests
- Ensure that new Github milestones exist in
ofiwg/libfabric
andofiwg/fabtests
for the next release - Send an email to the
ofiwg
mailing list announcing the release
- Update the libfabric and fabtests version numbers in
configure.ac
andinclude/rdma/fabric.h
to be the next version, but with ana1
suffix (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