Skip to content

Release workflow

Jan edited this page Feb 24, 2021 · 10 revisions

Create a release branch

Decide what will be the upcoming version number

  • sbi currently uses the Semver 2.0.0 convention.
  • Edit the version number in the tuple at sbi/sbi/__version__.py.

Collect a list of relevant changes

  • Edit changelog.md, add a new version number header and report changes below it.
  • Use one line per change, include links to the pull requests that implemented each of the changes.
  • Credit contributors!
  • If there are new package dependencies or updated version constraints for the existing dependencies, add/modify the corresponding entries in setup.py and environment.yml.

Run tests locally and make sure they pass

  • Run the full test suite, including slow tests.
  • This is the time to commit changes to __version__.py, changelog.md and other modified release-related files such as setup.py or environment.yml to main.

Upload via the command line

  • Run python setup.py upload. It takes care of
    • Building a source and wheel distribution
    • Uploading to PyPI via twine (you will need maintainer permissions on Pypi. Talk to @meteore or @jan-matthis.)
    • Creating a new local tag named v<version_number> (e.g. v0.8.0) and pushing it to the Github repository.
  • on https://github.com/mackelab/sbi/releases click edit on the newly-created tag and copy the relevant contents from changelog.md in there.

Update the documentation to the new version

If docs changed, update the docs according to docs/README.md. Currently this means running in docs/ folder:

jupyter nbconvert --to markdown ../tutorials/*.ipynb --output-dir docs/tutorial/ && mkdocs gh-deploy

Clone this wiki locally