Project Syn Tools Release Process
Releases often just require a new SemVer tag with v
-prefix to be pushed, for example v1.2.3
.
Commodore Components
Commodore Components are to be tagged with SemVer with v<major>.<minor>.<patch>[-rc<rc>]
pattern (optionally includes Release candidates tagging).
-
v1.0.0
-
v1.2.3-rc1
Generally, we discourage the use of |
The release process itself is straightforward:
-
Identify which type of pull requests were merged since last release (fixes, enhancements or breaking changes) to decide on the next SemVer version number. See also Review Guide for the pull request label usage.
-
Create and push a new Git tag on the default branch.
-
If there are no breaking changes since the last release, immediately bump the version number of the released component in the Commodore defaults repository.
How to deal with breaking changes
There’s two broad categories of breaking changes:
-
Breaking changes which can be automatically rolled out with appropriate upgrade jobs in the component. In those cases, the component has implemented a automatic upgrade path where no user interaction is required.
-
Breaking changes which require changes in the config hierarchy. This case requires that users bump the version along with the config changes that are documented in the upgrade documentation.
For Project Syn setups that use common or global defaults in their hierarchy, bumping the version in the defaults can usually only be done once all clusters have been upgraded to the new version.
Lieutenant API and Operator
All Project Syn Tools that require the container image tag to be in sync with the release, require additional preparation:
-
Create a release branch
git checkout -b prepare-release
-
Edit
deploy/kustomization.yaml
to point to the to-be-released version-
On Lieutenant API also update the Steward tag in
deploy/deployment.yaml
: Environment variableSTEWARD_IMAGE
.
-
-
Commit and push the changes and create a Pull Request
git commit -a -m "Prepare release vX.Y.Z" git push -u
-
Check and update Getting Started guide and Tutorial: Writing your First Commodore Component (These guides need to be up-to-date and work 100% all the time)
Additional work for major releases
If a "major" release is being done, the following additional work needs to be done:
-
Update the Roadmap
-
Write a blogpost and spread it on social media
-
Close the associated GitHub project and internal Jira project (if applicable)