Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.45 KB

RELEASE.md

File metadata and controls

63 lines (47 loc) · 3.45 KB

Release Process

Overview

The Ingress2Gateway Project is a CLI project that helps translate Ingress and provider related resources to Gateway API resources.

Releasing a new version

Writing a Changelog

To simplify release notes generation, we recommend using the Kubernetes release notes generator:

go install k8s.io/release/cmd/release-notes@latest
export GITHUB_TOKEN=your_token_here
release-notes --start-sha EXAMPLE_COMMIT --end-sha EXAMPLE_COMMIT --branch main --repo ingress2gateway --org kubernetes-sigs --required-author=""

This output will likely need to be reorganized and cleaned up a bit, but it provides a good starting point. Once you're satisfied with the changelog, create a PR. This must go through the regular PR review process and get merged into the main branch. Approval of the PR indicates community consensus for a new release.

Update ingress2gateway version in annotation

  1. Once the new release version is determined, update CurrentVersion in pkg/i2gw/ingress2gateway.go so the translated Gateways will reflect the correct ingress2gateway tool version that generated them.

Patch a release

  1. Create a new branch in your fork named something like <githubuser>/release-x.x.x. Use the new branch in the upcoming steps.
  2. Use git to cherry-pick all relevant PRs into your branch.
  3. Update the version references in the codebase with the new semver tag.
  4. Create a pull request of the <githubuser>/release-x.x.x branch into the release-x.x branch upstream (which should already exist since this is a patch release). Add a hold on this PR waiting for at least one maintainer/codeowner to provide a lgtm.
  5. Create a tag using the HEAD of the release-x.x branch. This can be done using the git CLI or Github's [release][release] page.

Release a MAJOR or MINOR release

  1. Cut a release-major.minor branch that we can tag things in as needed.
  2. Check out the release-major.minor release branch locally.
  3. Update the version references in the codebase with the new semver tag.
  4. Verify the changelog is up to date with the desired changes.
  5. Create a tag using the HEAD of the release-x.x branch. This can be done using git tag -sa $VERSION CLI or Github's [release][release] page.
  6. Run git push origin $VERSION, this will trigger a github workflow that will create the release.
  7. Verify the releases page to ensure that the release meets the expectations.
  8. Optional: Send an annoncement email to [email protected] with the subject [ANNOUNCE] ingress2gateway $VERSION is released

Release a RC release

  1. Open a PR with changes of the version references in the codebase.
  2. Include necessary changelog updates to CHANGELOG.md in this PR.
  3. Merge the PR
  4. Tag the release using the commit on main where the PR merged. This can be done using the git CLI git tag -sa $VERSION.
  5. Run git push origin $VERSION, this will trigger a github workflow that will create the release.
  6. Verify the releases page to ensure that the release meets the expectations.
  7. Optional: Send an annoncement email to [email protected] with the subject [ANNOUNCE] ingress2gateway $VERSION is released