This document describes how to release a new version of TopoLVM.
Follow semantic versioning 2.0.0 to choose the new version number.
Add notable changes since the last release to CHANGELOG.md. It should look like:
(snip)
## [Unreleased]
### Added
- Implement ... (#35)
### Changed
- Fix a bug in ... (#33)
### Removed
- Deprecated `-option` is removed ... (#39)
### Contributors
- @hoge
- @foo
(snip)
-
Determine a new version number. Export it as an environment variable:
$ VERSION=1.2.3 $ export VERSION
-
Checkout
main
branch. -
Make a branch to release, for example by
git neco dev bump-$VERSION
-
Update image versions in files below:
- deploy/manifests/overlays/deployment-scheduler/kustomization.yaml
- deploy/manifests/overlays/daemonset-scheduler/kustomization.yaml
- example/Makefile
- example/README.md
$ sed -r -i "s/newTag: [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/newTag: ${VERSION}/g" deploy/manifests/overlays/deployment-scheduler/kustomization.yaml deploy/manifests/overlays/daemonset-scheduler/kustomization.yaml $ sed -r -i "s/TOPOLVM_VERSION=[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/TOPOLVM_VERSION=${VERSION}/g" example/Makefile $ sed -r -i "s/checkout v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/checkout v${VERSION}/g" example/README.md
-
Edit
CHANGELOG.md
for the new version (example). -
Commit the change and create a pull request:
$ git commit -a -m "Bump version to $VERSION" $ git neco review
-
Merge the new pull request.
-
Add a new tag and push it as follows:
$ git checkout main $ git pull $ git tag v$VERSION $ git push origin v$VERSION
Once a new tag is pushed to GitHub, GitHub Actions automatically builds a tar archive for the new release, and uploads it to GitHub releases page.
Visit https://github.com/topolvm/topolvm/releases to check the result. You may manually edit the page to describe the release.
TopoLVM Helm Chart will be released independently. This will prevent the TopoLVM version from going up just by modifying the Helm Chart.
You must change the version of Chart.yaml when making changes to the Helm Chart. CI fails with lint error when creating a Pull Request without changing the version of Chart.yaml.
When you release the Helm Chart, manually run the GitHub Actions workflow for the release.
https://github.com/topolvm/topolvm/actions/workflows/helm-release.yaml
When you run workflow, helm/chart-releaser-action will automatically create a GitHub Release.