Documentation for version v1.4 is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
Prepare a PR containing the release blog post. It’s usually easiest to make a copy of the most recent existing post, then replace the content as appropriate.
You also need to update site/index.html
to have “Latest Release Information” contain a link to the new post.
changelogs/CHANGELOG-<major>.<minor>.md
(if it doesn’t already exist) by copying the most recent one.make changelog
to generate a list of all unreleased changes. Copy/paste the output into CHANGELOG-<major>.<minor>.md
, under the “All Changes” section for the release.
changelogs/unreleased
.CHANGELOG.md
file to properly reference the release-specific changelog file:
site/docs/v1.4-pre
exists, and you’re releasing v1.4.0-beta.2
or v1.4.0
):
site/docs/<pre-release-version>
.site/_data/<pre-release-version>-toc.yml
.site/_data/toc-mapping.yml
.site/_config.yml
.NEW_DOCS_VERSION=v<major.minor> VELERO_VERSION=v<full-version> make gen-docs
(e.g. NEW_DOCS_VERSION=v1.2 VELERO_VERSION=v1.2.0 make gen-docs
or NEW_DOCS_VERSION=v1.2-pre VELERO_VERSION=v1.2.0-beta.1 make gen-docs
).
v1.4
(for a GA release), or v1.4-pre
(for an alpha/beta/RC).https://github.com/vmware-tanzu/velero/...
links in the docs should redirect to.site/README-JEKYLL.md
to complete the docs generation process.make serve-docs
and review the site.To run the goreleaser
process to generate a GitHub release, you’ll need to have a GitHub token. See https://goreleaser.com/environment/ for more details.
You may regenerate the token for every release if you prefer.
GITHUB_TOKEN
environment variable.GITHUB_TOKEN
environment variable.This process is the same for both pre-release and GA, except for the fact that there will not be a blog post PR to merge for pre-release versions.
Merge the changelog + docs PR, so that it’s included in the release tag.
Make sure your working directory is clean: git status
should show nothing to commit, working tree clean
.
Run git fetch upstream main && git checkout upstream/main
.
Run git tag <VERSION>
(e.g. git tag v1.2.0
or git tag v1.2.0-beta.1
).
Run git push upstream <VERSION>
(e.g. git push upstream v1.2.0
or git push upstream v1.2.0-beta.1
). This will trigger the github action that builds/publishes the Docker images.
Generate the GitHub release (it will be created in “Draft” status, which means it’s not visible to the outside world until you click “Publish”):
GITHUB_TOKEN=your-github-token \
RELEASE_NOTES_FILE=changelogs/CHANGELOG-<major>.<minor>.md \
PUBLISH=true \
make release
Navigate to the draft GitHub release, at https://github.com/vmware-tanzu/velero/releases.
If this is a patch release (e.g. v1.2.1
), note that the full CHANGELOG-1.2.md
contents will be included in the body of the GitHub release. You need to delete the previous releases’ content (e.g. v1.2.0
's changelog) so that only the latest patch release’s changelog shows.
Do a quick review for formatting. Note: the goreleaser
process should detect if it’s a pre-release version, and check that box in the GitHub release appropriately, but it’s always worth double-checking.
Publish the release.
By now, the Docker images should have been published. Perform a smoke-test - for example:
velero version
shows the expected output(GA Only) Merge the blog post PR.
Announce the release:
To help you get started, see the documentation.