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

[BDGR-173] Validation/QA process for releases #421

Open
markspolakovs opened this issue Jul 5, 2024 · 1 comment
Open

[BDGR-173] Validation/QA process for releases #421

markspolakovs opened this issue Jul 5, 2024 · 1 comment
Assignees
Labels
13 points Created by Linear-GitHub Sync High priority Created by Linear-GitHub Sync

Comments

@markspolakovs
Copy link
Member

We should put together a process for validating a Badger release prior to shouting about it from the rooftops. It'd involve testing the key features of all the components, ideally in a real environment.

In a perfect world it'd be mostly automatic, but this is unlikely to be possible (thanks vMix!). Failing that, we should write up a checklist (perhaps a Linear issue template?) and wire up do-release.mjs to create an issue using it.

As part of this we should also work out some sort of system for doing release candidates - ideally we produce a RC, test it, then promote that exact (or near-identical) build to GA.

From SyncLinear.com | BDGR-173

@markspolakovs markspolakovs added High priority Created by Linear-GitHub Sync 13 points Created by Linear-GitHub Sync labels Jul 5, 2024
@markspolakovs
Copy link
Member Author

Process I'm thinking, though will ruminate on this: split do-release into two scripts (names TBC), make-rc and publish-release. General workflow:

  1. When ready to do a release, run make-rc, which will do everything do-release does today short of publishing the release (it'd publish it on GH as a pre-release), with a vx.y.z-rc.a version number.
    1. At this point we should probably also make a new Git branch for this release, to avoid blocking main development. However, any fixes should go into main and get backported.
    2. Either that, or lock main until the release is complete.
    3. I'm not sure which is best.
  2. Either the script or a human creates a Linear ticket from a template that has a checklist of items to validate (have started making one)
  3. A combination of CI and humans checks off the items (I'm not sure if we can make the CI sophisticated enough to do it itself - though we can try! - but a human seeing the results and checking is good enough)
  4. If any of the validations fail, the process stops here. The issue is fixed on main, and we go back to step 1 with a new RC.
  5. Once they all pass, run publish-release specifying the RC number. This will bump the version and kick off a new build, identical to the RC save for the version number.
    1. Theoretically there's a risk that this build will be broken when the RC one was successful. However if this is the case we have a seriously flaky build process.
  6. A new release is published! 🎉
    1. (Probably still need to do some smoke-tests on it just in case.)

@markspolakovs markspolakovs self-assigned this Sep 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
13 points Created by Linear-GitHub Sync High priority Created by Linear-GitHub Sync
Projects
None yet
Development

No branches or pull requests

1 participant