-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Stable Releases: Definition and Process #6394
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@alessio thanks for putting time into this, but I think it would benefit us all if the PR body at least contains some motivation or rationale for these changes. I left a comment, but the gist is I really don't think the change is nomenclature is warranted.
CONTRIBUTING.md
Outdated
@@ -228,32 +229,40 @@ only pull requests targeted directly against master. | |||
- Tag the release (use `git tag -a`) and create a release in Github | |||
- Delete the `RC` branches | |||
|
|||
### Point Release Procedure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would really prefer to keep the nomenclature point releases because that is what they are. In fact, in very rare cases, they include breaking changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Introducing a breaking change when it's necessary to fix a bug is IMHO not a problem and would be a good rationale to grant an SRU exception. I'll clarify this in the What qualifies as SRU
CONTRIBUTING.md
Outdated
and PRs are merged into `master`, if a contributor wishes the PR to be released as SRU into the | ||
`v0.38.N` point release, the contributor must: | ||
|
||
1. Add `0.38-sru` label |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i would prefer to keep backport
this is another thing that we will have to update on every major release. This increases the maintenance load and cognitive load of everything that needs to be updated in these scenarios
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, so instead of backport
I'd propose to use a semantic versioning-like nomenclature: MAJOR.MINOR.PATCH
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The thing is, regardless of the name (we agreed that we stick with backport
), I think that such living branch should carry the next version number to 1. avoid versioning mistakes 2. make clear to users what changes are going to be in exactly which release. Wdyt? @marbar3778 @alexanderbez
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes agree with you. 0.38-backport
works for me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually meant "it should include the patch number" :) e.g. 0.38.5-backport
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The proposal of 0.38.5-backport
looks fine to me. I am infavor of calling it backport and not changing historical nomenclature.
@alessio Can you update this file accordingly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed. Please check
Co-authored-by: Marko <[email protected]>
@alexanderbez Rationale can be found here: RationaleUnlike in-development |
In release management, |
My preference would be to stick to something everyone knows. Backporting is currently used & understood. We recommend using releases instead of master anyways so I'm not sure what benefits this brings. We don't specify that backporting or SRU's will not entail new features. If it's not breaking then I don't see the rationale of not including it in a patch release? Maybe instead of renaming the process, we create a rubric on what is accepted breakage and what is not, what should be backported and what should not. Currently, it is informal in what should be backported and what shouldn't. It would be nice to keep tendermint, sdk & gaia all on the same process and naming conventions. Currently, they all use Backport terminology and I don't think they would want change. |
No problem with that.
It's mostly about regression risk and stability guarantees. Generally, stable release users don't want to:
|
@marbar3778 dixit:
Correct, and the objective of this PR is to clarify what should be backported and what should not. |
Thanks @alessio, sorry I missed that. I totally agree with the context, but that's not a rationale to change the nomenclature. I would keep what you have but just keep |
@alexanderbez dixit:
I'm totally fine with that. I'll update the naming accordingly then |
I've updated the PR - considering that all the work that @alexanderbez and @erikgrinaker are doing in preparation for 0.38.5 will likely introduce breaking changes, maybe this could be enforced once 0.38.5 is released? Thoughts? |
CONTRIBUTING.md
Outdated
Once a Cosmos-SDK release has been completed and published, updates for it are released under certain circumstances | ||
and must follow the *Stable Release Update* (or SRU) procedure. | ||
|
||
### Rationale |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@marbar3778 @alexanderbez here is the rationale. Thoughts? Does that make sense to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for the rationale. I do agree but still dont understand the naming change. Every release is a stable release or should be. We can keep the rationale because it will help but there isnt a need for a rename IMO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean by every release? A major.minor
is a major stable release (e.g. 0.38), backports/bugfixes/updates go into point releases. Am I wrong?
3. **Stable Release Managers** will review and discuss the PR. Once consensus surrounding the rationale has been reached and the technical review has successfully concluded, the pull request will be merged in the respective `release/launchpad/0.39.X` branch, being `X` the Launchpad's next point-release and the PR included in the `0.39.X` respective milestone. | ||
|
||
### Stable Release Exception - Bug template | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a github issue template. putting it here makes it harder to follow a template
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That'd be convenient. The thing is that this template is meant to be used mainly in comments on bugs that already exist and have been fixed in master that someone wants to get fixed in stable releases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2. Add a comment to the issue and ensure it contains the following information (see the bug template below):
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe good to just add this to the bug template in a way that can be easily excluded if it's not a stable release exception?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That sounds doable to me, yes.
I reviewed the recent changes. It looks very nice and clear process. I agree we are discussing this with launchpad in particular, and this is the major visible test case of this. But I see this same process (both the doc and the human learnings) to be useful for a future upgrade when we freeze another LTS release. Edit: after reading the below post, I understand the diff and mean SRU |
Thanks @ethanfrey. I'd avoid using the acronym LTS though. LTS typically means long-term as in "for a few years". That's not our plan at this stage AFAIU. We could always introduce an extended support if the need arises and we have bandwidth for it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
Looking good to me. I just saw another github notification and was curious what is blocking this from being merged? Are there any open questions/concerns? |
Co-authored-by: Federico Kunze <[email protected]>
Co-authored-by: Federico Kunze <[email protected]>
Co-authored-by: Federico Kunze <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Related to #6522
closes #1728
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorer