Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fully automate the release process #10

Closed
daka1510 opened this issue Nov 17, 2021 · 4 comments
Closed

Fully automate the release process #10

daka1510 opened this issue Nov 17, 2021 · 4 comments
Labels
enhancement New feature or request priority: low Low Priority issue (nice to have for current release) technical debt

Comments

@daka1510
Copy link
Collaborator

What is the expected feature or enhancement?
As a maintainer, I want to release a new version with confidence in a fully automated way.

As-is
Some parts of the release (e.g. push to PyPi) are already automated and triggered when a tag is pushed. Others (e.g. generation of release notes, verification of tests) involve manual steps.

@daka1510 daka1510 added the enhancement New feature or request label Nov 17, 2021
@daka1510
Copy link
Collaborator Author

daka1510 commented Nov 17, 2021

As a starting point for further discussions, here's a first proposal on how this might work:

  1. a maintainer triggers a release-prep workflow and specifies the version as input parameter
  2. the release-prep workflow raises a release preparation PR (with a special tag) in the target repository (see [1] for an example)
  3. the creation of the release preparation PR triggers a release-qa workflow that runs all necessary quality guards (e.g. unit/integration/lint/code coverage checks). The results of the workflow runs show up as status checks in the PR.
  4. a maintainer reviews and integrates the release preparation PR
  5. the integration of the release preparation PR triggers a final release workflow that publishes all required release artifacts (e.g. stable branches, tags, docs, PyPi package, updated version files)

This process should mostly align with the described release cycle in the contributing guidelines.

@jyu00, @rathishcholarajan - thoughts?

@jyu00
Copy link
Collaborator

jyu00 commented Nov 17, 2021

I think the process is fairly automated already. Yes someone needs to manually move all the release notes from one directory to another, but a human needs to review all the release notes anyway, so I don't see automating that part buys us much.

In terms of qa, the release PR would already trigger a full run of tests (the push flow, not just pr), except slow tests, which unfortunately we can't wait for because they can run for several hours.

Once a tag is published, uploading to PyPi, generating meta package PR, docs, etc are all automated. We could automated updating the version post release though, since that step is often missed.

@mtreinish
Copy link
Member

It's worth noting there are open TODOs on qiskit-bot for these things: Qiskit/qiskit-bot#3 and Qiskit/qiskit-bot#17 I just haven't had time to implement them and nobody else has stepped up

@daka1510
Copy link
Collaborator Author

daka1510 commented Nov 18, 2021

Thanks for the reference, @mtreinish and details, @jyu00. Good to know the qiskit-bot offers a central place to implement some of the missing pieces that are not yet automated. Will keep this issue open for discussion until we reach a conclusion what we want to automate further (if anything). I personally want to gain some experience with the established release process first and will get back to this topic afterwards.

@rathishcholarajan rathishcholarajan added the priority: low Low Priority issue (nice to have for current release) label Feb 14, 2022
@rathishcholarajan rathishcholarajan closed this as not planned Won't fix, can't repro, duplicate, stale Jun 3, 2022
blakejohnson pushed a commit to blakejohnson/qiskit-ibm-runtime that referenced this issue May 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority: low Low Priority issue (nice to have for current release) technical debt
Projects
None yet
Development

No branches or pull requests

4 participants