- Create a new branch for this release:
git checkout -b releasev0.X.Y
- Update release version in
./docs/whats-new.rst
- Increase release version in
./setup.py
- Create a PR to prepare it, name it with one of the Nature emoji and make sure it was never used before
- Activate RTD build for this branch
- Check the code for the
deprecated
decorator and enforce the deprecation policy:- If code is marked as deprecated since version = v0.X.Y : do nothing (first version with deprecation warning)
- If code is marked as deprecated since version = v0.X.Y-1 : do nothing (2nd and last version with deprecation warning)
- If code is marked as deprecated since version = v0.X.Y-2 : delete code (code will raise an error)
- Update the documentation according to new deprecations
- Update CI tests data used by mocked ftp and http servers. Use CLI citests_httpdata_manager:
cd cli ./citests_httpdata_manager -a clear --force --refresh ./citests_httpdata_manager -a download ./citests_httpdata_manager -a check
- Update list of valid Reference tables from the NVS server
- Update static assets files
- Update the cheatsheet PDF with all new release features
- Run codespell from repo root and fix errors:
codespell -q 2
- Run flake8 from repo root and fix errors
- Manually trigger upstream CI tests for the release branch and ensure they are passed
- Update pinned dependencies versions in
./ci/requirements/py*-*-pinned.yml
environment files using upstream CI tests information - Possibly update
./requirements.txt
and./docs/requirements.txt
if the oldest dependencies versions were upgraded - Make sure that all CI tests are passed
- Make sure the documentation for this release branch is built on RTD
- Merge this PR to master
- Update release date in
./docs/whats-new.rst
- Make sure all CI tests are passed and RTD doc is built on the master branch
- Last check the
./setup.py
file version of the release and that the documentation is ready - "Create a new release" on GitHub.
Choose a release tag v0.X.Y, fill in the release title and click on the
Auto-generate release notes
button. Once ready, publish the release. This will trigger the publish Github action that will push the release on Pypi. - Checkout on Pypi and Conda that the new release is distributed.