Releasing
Each repository builds and publishes its own gem. Publish coordinated framework versions in this order:
Wait for each Release workflow to succeed and its gem to become available on RubyGems before tagging the next repository. The release workflow sets GRITZ_RELEASE=1, so tests use published dependencies. Development and CI use the dependencies' Git repositories, allowing work before the initial publication.
Trusted Publishing
Create a pending trusted publisher for this gem on RubyGems:
| Field | Value |
|---|---|
| Gem name | gritz-core |
| Repository owner | gritzrpc |
| Repository name | gritz-core |
| Workflow filename | release.yml |
| Environment | release |
Leave reusable-workflow repository fields empty. No API key is needed. See the RubyGems trusted publishing guide.
Publish a version
For a new gem, scaffold it with bundle gem and prepare all checks and release files, then stop before the first publication and ask the project owner to release it and configure Trusted Publishing. Initial CHANGELOG notes remain exactly Initial release..
- Update
lib/gritz/core/version.rb. For a coordinated release, update the native and meta gemspecs to require the matching component versions. - Record user-visible changes in CHANGELOG. First release notes are exactly
Initial release.. Documentation, tests, version bumps and tooling alone do not justify a release. - Run
bundle exec rake,bundle exec rubocop,bundle exec bundler-audit check --updateandbundle exec rake build. Commit, push main and wait for CI. - Configure Trusted Publishing for this repository and, if applicable, publish its dependencies first.
- Push the matching tag from this repository:
git tag v0.1.0
git push origin v0.1.0
Replace 0.1.0 with the release version. .github/workflows/release.yml validates the tag, tests and builds this gem, publishes it through Trusted Publishing, then creates a GitHub Release from the matching CHANGELOG entry.
rake release is restricted to the tag-triggered workflow. It receives short-lived credentials from rubygems/release-gem and creates no commits or tags. If publication fails, inspect RubyGems before rerunning; published versions cannot be overwritten.