Skip to content

Commit 4e14217

Browse files
authored
Merge pull request #61 from LiorLieberman/docs-update
Document the new release process
2 parents d277aad + d1aa3e5 commit 4e14217

File tree

4 files changed

+68
-9
lines changed

4 files changed

+68
-9
lines changed

.github/workflows/release.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: release
22
on:
33
push:
44
tags:
5-
- "v*.*.*"
5+
- "v*.*"
66
permissions:
77
contents: write
88
jobs:

.goreleaser.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# This is an example .goreleaser.yml file with some sensible defaults.
2-
# Make sure to check the documentation at https://goreleaser.com
1+
# goreleaser documentation at https://goreleaser.com
32
before:
43
hooks:
54
# You may remove this if you don't use go modules.
@@ -44,6 +43,7 @@ release:
4443
changelog:
4544
# leaving this github-native option in case we will want to use the GitHub release notes generation API in the future.
4645
# use: github-native
46+
use: github
4747
sort: asc
4848
filters:
4949
exclude:

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changelog
2+
3+
## Table of Contents
4+
5+
- [v0.1.0](#v010-rc1)
6+
7+
## v0.1.0-rc1
8+
<!-- TODO(liorlieberman) -->

RELEASE.md

+57-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,60 @@
11
# Release Process
22

3-
The Kubernetes Template Project is released on an as-needed basis. The process is as follows:
3+
## Overview
4+
5+
The Ingress2Gateway Project is CLI project that helps with translating Ingress and provider related resources to [Gateway API](https://github.com/kubernetes-sigs/gateway-api) resources.
6+
7+
## Releasing a new version
8+
9+
### Writing a Changelog
10+
11+
To simplify release notes generation, we recommend using the [Kubernetes release
12+
notes generator](https://github.com/kubernetes/release/blob/master/cmd/release-notes):
13+
14+
```
15+
go install k8s.io/release/cmd/release-notes@latest
16+
export GITHUB_TOKEN=your_token_here
17+
release-notes --start-sha EXAMPLE_COMMIT --end-sha EXAMPLE_COMMIT --branch main --repo ingress2gateway --org kubernetes-sigs
18+
```
19+
20+
This output will likely need to be reorganized and cleaned up a bit, but it
21+
provides a good starting point. Once you're satisfied with the changelog, create
22+
a PR. This must go through the regular PR review process and get merged into the
23+
`main` branch. Approval of the PR indicates community consensus for a new
24+
release.
25+
26+
### Patch a release
27+
28+
1. Create a new branch in your fork named something like `<githubuser>/release-x.x.x`. Use the new branch
29+
in the upcoming steps.
30+
1. Use `git` to cherry-pick all relevant PRs into your branch.
31+
1. Update the version references in the codebase with the new semver tag.
32+
1. Create a pull request of the `<githubuser>/release-x.x.x` branch into the `release-x.x` branch upstream
33+
(which should already exist since this is a patch release). Add a hold on this PR waiting for at least
34+
one maintainer/codeowner to provide a `lgtm`.
35+
1. Create a tag using the `HEAD` of the `release-x.x` branch. This can be done using the `git` CLI or
36+
Github's [release][release] page.
37+
38+
### Release a MAJOR or MINOR release
39+
40+
1. Cut a `release-major.minor` branch that we can tag things in as needed.
41+
1. Check out the `release-major.minor` release branch locally.
42+
1. Update the version references in the codebase with the new semver tag.
43+
1. Verify the changelog is up to date with the desired changes.
44+
1. Create a tag using the `HEAD` of the `release-x.x` branch. This can be done using `git tag -sa $VERSION` CLI or
45+
Github's [release][release] page.
46+
1. Run `git push origin $VERSION`, this will trigger a github workflow that will create the release.
47+
1. Verify the [releases page](https://github.com/kubernetes-sigs/ingress2gateway/releases) to ensure that the release meets the expectations.
48+
1. Optional: Send an annoncement email to `[email protected]` with the subject `[ANNOUNCE] ingress2gateway $VERSION is released`
49+
50+
51+
### Release a RC release
52+
53+
1. Open a PR with changes of the version references in the codebase.
54+
1. Include necessary changelog updates to CHANGELOG.md in this PR.
55+
1. Merge the PR
56+
1. Tag the release using the commit on main where the PR merged. This can be done using the git CLI `git tag -sa $VERSION`.
57+
1. Run `git push origin $VERSION`, this will trigger a github workflow that will create the release.
58+
1. Verify the [releases page](https://github.com/kubernetes-sigs/ingress2gateway/releases) to ensure that the release meets the expectations.
59+
1. Optional: Send an annoncement email to `[email protected]` with the subject `[ANNOUNCE] ingress2gateway $VERSION is released`
460

5-
1. An issue is proposing a new release with a changelog since the last release
6-
1. All [OWNERS](OWNERS) must LGTM this release
7-
1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
8-
1. The release issue is closed
9-
1. An announcement email is sent to `[email protected]` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`

0 commit comments

Comments
 (0)