Update branch and release policy#2377
Conversation
There was a problem hiding this comment.
Looks good! I've been wondering where we had landed on the release branch discussion - at some point it seemed that it was going to become the new convention but eventually it looked like it was dropped. For what it's worth, I'd be in favor (and would like to change this in the client) but it's not a strong opinion: the current workflow is not usually problematic for us and IMO the main advantage of this policy is that everything is a bit clearer and easier to navigate.
Perhaps the one comment I'd make is that some repos seem to use release/vX.Y for release branches and it'd be nice to make all repos as consistent as possible, but it's very much not a big problem.
There was a problem hiding this comment.
Would it be valuable to check whether the tagged commit is on a correctly protected vX.Y branch to avoid arbitrary branches being used? And/or that the branch matches the tag name.
There was a problem hiding this comment.
imo no - I don't actually care what branch is used. Such release tags are already restricted to a subset of admins. And sometimes you need to force a release from random places.
We could make the ruleset enforce that one needs approval from at least two admins instead of just the one. But again, I don't really care where the release is from. If it was a mistake, we yank the crates/release and bump the version again in the correct place.
|
Haven't looked at the actual code yet - but agree with the PR description. I think the protocol repo is headed in a similar direction. cc @mmagician The only thing we need to clarify is to make sure the documentation site building process is updated to account for this. cc @BrianSeong99 and @Keinberger
I agree with this too. That's the convention we are using in the protocol repo, and I think we can propagate it to other repos too. |
|
|
||
| - New development targets `next`. | ||
| - Maintenance changes target the applicable `vX.Y` branch. | ||
| - A change needed on multiple branches is applied to each branch through its own pull request, normally by backporting |
There was a problem hiding this comment.
In PRs like this one #2371 we don 't really care about the order of PRs by different base branches
There was a problem hiding this comment.
I'm not quite following; I agree with your statement - in general we don't care at all anymore because they'll never merge.
Do you want me to add a bullet point to that effect?
I've mentioned this before, but documentation should be using tags or commits and never branches as a target. Similarly, docs should manage a manifest where they manually update the target themselves to a specific tag/commit per repo -- preferably whichever version is on testnet & devnet. This isn't automatable from the repo side because none of these repos manage what is deployed.
Bleg why use more words for the same thing, don't really see what |
It's a bit more clarity and ability to apply the same rules to all "release" branches consistently. |
Personally I find it confusing. A release is a single thing i.e. The rules can also be applied just fine to But this is fairly heavy bikeshedding; I'll concede to whatever :) |
Yeah, I think one branch per minor release is fine - I'd just prepend it with |
Summary
This PR changes our branch policy, and updates the dev documentation to reflect this as well as the release flow.
Its best to read the docs changes, but in summary:
mainvX.Yrelease branchnextremains the default dev branchnextagainI've also added some rulesets to enforce admin/maintainer only rights to version branching and releasing.
I have already created
v0.15from currentmain. Once this PR is merged, I will deletemainand back-propagate the workflow changes tov0.15. And then remove the existing legacy branch protections (which don't use rulesets).Changelog