-
Notifications
You must be signed in to change notification settings - Fork 145
Release process
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.
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.
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!
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
.
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
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
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
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
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
See http://easybuild.readthedocs.io and http://github.com/hpcugent/easybuild
- release notes
- update version-specific documentation using (make sure active
eb
version is cleanmaster
!):
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
Finally, announce the newly released version through the various channels, i.e.:
- website https://easybuilders.github.io/easybuild/
- mailing list easybuild@lists.ugent.be
- Twitter account @easy_build
- IRC/Slack channel
See Release schedule .
https://sources.easybuild.io/e/EasyBuild (fosshost)
See components/dev-tools/easybuild/SPECS/easybuild.spec
@ https://github.com/openhpc/ohpc