You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: release-checklist.md
+11-13Lines changed: 11 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,20 +6,18 @@ This document describes the checklist to publish a release via GitHub workflow.
6
6
7
7
The maintainers may periodically update this checklist based on feedback.
8
8
9
-
NOTE: Make sure the dependencies in `go.mod` file are expected by the release.
10
-
For example, if there are dependencies on certain version of notation library (notation-go or notation-core-go) or ORAS library (oras-go), make sure that version of library is released first, and the version number is updated accordingly in `go.mod` file.
11
-
After updating go.mod file, run `go mod tidy` to ensure the go.sum file is also updated with any potential changes.
9
+
> [!NOTE]
10
+
> Make sure the dependencies in `go.mod` file are expected by the release.
11
+
> After updating `go.mod` file, run `go mod tidy` to ensure the `go.sum` file is also updated with any potential changes.
12
12
13
13
## Release Process
14
14
15
-
1. Determine a [SemVer2](https://semver.org/)-valid version prefixed with the letter `v` for release.
16
-
For example, `version="v1.0.0-alpha.1"`.
17
-
1. Bump up the `Version` in [internal/version/version.go](internal/version/version.go#L5) and open a PR for the changes.
18
-
1. Wait for the PR merge.
19
-
1. Be on the main branch connected to the actual repository (not a fork) and `git pull`.
20
-
Ensure `git log -1` shows the latest commit on the main branch.
21
-
1. Create a tag `git tag -am $version $version`
22
-
1.`git tag` and ensure the name in the list added looks correct, then push the tag directly to the repository by `git push --follow-tags`.
23
-
1. Wait for the completion of the GitHub action [release-github](https://github.com/veraison/go-cose/blob/main/.github/workflows/ci.yml).
24
-
1. Check the new draft release, revise the release description, and publish the release.
15
+
1. Determine a [SemVer2](https://semver.org/)-valid version prefixed with the letter `v` for release. For example, `v1.0.0-alpha.1`.
16
+
1. Determine the commit to be tagged and released.
17
+
1. Create an issue for voting with title similar to `vote: tag v1.0.0-alpha.1` with the proposed commit.
18
+
1. Wait for the vote pass.
19
+
1. Cut a release branch `release-X.Y` (e.g. `release-1.0`) if it does not exist. The voted commit MUST be the head of the release branch.
20
+
- To cut a release branch directly on GitHub, navigate to `https://github.com/veraison/go-cose/tree/{commit}` and then follow the [creating a branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch-using-the-branch-dropdown) doc.
21
+
1. Draft a new release from the release branch by following the [creating a release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) doc. Set release title to the voted version and create a tag in the **Choose a tag** dropdown menu with the voted version as the tag name.
22
+
1. Proofread the draft release, and publish the release.
Copy file name to clipboardExpand all lines: release-management.md
+19-18Lines changed: 19 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,31 +14,32 @@ The maintainers may periodically update this policy based on feedback.
14
14
15
15
## Release Versioning
16
16
17
-
Consumers of the go-cose project may build directly from main, or pull from released builds.
18
-
Builds from main must reference the git-commit as the version: `v1.0.0-2300d5c`
17
+
Consumers of the go-cose module may reference `main` directly, or reference released tags.
19
18
20
19
All go-cose [releases][releases] follow a go-lang flavored derivation (`v*`) of the [semver][sem-ver] format, with optional pre-release labels.
21
20
22
-
Logical Progression of a release: `v1.0.0-2300d5c` --> `v1.0.0-alpha.1` --> `v1.0.0-alpha.2` --> `v1.0.0-rc.1` --> `v1.0.0`
21
+
Logical Progression of a release: `v1.0.0-alpha.1` --> `v1.0.0-alpha.2` --> `v1.0.0-rc.1` --> `v1.0.0`
23
22
24
-
A new major or minor release will not have an automated build/release posted until the branch reaches alpha quality.
23
+
A new major or minor release will not have an automated release posted until the branch reaches alpha quality.
25
24
26
-
- all versions use a preface of `v`
27
-
-`X` is the [Major](#major-releases) version
28
-
-`Y` is the [Minor](#minor-releases) version
29
-
-`Z` is the [Patch](#patch-releases) version
25
+
- All versions use a preface of `v`
26
+
- Given a version `vX.Y.Z`,
27
+
-`X` is the [Major](#major-releases) version
28
+
-`Y` is the [Minor](#minor-releases) version
29
+
-`Z` is the [Patch](#patch-releases) version
30
30
-_Optional_`-alpha.n` | `-rc.n`[pre-release](#pre-release) version
31
31
- Each incremental alpha or rc build will bump the suffix (`n`) number.
32
32
- It's not expected to have more than 9 alphas or rcs.
33
33
The suffix will be a single digit.
34
34
- If > 9 builds do occur, the format will simply use two digit indicators (`v1.0.0-alpha.10`)
35
35
36
-
_**Note**: Pre-releases will NOT use the github pre-release flag._
36
+
> [!IMPORTANT]
37
+
> Pre-releases will NOT use the github pre-release flag.
37
38
38
39
## Branch Management
39
40
40
41
To meet the projects stability goals, go-cose does not currently operate with multiple feature branches.
41
-
All active development happens in main.
42
+
All active development happens in `main`.
42
43
For each release, a branch is created for servicing, following the versioning name.
43
44
`v1.0.0-alpha-1` would have an associated [v1.0.0-alpha.1](https://github.com/veraison/go-cose/tree/v1.0.0-alpha.1) branch.
44
45
All version and branch names are lower case.
@@ -76,30 +77,30 @@ Principals of a patch release:
76
77
- No breaking changes.
77
78
- No feature or surface area changes.
78
79
- A "bug fix" that may be a breaking change may require a major release.
79
-
- Applicable fixes, including security fixes, may be cherry-picked from main into the latest supported minor release-X.Y branches.
80
-
- Patch releases are cut from a release-X.Y.Z branch.
80
+
- Applicable fixes, including security fixes, may be cherry-picked from main into the latest supported minor `release-X.Y` branches.
81
+
- Patch releases are cut from a `release-X.Y` branch.
81
82
82
83
Each patch release will go through one or more `-alpha.n` and `-rc.n` pre-release phases.
83
84
84
85
### Pre-Release
85
86
86
-
As builds of main become stable, and a pending release is planned, a pre-release build will be made.
87
+
As builds of `main` become stable, and a pending release is planned, a pre-release build will be made.
87
88
Pre-releases go through one or more `-alpha.n` releases, followed by one or more incremental `-rc.n` releases.
88
89
89
90
-**alpha.n:**`X.Y.Z-alpha.n`
90
91
- alpha release, cut from the branch where development occurs.
91
92
To minimize branch management, no additional branches are maintained for each incremental release.
92
93
- Considered an unstable release which should only be used for early development purposes.
93
94
- Released incrementally until no additional issues and prs are made against the release.
94
-
- Once no triaged issues or pull requests (prs) are scoped to the release, a release candidate (rc) is cut.
95
+
- Once no triaged issues or pull requests (prs) are scoped to the release, a release candidate (`rc`) is cut.
95
96
- To minimize confusion, and the risk of an alpha being widely deployed, alpha branches and released binaries may be removed at the discretion, and a [two-thirds supermajority][super-majority] vote, of the maintainers.
96
97
Maintainers will create an Issue, and vote upon it for transparency to the decision to remove a release and/or branch.
97
98
- Not [supported](#supported-releases)
98
99
-**rc.n:**`X.Y.Z-rc.n`
99
100
- Released as needed before a final version is released
100
101
- Bugfixes on new features only as reported through usage
101
-
- An rc is not expected to revert to an alpha release.
102
-
- Once no triaged issues or prs are scoped to the release, an final version is cut.
102
+
- An `rc` is not expected to revert to an alpha release.
103
+
- Once no triaged issues or PRs are scoped to the release, an final version is cut.
103
104
- A release candidate will typically have at least two weeks of bake time, providing the community time to provide feedback.
104
105
- Release candidates are cut from the branch where the work is done.
105
106
- To minimize confusion, and the risk of an rc being widely deployed, rc branches and released binaries may be removed at the discretion, and a [two-thirds supermajority][super-majority] vote, of the maintainers.
@@ -108,9 +109,9 @@ Maintainers will create an Issue, and vote upon it for transparency to the decis
108
109
109
110
## Supported Releases
110
111
111
-
The go-cose maintainers expect to "support" n (current) and n-1 major.minor releases.
112
+
The go-cose maintainers expect to "support" n (current) and `n-1` major.minor releases.
112
113
"Support" means we expect users to be running that version in production.
113
-
For example, when v1.3.0 comes out, v1.1.x will no longer be supported for patches, and the maintainers encourage users to upgrade to a supported version as soon as possible.
114
+
For example, when `v1.3.0` comes out, `v1.1.x` will no longer be supported for patches, and the maintainers encourage users to upgrade to a supported version as soon as possible.
114
115
Support will be provided best effort by the maintainers via GitHub issues and pull requests from the community.
115
116
116
117
The go-cose maintainers expect users to stay up-to-date with the versions of go-cose release they use in production, but understand that it may take time to upgrade.
0 commit comments