Skip to content

Release process

Kenneth Hoste edited this page Sep 7, 2021 · 39 revisions

This page describes the steps to be taken to release a new version of EasyBuild.

Do make sure you have an account on PyPi, see here.

Step 0: Make sure EasyBuild is release-ready

To make sure that EasyBuild is ready to release, use the easybuild/scripts/prep_for_release.py script on each of the EasyBuild packages, as follows:

  • easybuild-framework: python easybuild/scripts/prep_for_release.py
  • easybuild-easyblocks: python ../easybuild-framework/easybuild/scripts/prep_for_release.py easybuild/easyblocks/__init__.py
  • easybuild-easyconfigs: python ../easybuild-framework/easybuild/scripts/prep_for_release.py setup.py

Next to running the prep_for_release.py script, the installed EasyBuild packages should be able to pass a full regression test.

If the output of this script doesn't report any serious issues, and a full regression test has passed, EasyBuild should be ready to release.

Step 1: Publish new release on PyPi

The following two steps should be repeated for each of the three EasyBuild subpackages (easybuild-framework, easybuild-easyblocks, easybuild-easyconfigs), as well as for the meta-package easybuild.

Note: make sure do perform the steps below in a pristine copy of the master branch, i.e. not a working copy that may contain unfinished/untracked work!

Step 1.1: Register new version on PyPi

First, make sure the new version of an EasyBuild package gets registered on the Python Package Index (PyPi):

python setup.py register

The first time, you'll need to enter your PyPi login information, which will then be cached to $HOME/.pypirc.

Step 1.2: Upload new version to PyPi

To upload the new version of an EasyBuild package to PyPi, use:

python setup.py sdist && twine upload dist/easybuild-framework-3.9.2.tar.gz
python setup.py sdist && twine upload dist/easybuild-easyblocks-3.9.2.tar.gz
python setup.py sdist && twine upload dist/easybuild-easyconfigs-3.9.2.tar.gz
python setup.py sdist && twine upload dist/easybuild-3.9.2.tar.gz

Step 2: Tag released version in git

You should also tag the version in git for each of the EasyBuild repositories, and push the tag to GitHub (replace 1.0 with the actual version number in the commands below):

git tag -a v1.0
git push origin v1.0

Step 3: Retest bootstrap script

Note: test bootstrap on a system different than where the release was made from!

curl -O https://raw.githubusercontent.com/hpcugent/easybuild-framework/develop/easybuild/scripts/bootstrap_eb.py
python bootstrap_eb.py $HOME/.local/easybuild

Step 3.1: Install EasyBuild with a bootstrapped EasyBuild

Try to install (an old) EasyBuild with bootstrapped EasyBuild module (should work since EasyBuild v1.8.2).

export MODULEPATH=$HOME/.local/easybuild/modules/all
module load EasyBuild
eb EasyBuild-1.0.0.eb --force

Step 5: Test eb --install-latest-eb-release

Requires that PR for EasyBuild easyconfig file is merged into develop!

Cfr. https://github.com/hpcugent/easybuild-easyconfigs/issues/4103

module load EasyBuild
eb --install-latest-eb-release -f

Step 4: Update documentation

See http://easybuild.readthedocs.io and http://github.com/hpcugent/easybuild

  • release notes
  • update version-specific documentation using (make sure active eb version is clean master!):
cd easybuild/docs
./scripts/update-all-docs.sh
git commit -am "update documentation for EasyBuild <version>"

See e.g. http://easybuild.readthedocs.io/en/latest/version-specific/Supported_software.html

Step 5: Announce release

Finally, announce the newly released version through the various channels, i.e.:

Step 6: Update release schedule

See Release schedule .

Step 7: Upload EasyBuild source tarballs to sources mirror

https://sources.easybuild.io/e/EasyBuild (fosshost)

Step 7: Update EasyBuild spec in OpenHPC repo

See components/dev-tools/easybuild/SPECS/easybuild.spec @ https://github.com/openhpc/ohpc

Clone this wiki locally