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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions