This document describes a process of releasing new versions of the gems living in this repo: lemans and miniswen.
We're (kinda) using semantic versioning:
- Bugfixes should be released as fast as possible as patch versions.
- New features could be combined and released as minor or patch version upgrades (depending on the size of the feature—it's up to maintainers to decide).
- Breaking API changes should be avoided in minor and patch releases.
- Breaking dependencies changes (e.g., dropping older Ruby support) could be released in minor versions.
Release order matters: if the miniswen version has changed since its last release, release miniswen first. The miniswen-installed agent installs miniswen from RubyGems at the exact version packaged with lemans (gem install miniswen -v <Miniswen::VERSION>), so that version must be published before a lemans release ships it.
- Bump version.
- Change the version number in the
lib/lemans/version.rbfile. - Update the changelog (add new heading with the version name and date).
- Update the installation documentation if necessary (e.g., during minor and major updates).
git commit -m "Bump 1.<x>.<y>"- Push code to GitHub and make sure CI passes.
git push- Tag the release and push the tag.
git tag v1.<x>.<y>
git push --tagsPushing a v* tag triggers the release workflow, which runs tests and publishes the gem to RubyGems via trusted publishing.
Don't forget to write release notes on GitHub (if necessary).
-
Bump the version in the
lib/miniswen/version.rbfile, commit, push, and make sure CI passes. -
Run the release-miniswen workflow manually (via the Actions tab or
gh workflow run release-miniswen.yml).
The miniswen release is not tagged. Remember to release miniswen before lemans whenever its version has been bumped.