GemVersion
Automated version management for your Gem builds.
Resources
Install
-
sudo gem install gem_version
Use
-
require ‘gem_version’
Description
Never bother updating the version for your next gem build by hand. Configured in your Rakefile, gem_version automatically provides the next version and commits it to the repository.
Use
Require the library in your Rakefile:
require 'gem_version'
Use gem_version in your Gem Specification:
spec = Gem::Specification.new do |s|
s.version = GemVersion.next_version
...
end
Increment and commit the gem version in your Gemspec rake task:
desc 'Generate a gemspec file.'
task :gemspec do
File.open("#{spec.name}.gemspec", 'w') do |f|
f.write spec.to_ruby
end
GemVersion.increment_version
GemVersion.commit_and_push
end
Everytime you build your gem (this example uses Gemcutter):
rake gemspec
gem build your_gem_name.gemspec
GemVersion provides the next version for each build.
See my Rakefile for an example.
Bumping or resetting the next gem version
GemVersion creates a file named ‘next_gem_version’ in the root directory of your project which contains the ‘next’ gem version. Edit the version in this file or use the rake tasks to bump or set the version for the next build.
GemVersion increments the last component of your version. If you need to bump from 0.1.x to 0.2.x, you’ll need to bump the version manually.
Rake tasks
Two rake tasks gem:clean and gem:version are available whenever you require gem_version.
-
Clean the project root of .gem and .gemspec files.
rake gem:clean
-
Get the next gem version
rake gem:version
-
Set the next gem version
rake gem:version set=0.1.0
Dependencies
-
Git gem (>= 1.2.5)