-
Notifications
You must be signed in to change notification settings - Fork 62
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
docs: add release cadence docs, and tasks for notifying after release #823
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Release Management | ||
|
||
## Overview | ||
|
||
This document describes Eraser project release management, which includes release versioning, supported releases, and supported upgrades. | ||
|
||
## Legend | ||
|
||
- **X.Y.Z** refers to the version (git tag) of Eraser that is released. This is the version of the Eraser images and the Chart version. | ||
- **Breaking changes** refer to schema changes, flag changes, and behavior changes of Eraser that may require a clean installation during upgrade, and it may introduce changes that could break backward compatibility. | ||
- **Milestone** should be designed to include feature sets to accommodate 2 months release cycles including test gates. GitHub's milestones are used by maintainers to manage each release. PRs and Issues for each release should be created as part of a corresponding milestone. | ||
- **Patch releases** refer to applicable fixes, including security fixes, may be backported to support releases, depending on severity and feasibility. | ||
- **Test gates** should include soak tests and upgrade tests from the last minor version. | ||
|
||
## Release Versioning | ||
|
||
All releases will be of the form _vX.Y.Z_ where X is the major version, Y is the minor version and Z is the patch version. This project strictly follows semantic versioning. | ||
|
||
The rest of the doc will cover the release process for the following kinds of releases: | ||
|
||
**Major Releases** | ||
|
||
No plan to move to 2.0.0 unless there is a major design change like an incompatible API change in the project | ||
|
||
**Minor Releases** | ||
|
||
- X.Y.0-alpha.W, W >= 0 (Branch : main) | ||
- Released as needed before we cut a beta X.Y release | ||
- Alpha release, cut from master branch | ||
- X.Y.0-beta.W, W >= 0 (Branch : main) | ||
- Released as needed before we cut a stable X.Y release | ||
- More stable than the alpha release to signal users to test things out | ||
- Beta release, cut from master branch | ||
- X.Y.0-rc.W, W >= 0 (Branch : main) | ||
- Released as needed before we cut a stable X.Y release | ||
- soak for ~ 2 weeks before cutting a stable release | ||
- Release candidate release, cut from master branch | ||
- X.Y.0 (Branch: main) | ||
- Released every ~ 3 months | ||
- Stable release, cut from master when X.Y milestone is complete | ||
|
||
**Patch Releases** | ||
|
||
- Patch Releases X.Y.Z, Z > 0 (Branch: release-X.Y, only cut when a patch is needed) | ||
- No breaking changes | ||
- Applicable fixes, including security fixes, may be cherry-picked from master into the latest supported minor release-X.Y branches. | ||
- Patch release, cut from a release-X.Y branch | ||
|
||
## Supported Releases | ||
|
||
Applicable fixes, including security fixes, may be cherry-picked into the release branch, depending on severity and feasibility. Patch releases are cut from that branch as needed. | ||
|
||
We expect users to stay reasonably up-to-date with the versions of Eraser they use in production, but understand that it may take time to upgrade. We expect users to be running approximately the latest patch release of a given minor release and encourage users to upgrade as soon as possible. | ||
|
||
We expect to "support" n (current) and n-1 major.minor releases. "Support" means we expect users to be running that version in production. For example, when v1.2.0 comes out, v1.0.x will no longer be supported for patches, and we encourage users to upgrade to a supported version as soon as possible. | ||
|
||
## Supported Kubernetes Versions | ||
|
||
Eraser is assumed to be compatible with the [current Kubernetes Supported Versions](https://kubernetes.io/releases/patch-releases/#detailed-release-history-for-active-branches) per [Kubernetes Supported Versions policy](https://kubernetes.io/releases/version-skew-policy/). | ||
|
||
For example, if Eraser _supported_ versions are v1.2 and v1.1, and Kubernetes _supported_ versions are v1.22, v1.23, v1.24, then all supported Eraser versions (v1.2, v1.1) are assumed to be compatible with all supported Kubernetes versions (v1.22, v1.23, v1.24). If Kubernetes v1.25 is released later, then Eraser v1.2 and v1.1 will be assumed to be compatible with v1.25 if those Eraser versions are still supported at that time. | ||
|
||
If you choose to use Eraser with a version of Kubernetes that it does not support, you are using it at your own risk. | ||
|
||
## Acknowledgement | ||
|
||
This document builds on the ideas and implementations of release processes from projects like Kubernetes and Helm. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 is a good idea, it would be cool to automate these. obviously, out of scope for this PR 😀
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.
it can be a reusable generic automation