Skip to content

Commit

Permalink
Document release process for major and minor versions
Browse files Browse the repository at this point in the history
  • Loading branch information
gauravkghildiyal committed Nov 1, 2024
1 parent 8de3445 commit 02c6c61
Showing 1 changed file with 65 additions and 6 deletions.
71 changes: 65 additions & 6 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,68 @@
# Release Process

The Kubernetes Template Project is released on an as-needed basis. The process is as follows:
## Releasing a major or minor version

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

* Install goreleaser:
```bash
go install github.com/goreleaser/goreleaser@latest
```
**Steps:**

1. Determine the release version:

- Identify the `MAJOR`, `MINOR`, and `PATCH` version numbers for the release.
- For example:
```bash
MAJOR="1"
MINOR="2"
PATCH="3"
```

2. Create a release branch:


- Create a release branch using the format `release-${MAJOR}.${MINOR}`:

```bash
git checkout -b release-${MAJOR}.${MINOR}
```

- Push the release branch to the upstream repository:

```bash
git push upstream release-${MAJOR}.${MINOR}
```

3. Create and push a tag:

- Create a new tag using the format `v${MAJOR}.${MINOR}.${PATCH}`:

```bash
git tag v${MAJOR}.${MINOR}.${PATCH}
```

- Push the release branch to the upstream repository:

```bash
git push upstream v${MAJOR}.${MINOR}.${PATCH}
```

4. Build release artifacts:

- Use `goreleaser` to build the release artifacts:

```bash
goreleaser release --clean --skip-publish
```

This command generates the release artifacts in the `dist` directory.

5. **Create a GitHub release:**

- Go to the project's GitHub repository and navigate to the [New Releases
page](https://github.com/kubernetes-sigs/gwctl/releases/new).
- Select the newly created tag (`v${MAJOR}.${MINOR}.${PATCH}`) from the "Choose a tag" dropdown.
- Attach the relevant release artifacts (`.tar.gz` and `.zip` files) from the `dist` directory.
- Publish the release.

0 comments on commit 02c6c61

Please sign in to comment.