-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add a document describing release cycle and backporting criteria. #18636
Conversation
remove blank lines
Let me sum up the comments I made during the last meeting: First, I think we should have RCs for all Next releases, and revert back to the train model, which worked well for us in Dotty.
For all these reasons I think it's simplest to revert a train model with a 6 weeks period. This means:
Second, I think we should better decouple LTS and Next releases. There's no need that they follow the same tight schedule. Motivation: For an LTS release we want to make very sure there are no regressions. This might mean we need more time for a final release, which is OK. Our experience with 3.3 releases has shown us that we almost always need more time. But that delay should not impact Next releases, which should proceed like clockwork. |
Bring back RCs for all versions
After discussions summarized by Martin's comment, we decided to decouple the Next and LTS release cycles. The only part that may be controversial now is
I think that this accumulation of delays is what has been happening since 3.2.0 and was especially visible during the release of 3.3.1. |
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 does a good job laying out the what. I feel it's short on why. You give answers, but isn't clear what the questions were. What prompted this? Why is this changing now? Was something actually different before, or are we just being more explicit and clear now about existing practices? What were the problems that needed to be addressed?
|
||
## Scala LTS and Scala Next | ||
|
||
Since Scala 3.3.0, there are always two versions of Scala 3 being developed at the same time: Scala Next and Scala LTS. |
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.
Since Scala 3.3.0, there are always two versions of Scala 3 being developed at the same time: Scala Next and Scala LTS. | |
Since Scala 3.3.0, there are always two versions of Scala 3 being developed at the same time: Scala LTS (currently 3.3.x) and Scala Next (will be 3.4.x, 3.5.x, and so on, until a new LTS is designated). This scheme was previously outlined in [this August 2022 blog post](https://www.scala-lang.org/blog/2022/08/17/long-term-compatibility-plans.html). |
|
||
Labels from the `backport:*` are used only for backports that targets versions with already released RCs. They can be used to mark changes on the main that are fixing a critical bug present in the Scala Next RC release or changes that were backported to the future Scala LTS versions that should be also backported to the current RCs. | ||
|
||
## The release cycles |
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.
At this point you will probably have lost many of the more casual followers of the blog, as the preceding section are flowchart were quite in-depth.
I would suggest also including the most important top level takeaways from this section, such as "Scala Next strictly follows a six-week release train model", in the intro to the blog post.
I would suggest reviewing the intro and asking yourself, “What if the reader only reads the introduction? Would they be missing anything vital?"
@SethTisue: The goal is to have a written record of the current consensus of the compiler team about how the releases should look after 3.3. In the past, backporting and release procedures were more of an oral tradition than something transparent and well-known, even for the people working directly in the compiler. I wanted to have those things written down somewhere in the compiler repo so we can direct people there in case of questions. This is not a blog post. We will probably have a post about the backporting and the new release cycle around the release of 3.4. It will explain why more than what and point readers curious for details to this document. |
You called it — I thought I was reviewing a blog post 🤦
👍 |
|
||
## How should things be backported? | ||
|
||
The backporting process is tracked by [a GitHub Project](https://github.com/orgs/lampepfl/projects/6) in the lampepfl organization. Every PR merged to the `main` branch is automatically added to the `Needs Assessment` column. Those PRs are reviewed by the release officer or other appointed person. They can decide to remove them from the project (backport rejected) or to move them to the `Backporting in progress` column. If the PR with the backport has any differences from the original PR, the person doing the backport will ask the author and reviewers of the original change to review the backport. After merging the backport, the PR will be moved to the `Backport done` column and, after the release, to the `Released` column. |
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 link gives me a 404.
Maybe the project is private? If that's intended, I think it would still be nice to disclose that.
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 can open it in private browser window, so it shouldn't be private now.
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 can confirm that I do see it now 👍
This document specifies the new release cycle and criteria for backporting PRs from the
main
branch to the LTS line.The backporting flowchart was discussed before. I think it reflects the compiler team's consensus.
The release cycle part is new, and I'm looking forward to feedback.