Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 4.42 KB

HOW_TO_RELEASE.md

File metadata and controls

58 lines (47 loc) · 4.42 KB

Setup

Prepare code for release

Deprecation policy

  • 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 static content

  • 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

Code clean-up and update

  • Run codespell from repo root and fix errors: codespell -q 2
  • Run flake8 from repo root and fix errors

Software distribution readiness

  • 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

Preparation conclusion

  • 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

Publish the release

  • 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.

Publish on pypi

CI tests / RTD build results

CI tests CI tests Upstream Documentation Status