mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
1.7 KiB
1.7 KiB
This document explains releasing process for Sinatra, sinatra-contrib and rack-protection gems. Since all the gems are bundled in same repo, we now have bunch of rake tasks to manage release process.
Releasing
For relesing new version of all the 3 gems, this is the procedure.
- Update
VERSION
file with target version - Run
bundle exec rake release:all
Thats it! The role of rake task is:
- 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.
Packaging
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
Packaging and installing locally
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