Skip to content
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

Move to time based releases and update LTS #7

Closed
wants to merge 3 commits into from

Conversation

dmcgowan
Copy link
Owner

Adds new criteria and schedule for time based releases. Adds more ownership and roles for the different phases of the release process.

Updates LTS definition and schedule

RELEASES.md Outdated
For example, 1.0.0 to 1.2.0 is not supported. One should first upgrade to 1.1,
then 1.2.

There are no compatibility guarantees with upgrades to _major_ versions. For

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be updated to discuss the upgrade path from 1.7.x to 2.0.x.

We don't need to make it a part of this change, but we also need to cover LTS upgrades; i.e., can you upgrade directly from one LTS to the next?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we should revisit this section

RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
@dmcgowan dmcgowan force-pushed the new-release-schedule branch from e3b8b90 to 7a80402 Compare January 20, 2025 00:41
RELEASES.md Outdated
guarantees are provided.
The maintainers will maintain a roadmap and milestones for each release, however,
features may be pushed to accomodate the release timeline. If your issue or feature
is not present in the roadmap, please reach out to the maintainers or leave a

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
is not present in the roadmap, please reach out to the maintainers or leave a
is not present in the roadmap, please open a GitHub issue

RELEASES.md Outdated
issue or PR is not present in a milestone, please reach out to the maintainers
to create the milestone or add an issue or PR to an existing milestone.
While pre-releases are done to assist in the stabilization process, no quality
guarantees are provided.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe remove this sentence, as no "guarantee" is provided for any release

RELEASES.md Outdated
> extended support, it will continue to accept security patches in addition to client
> changes relevant for package importers using the 1.6 LTS daemon.
Long term stable (_LTS_) releases are sponsored by at least two maintainers for at least two
years after their initial _minor_ release. The maintainers of the _LTS_ branch may commit to a

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"initial minor release" is .0 or .1?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to mention x.y.0

RELEASES.md Outdated
are both active maintainers and one of which has been involved in two prior releases.

Once the final release is out and the release branch moves to active, ownership will be
transferred back over to all maintainers. Active releases are maintained by all maintainers

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/maintainers/Committers/g

RELEASES.md Outdated
from their source branch. For major and minor releases, these releases will be
done from main. For patch releases, these pre-releases should be done within
the corresponding release branch.
Minor releases are time based with a target cadence of 6 months. The next two

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this cadence should be marked tentative until 2026.
We have to have a couple of releases to evaluate whether this plan is feasible in practice

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated from "target cadence" to "initial cadence". I think the following sentence makes it clear that the cadence is open to change, let me know if that is not clear though

RELEASES.md Outdated
releases to support the longer term maintainability of the branch, including library dependency,
toolchain (including Go) and other version updates which are needed to ensure each release is built
with fully supported dependencies. Feature backports are up to the discretion of the maintainers who
own the branch but should be rejected by default. There is no limit to the number of _LTS_ branches

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably a soft-limit can be set.
It doesn't sound realistic to keep maintaining more than 3 LTS branches

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to say "no defined limit", we can define a limit if needed in the future

@dmcgowan dmcgowan force-pushed the new-release-schedule branch 2 times, most recently from 9f2a200 to 84f7bc5 Compare January 20, 2025 07:12
RELEASES.md Outdated
> by Go modules, 1.7 must be supported until EOL of all 1.x releases. Once 1.7 is in
> extended support, it will continue to accept security patches in addition to client
> changes relevant for package importers using the 1.6 LTS daemon.
Long term stable (_LTS_) releases are sponsored by at least two maintainers for at least two
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a file to track who the sponsor of the LTS is?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be the source of truth

RELEASES.md Outdated
ownership transferred back to all committers.


### All Releases
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we should add column for LTS's sponsor?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thats what the owners field is intended for

Copy link

@mikebrow mikebrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few proposed changes

RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
- __*Future*__: An upcoming scheduled release.
- __*Alpha*__: The next scheduled release on the main branch under active development.
- __*Beta*__: The next scheduled release on the main branch under testing. Begins 8-10 weeks before a final release.
- __*RC*__: The next scheduled release on the main branch under final testing and stabilization. Begins 2-4 weeks before a final release. For new releases where the source branch is main, the main branch will be in a feature freeze during this phase.
- __*Active*__: The release is a stable branch which is currently supported and accepting patches.
- __*Extended*__: The release branch is only accepting security patches.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- __*Extended*__: The release branch is only accepting security patches.
- __*Extended*__: The release branch is only accepting security patches any other critical updates would require formal exception approval at the discretion of the committers.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to say "and critical updates", up the discretion of the owners has to always be applied I think. Applying something "critical" shouldn't have be an exception, only defining what is "critical"

RELEASES.md Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
RELEASES.md Outdated Show resolved Hide resolved
@dmcgowan dmcgowan force-pushed the new-release-schedule branch from 84f7bc5 to a3cad56 Compare January 21, 2025 22:19
RELEASES.md Outdated
Comment on lines 46 to 47
on the current release cadence. Any changes to the release cadence will avoid
impacting releases which are already scheduled.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
on the current release cadence. Any changes to the release cadence will avoid
impacting releases which are already scheduled.
on the current release cadence. Changes to the release cadence will not
impact releases which are already scheduled.

RELEASES.md Outdated
### Release Owners

Every release shall be assigned owners when entering into the beta stage of the release. The initial
release owners will act as the release captains and will be responsible for creating the releases and

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should either define or omit the term "release captains". I think it's clear enough without including that; the owners are responsible for doing these things.

RELEASES.md Outdated
release owners will act as the release captains and will be responsible for creating the releases and
ensuring the release is on time. Once the release is in rc, the release owners should be part of any
discussion around merging impactful or risky changes. Every release should have two owners who
are both active maintainers and one of which has been involved in at least two prior releases.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the "involved in" requirements? Does that just mean "a maintainer during the Active state of that release" or acting in some other capacity?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update to has been a release owner to make it more explicit. The idea is that it would allow non-committers to be involved with releases. We can leave it up to us how we would define release owners for prior releases, but I plan to be involved in the next two scheduled releases to help transition the process anyway. I can update to "at least" two if that will help train more folks if necessary.

@dmcgowan dmcgowan force-pushed the new-release-schedule branch 3 times, most recently from d0a53f4 to d8262af Compare January 22, 2025 06:31
Adds new criteria and schedule for time based releases. Adds more
ownership and roles for the different phases of the release process.

Signed-off-by: Derek McGowan <[email protected]>
Signed-off-by: Derek McGowan <[email protected]>
@dmcgowan dmcgowan force-pushed the new-release-schedule branch from d8262af to 1fc48b9 Compare January 22, 2025 15:44
@dmcgowan dmcgowan closed this Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants