Skip to content

Implement a new release workflow #343

@llucax

Description

@llucax

What's needed?

We need to simplify the release process, which still involves too many manual steps.

Proposed solution

The new release workflow should reverse the logic a bit, instead of tagging and that triggering the workflow that creates the GitHub release, and publishes docs and to PyPI, it should be triggered manually on a branch and take 2 optional fields:

  • tag name (inferred from previous tags and branch names if missing)
  • release notes (loaded from the release notes file if missing)

And what it does is:

  1. Calculate the tag name to create

  2. If release notes are provided, replace the current files with that and commit it with some standard "prepare release notes for <tag>" message

  3. If release notes are not provided, look for empty release notes sections, remove them and commit with the same message

  4. Create the tag

  5. Do the current release workflow: build, test, create the GitHub release, and publishes docs and to PyPI

  6. Clear the release notes, commit and push

  7. If a milestone with name <tag> exists:

    1. Move all open issues to the next minor tag (create it if it doesn't exist)
    2. Close the milestone

Metadata

Metadata

Assignees

No one assigned

    Labels

    part:ciAffects the GitHub workflow and other parts for running CItype:enhancementNew feature or enhancement visitble to users

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions