This gem plugin adds a bootstrap
, tag
and a release
command to the rubygems gem
command.
The tag
command
- executes
git tag -am 'tag [tag_name]' [tag_name]
and - executes
git push --tags origin
… with tag_name
being the version number as specified in your .gemspec preceeded by v
(e.g. v0.0.1
).
The release
command
- builds a gem from your gemspec and
- pushes it to rubygems.org
- deletes the gem file
- optionally invokes the
tag
command
The gemspec
command
- generates an initial
[gem_name].gemspec
file with sane defaults (will overwrite an existing gemspec)
The bootstrap
command
- generates an initial
[gem_name].gemspec
file with sane defaults - optionally scaffolds:
lib/[gem_name]/version.rb
,README
,test/
- optionally inits a git repo, creates it on github and pushes it to github (requires git config for
github.user
andgithub.token
to be set)
Obviously …
$ gem install gem-release
$ gem release your.gemspec # builds the gem and pushes it to rubygems.org $ gem release # uses the first *.gemspec in the current working directory $ gem release --tag # also executes gem tag $ gem tag # creates a git tag and pushes tags to the origin repository $ gem gemspec # generates a [gem_name].gemspec using `git ls-files {app,lib}`.split("\n") $ gem gemspec --strategy glob # uses s.files = Dir['{lib/**/*,[A-Z]*}'] $ gem bootstrap $ gem bootstrap --scaffold # scaffolds lib/[gem_name]/version.rb, README, test/ $ gem bootstrap --github # inits a git repo, creates it on github and pushes it to github # (requires git config for github.user and github.token to be set)
If you don’t specify a gemspec filename the first *.gemspec file found in your current working directory will be used.