Skip to content

Improve and document the release process #22

Description

@simonevadi

The release process is not documented. As far as I understand, this is the workflow at the moment:

  1. Prepare the code you want released and merge it into main.
  2. Create and push a Git tag in the form vX.Y.Z.
  3. GitHub Actions builds the wheel with cibuildwheel.
  4. The workflow uploads the built wheel to PyPI automatically.

What I think is missing here are two things: the develop branch, where to push all the work before the release and run the tests, and a changelog. I normally have a slightly different release workflow:

  1. Merge feature work into develop.
  2. Collect release notes in CHANGELOG.md under ## [Unreleased].
  3. Run bash tools/release.sh on develop.
  4. The script bumps the version, moves changelog notes into a dated release section, creates a release commit and tag, pushes both, opens a GitHub release, and creates a PR from develop to main.
  5. main is updated only through that promotion PR.

But I like the automatic release from git that you set up, so I would propose a hybrid workflow:

  • Make develop the place where release notes are prepared and the version is bumped.
  • Keep the automatic CI build and PyPI publish from your workflow.
  • Make the release script responsible only for:
    • moving changelog entries,
    • bumping the version,
    • creating the tag,
    • opening the PR to main

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions