-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Document & improve process for release rotation #12592
Comments
Adding teammates of mine for visibility @tico24 @Joibel @isubasinghe We're happy to support on the release effort. 👍 |
Since we have two additional approvers, I would suggest one of you (@agilgur5 @isubasinghe) can try follow the instructions in https://github.com/argoproj/argo-workflows/blob/main/docs/releasing.md and see what is missing so we can improve the docs. I don't think we need any separate documentation for this. WDYT? Any volunteers? |
For others without write access yet, you can still send PRs to release branch to help resolve any conflicts and then other approvers can review. |
Sure, I can get to this on Friday unless @agilgur5 beats me to it. |
Hmm probably should note in the docs that there was an implicit alias in the previous releases. It would be nice if the "true" "false" options for the script itself were documented, I had to look into the script itself to figure out what it was doing. If I am correct the new commits for v3.3.5 should be based upon the HEAD of 3.3 instead of 3.3.4 ? This release process seems like quite a bit of work, wonder if we can automate some of this effort. |
Yes, see the top of the document: "Please make sure that all patch releases (e.g. v3.3.5) should be released from their associated minor release branches (e.g. release-3.3) to work well with our versioned website."
Well, the document mentions "get a list of commits you may want to cherry-pick" and "to automatically cherry-pick" with two separate code blocks already but maybe explicitly call out the flag would be helpful.
Feel free to propose any improvements. |
Yeah I saw this, but what I was trying to say is that I would like it to be even more explicit, just to remove any confusion. I guess I want to understand " to work well with our versioned website" this in more depth as well.
Yeah I think that might be nicer.
I am having a look into it now, there are some tooling around this issue it seems like, will report back after I find out more. |
The |
If there are merge conflicts, then ostensibly no, those can't be automated. The main part I had proposed back in the Slack thread was to have something similar to CD's cherry-pick bot so that we can cherry-pick things as they come in instead of in batches. That way the context of the PR remains when cherry-picked and merge conflicts can be fixed quicker and potentially with the author even. Ideally the bot (or other automation) would try to clean cherry-pick and if it works, cool, done. If not, it could either open a PR with the conflict or write a message on the original PR that there was a conflict and so manual resolution is needed. |
Yeah this is exactly part of what I was thinking of as well. |
Here's the PR in CD that added the Unfortunately that one creates a PR for every cherry-pick, so it creates a lot of duplicate PR noise. I would prefer to avoid that, especially as it makes the repo history much harder to search through with all the dupes |
We talked about this briefly in last week's Contributor Meeting, where I mentioned a replacement for the bot with a GH Action, e.g. https://github.com/vendoo/gha-cherry-pick. Thinking about it a bit more though, we probably aren't running CI/tests on each cherry-pick when doing it manually / locally anyway. Similarly, as I learned in that contributor meeting, CI cancels itself on a commit when another commit is made on the branch before it's done (i.e. it only runs one CI job at a time on a branch, on the latest commit). |
+1 on the use of automation to cherry pick commits, instead of doing all at the time of cutting a release. |
An interim workaround would just be for Approvers to manually cherry-pick fixes into the ongoing release branch (i.e. |
Regarding those without write access, we did discuss this in the previous Contributor Meeting and I had previously proposed on Slack giving temporary write permissions to Member+ on release rotation. That proposal was rejected, and merging PRs for an entire release (i.e. with multiple commits) is unfortunately not necessarily possible due to automated DCO issues (c.f. #12462 (comment) and more recently #12711). What we could do though is a "manual merge" -- a contributor writes up a PR to a release branch that fixes all conflicts, then, once approved, an Approver pulls those locally and pushes them to the release branch. |
@terrytangyuan I'm not sure this has been completed? We're most certainly still iterating on it. Which comes before even documenting it. We discussed it in the April 2nd Contributor Meeting as well, where @caelan-io said Pipekit would work on some improvements. As an update from my end, I have been trying to follow the interim workaround I mentioned above for For deps, a chunk of that is due to selective backports, since one dep change can affect a few transitive deps and so they tend to be intertwined. I've tried going through the history and cherry-picking more deps to mitigate that with some success, but those aren't always CVE fixes. That has decreased since #12487 though, many of the conflicts were because Dependabot added an extraneous non-security update (that wasn't backported earlier due to its extraneous non-security nature). My current thought process is that if it will be in part, substantially manual for the foreseeable future, we may want to have "release managers" for a given branch or set of patches at least. I.e. they are on duty to watch for and actively cherry-pick things and can decide on the patch release schedule as they choose as well -- one person who is primarily responsible. That is a common practice in other projects. Any automation would be tools to help the release manager, but cannot fully automate merge conflicts resolution. |
Sorry I meant to close another issue. Thanks for catching it. |
Alternatively, we just cut a patch release on a rolling schedule, e.g. every 2 weeks. Anything that's already backported is released, anything else has to wait till the next at least. That could be automated. And that's potentially easier to follow / more straightforward / less confusing for users and release managers. Users could contribute backports if they want a specific one out earlier. |
Agreed, let's keep open. We want to figure out automation for this and have a few ideas.
Monthly release cadence is about the max we have capacity to manage right now given how manual the cherry picking and merge conflict resolution is (based on my understanding). Just a heads up on that front for expectations.
Caelan
Co-founder, CEO @ Pipekit.io ( https://pipekit.io/ )
LinkedIn ( https://www.linkedin.com/in/caelan-urquhart/ ) | GitHub ( https://github.com/caelan-io )
…On Thu, Apr 18, 2024 at 5:28 PM, Anton Gilgur < ***@***.*** > wrote:
>
>
> and can decide on the patch release schedule as they choose as well
>
>
Alternatively, we just cut a release on a rolling schedule, e.g. every 2
weeks. Anything that gets in gets in, anything else has to wait till the
next at least. That could be automated. And that's potentially easier to
follow / more straightforward / less confusing for users and release
managers.
—
Reply to this email directly, view it on GitHub (
#12592 (comment)
) , or unsubscribe (
https://github.com/notifications/unsubscribe-auth/AK5HJBVY5FHWK7ZW76I7NITY57YERAVCNFSM6AAAAABCR57GNGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRUGQ2TMMBUG4
).
You are receiving this because you were mentioned. Message ID: <argoproj/argo-workflows/issues/12592/2064456047
@ github. com>
|
"every 2 weeks" was if we go with the "release manager" approach I mentioned above who's just on backporting duty for a set period of time (on a rotating basis). |
Summary
Purpose: get more people involved in releases and improve the overall process.
Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritize the proposals with the most 👍.
The text was updated successfully, but these errors were encountered: