This document explains releasing process for all Sinatra gems.
Since everything is bundled in same repo (except Mustermann
), we now
have one rake task 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
VERSION
file with target version - Run
bundle exec rake release:all
- ???
- Profit!!!
Thats it!
This rake task can be broken down as:
- Pick up latest version string from
VERSION
file - Run all tests to ensure gems are not broken
- Update
version.rb
file in all gems with latestVERSION
- Create a new commit with new
VERSION
andversion.rb
files - Tag the commit with same version
- Push the commit and tags to github
- Package all the gems, ie create all
.gem
files - Ensure that all the gems can be installed locally
- If no issues, push all gems to upstream.
In addition to above rake task, there are other rake tasks which can help with development.
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