This document explains releasing process for all Sinatra gems.
Since everything is bundled in same repo (except Mustermann
), we
have some rake tasks and a GitHub Actions workflow to cut a release.
(Please refer to Mustermann if that also needs a release.)
For releasing new version of [sinatra
, sinatra-contrib
, rack-protection
], this is the procedure:
- Update
CHANGELOG.md
- Update
VERSION
file with target version - Run
rake release:commit_version
- Create pull request with all that (example)
- Merge the pull request when CI is green
- Ensure you have latest changes locally
- Run
rake release:tag_version
- Push tag to upstream
- Run
rake release:watch
and watch GitHub Actions push to RubyGems.org
These rake tasks will generate .gem
and .tar.gz
files. For each gem,
there is one dedicated rake task.
# Build sinatra-contrib package
$ bundle exec rake package:sinatra-contrib
# Build rack-protection package
$ bundle exec rake package:rack-protection
# Build sinatra package
$ bundle exec rake package:sinatra
# Build all packages
$ bundle exec rake package:all
These rake tasks will package all the gems, and install them locally
# Build and install sinatra-contrib gem locally
$ bundle exec rake install:sinatra-contrib
# Build and install rack-protection gem locally
$ bundle exec rake install:rack-protection
# Build and install sinatra gem locally
$ bundle exec rake install:sinatra
# Build and install all gems locally
$ bundle exec rake install:all