This document describes how clencli is versioned and released.
clencli uses semantic versioning in the form MAJOR.MINOR.PATCH. The box/resources/VERSION file holds the current version, and the clencli version command reports it together with the Go version, operating system, and architecture:
clencli v0.3.6 go1.16 linux amd64
Increment the version as follows:
MAJORfor incompatible changes to commands, flags, or output.MINORfor new commands or flags that remain backward compatible.PATCHfor backward-compatible bug fixes.
This project follows the GitFlow branching model. Develop features on branches and integrate them through the project's main line before tagging a release.
Releases are driven by Git tags. The release workflow runs on every pushed tag.
-
Update
box/resources/VERSIONto the new version. -
Update CHANGELOG.md with the changes in the release.
-
Commit the changes and push them.
-
Create and push a tag that matches the version, for example:
git tag 0.4.0 git push origin 0.4.0
When the tag is pushed, the release workflow compiles clencli for each supported operating system and architecture, creates a GitHub release, and uploads the compiled binaries as release assets. The release notes are taken from CHANGELOG.md.