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

docs: update docs for release process #193

Merged
merged 5 commits into from
Jul 19, 2024
Merged

Conversation

shizhMSFT
Copy link
Contributor

Resolves #192

Signed-off-by: Shiwei Zhang <shizh@microsoft.com>
Signed-off-by: Shiwei Zhang <shizh@microsoft.com>
Signed-off-by: Shiwei Zhang <shizh@microsoft.com>
Signed-off-by: Shiwei Zhang <shizh@microsoft.com>
Signed-off-by: Shiwei Zhang <shizh@microsoft.com>
1. Check the new draft release, revise the release description, and publish the release.
1. Determine a [SemVer2](https://semver.org/)-valid version prefixed with the letter `v` for release. For example, `v1.0.0-alpha.1`.
1. Determine the commit to be tagged and released.
1. Create an issue for voting with title similar to `vote: tag v1.0.0-alpha.1` with the proposed commit.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here is a real example: notaryproject/notation-go#341

@@ -14,31 +14,32 @@ The maintainers may periodically update this policy based on feedback.

## Release Versioning

Consumers of the go-cose project may build directly from main, or pull from released builds.
Builds from main must reference the git-commit as the version: `v1.0.0-2300d5c`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The git-commit is not SemVer2 valid since v1.0.0-2300d5c < v1.0.0-alpha.1 < v1.0.0-b300d5c.

- Applicable fixes, including security fixes, may be cherry-picked from main into the latest supported minor release-X.Y branches.
- Patch releases are cut from a release-X.Y.Z branch.
- Applicable fixes, including security fixes, may be cherry-picked from main into the latest supported minor `release-X.Y` branches.
- Patch releases are cut from a `release-X.Y` branch.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Release branch should be scoped to minor versions.

@@ -6,20 +6,18 @@ This document describes the checklist to publish a release via GitHub workflow.

The maintainers may periodically update this checklist based on feedback.

NOTE: Make sure the dependencies in `go.mod` file are expected by the release.
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.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This line is notation specific and does not apply to go-cose.

After updating go.mod file, run `go mod tidy` to ensure the go.sum file is also updated with any potential changes.
> [!NOTE]
> Make sure the dependencies in `go.mod` file are expected by the release.
> After updating `go.mod` file, run `go mod tidy` to ensure the `go.sum` file is also updated with any potential changes.

## Release Process
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The entire release process was for a binary release. Since go-cose is a go module (i.e. library), the release process will be largely different.

1. Create an issue for voting with title similar to `vote: tag v1.0.0-alpha.1` with the proposed commit.
1. Wait for the vote pass.
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.
- 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.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Glad that we can release without using command line tools. Everything can be done directly on GitHub.

Copy link
Contributor

@OR13 OR13 left a comment

Choose a reason for hiding this comment

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

@shizhMSFT thank you for these updates

Copy link
Contributor

@SteveLasker SteveLasker left a comment

Choose a reason for hiding this comment

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

Thanks, @shizhMSFT
LGTM

@SteveLasker SteveLasker merged commit e5c68f9 into veraison:main Jul 19, 2024
3 checks passed
@shizhMSFT shizhMSFT deleted the doc branch July 20, 2024 01:56
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.

Update release-checklist.md
3 participants