Proposal: Smoother releases: 3 parts to have mostly-automated releases #19279
Replies: 10 comments 18 replies
-
Existing process step-by-step: Step 1: Prepare the releaseSummary:
|
Beta Was this translation helpful? Give feedback.
-
Existing process step-by-step: Step 2: Update this docs siteSummary:
|
Beta Was this translation helpful? Give feedback.
-
Existing process step-by-step: Step 3: Tag the release to build wheelsSummary:
|
Beta Was this translation helpful? Give feedback.
-
Existing process step-by-step: Step 4: Release a Pants PEXSummary:
|
Beta Was this translation helpful? Give feedback.
-
Existing process step-by-step: Step 5: Test the releaseSummary:
|
Beta Was this translation helpful? Give feedback.
-
Existing process step-by-step: Step 6: Announce the changeSummary:
|
Beta Was this translation helpful? Give feedback.
-
One thing to point out is once we have branch protection rules on release branches (something we've agreed upon and only haven't turned on because @stuhood would love easier releases before that) that the merging of PRs is automatic through enabling "auto-merge" (sans CI flakiness or legitimate failures). |
Beta Was this translation helpful? Give feedback.
-
First steps towards automated "start release" in #19303. |
Beta Was this translation helpful? Give feedback.
-
Recent changes related to this effort:
Potential additional release process step to be automated: |
Beta Was this translation helpful? Give feedback.
-
We've well and truly implemented enough here to call this done, mostly by Josh (nice work!). Releases are much easier now. #20438 is another simplification well into the "next steps"/"beyond MVP" phase. |
Beta Was this translation helpful? Give feedback.
-
There's a lot of enthusiasm for making releases simpler. I've been listening to the discussion and it seems like various people (@thejcannon, @benjyw and @stuhood come up a lot) have lots of information and plans in their heads and there's a few issues lying around too, but I'm not sure of an explicit document capturing it all, so I'm not sure we're all driving towards the same vision.
I've tried to pull one together, here.
Summary: it seems like automated releases are well within reach, with 3 pieces of automation, mostly without changing the basic process and output artifacts. I think this means we can get to more automatic releases with:
Where we are now
The release procedure https://github.com/pantsbuild/pants/blob/e0ef5b83820ce5d269516a3ce5c04f5fc354a9ab/docs/markdown/Contributions/releases/release-process.md seems to involve a whole range of tasks, including ones a human is definitely best placed to do, down to ones a robot can easily manage.
There's been a flurry of great automation improvements recently:
act
to Pants (all in BUILD) and smoke test our workflows #19278, @thejcannon)Proposal for getting to smoother releases
The proposal
Based on the step-by-step analysis below, it seems like we could get to smoother releases with 3 (augmented) pieces of automation:
Of these, 3 is potentially highest value, then 1, then 2. (Or maybe 1, 3, 2?)
(Each of these have details to work out and fine-tune, of course.)
Discussion
If we do this, I think the releases will be mostly automatic, steps 1 (partially), 2, 3 and 4 become automatic, and humans will only have to:
A downside to have all this automation is that it can be hard to manage and debug if things go wrong. There's various ways to alleviate this risk:
Next steps, after core proposal
There's some additional improvements that could happen once this is in place:
Release process, step by step
I've gone through the current (2.18) release process https://github.com/pantsbuild/pants/blob/e0ef5b83820ce5d269516a3ce5c04f5fc354a9ab/docs/markdown/Contributions/releases/release-process.md and looked at each step along four dimensions:
I'll post each step as separate comments to make for easier specific discussion about any details in them.
Beta Was this translation helpful? Give feedback.
All reactions