3. Releases flow

Date: 2022-10-24

Status

Accepted

Context

In order to publish packages with high quality to PyPi and as tagged releases we need to have a consistent workflow that is easy to follow and reproducible for all users.

Decision

We will use tagged releases on GitHub to publish to PyPi. These releases will follow the versioning scheme described in 02-versioning.md.

Consequences

The flow will be as follows:

  • Upon needing a release, create a PR:

    • Update CHANGELOG.md to ensure it contains all relevant changes. You can base this off of the nightly changelog.
    • Based on the above changes, set a new version in pyproject.toml.
    • Replace the heading in the changelog
    • Add diff labels at the bottom.
  • Pull the new main, and tag it with git tag -a vNEW_VERSION COMMIT_HASH.

  • Push the tag with git push vNEW_VERSION

  • Make a new PR that adds back the "Unreleased" heading in the changelog.