sinatra/RELEASING.md

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 latest VERSION
  • Create a new commit with new VERSION and version.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