diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2009-03-22 00:47:36 +0100 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2009-03-22 13:37:31 +0100 |
commit | 17b49c169599b1f5d8a1392451f0c1d174fd15ae (patch) | |
tree | 96dfac9efacd615d432af54dfa8ad788dda337eb | |
parent | b3dc8579ef4c9aa2ec872c116257d57d4e6a4f51 (diff) |
Separate gemspec from Rakefile
The benefit of this separation is that hosting services such as GitHub
will automatically build a gem every time the version in the spec is
changed. The underside of this separation is that hosting services such
as GitHub will automatically build a gem every time the version is
changed.
To allow the automatic gem generation to trigger on the release of
0.9.15, we demoted the version in the spec to 0.9.14. This gimmick is
needed because the gem spec doesn't allow non-numeric versions.
Since the gemspec is now standalone, it uses Dir instead of FileList,
which is equivalent for our use case. Moreover, the Rakefile only
defines the gem tasks if the spec is present.
-rw-r--r-- | Rakefile | 58 | ||||
-rw-r--r-- | rbot.gemspec | 45 | ||||
-rwxr-xr-x | tag-release | 2 |
3 files changed, 56 insertions, 49 deletions
@@ -4,54 +4,16 @@ require 'rake/gempackagetask' task :default => [:buildext] -spec = Gem::Specification.new do |s| - s.name = 'rbot' - s.version = '0.9.15' - s.summary = <<-EOF - A modular ruby IRC bot. - EOF - s.description = <<-EOF - A modular ruby IRC bot specifically designed for ease of extension via plugins. - EOF - s.requirements << 'Ruby, version 1.8.0 (or newer)' - - s.files = FileList[ - 'lib/**/*.rb', - 'bin/*', - 'data/rbot/**/*', - 'AUTHORS', - 'COPYING', - 'README', - 'REQUIREMENTS', - 'TODO', - 'ChangeLog', - 'INSTALL', - 'Usage_en.txt', - 'setup.rb', - 'launch_here.rb', - 'po/*.pot', - 'po/**/*.po' - ] - - s.bindir = 'bin' - s.executables = ['rbot', 'rbot-remote'] - s.default_executable = 'rbot' - s.extensions = 'Rakefile' - -# s.autorequire = 'rbot/ircbot' - s.has_rdoc = true - s.rdoc_options = ['--exclude', 'post-install.rb', - '--title', 'rbot API Documentation', '--main', 'README', 'README'] - - s.author = 'Tom Gilbert' - s.email = 'tom@linuxbrit.co.uk' - s.homepage = 'http://ruby-rbot.org' - s.rubyforge_project = 'rbot' -end - -Rake::GemPackageTask.new(spec) do |pkg| - pkg.need_zip = true - pkg.need_tar = true +SPECFILE = 'rbot.gemspec' +# The Rakefile is also used after installing the gem, to build +# the .mo files. Since in this case the SPECFILE is not available, +# we must (and can) skip defining the gem packaging tasks. +if File.exist? SPECFILE + spec = eval(File.read(SPECFILE), nil, SPECFILE) + Rake::GemPackageTask.new(spec) do |pkg| + pkg.need_zip = true + pkg.need_tar = true + end end # normalize a po/pot file diff --git a/rbot.gemspec b/rbot.gemspec new file mode 100644 index 00000000..6369b595 --- /dev/null +++ b/rbot.gemspec @@ -0,0 +1,45 @@ +Gem::Specification.new do |s| + s.name = 'rbot' + s.version = '0.9.14' + s.summary = <<-EOF + A modular ruby IRC bot. + EOF + s.description = <<-EOF + A modular ruby IRC bot specifically designed for ease of extension via plugins. + EOF + s.requirements << 'Ruby, version 1.8.0 (or newer)' + + s.files = Dir[ + 'lib/**/*.rb', + 'bin/*', + 'data/rbot/**/*', + 'AUTHORS', + 'COPYING', + 'README', + 'REQUIREMENTS', + 'TODO', + 'ChangeLog', + 'INSTALL', + 'Usage_en.txt', + 'setup.rb', + 'launch_here.rb', + 'po/*.pot', + 'po/**/*.po' + ] + + s.bindir = 'bin' + s.executables = ['rbot', 'rbot-remote'] + s.default_executable = 'rbot' + s.extensions = 'Rakefile' + +# s.autorequire = 'rbot/ircbot' + s.has_rdoc = true + s.rdoc_options = ['--exclude', 'post-install.rb', + '--title', 'rbot API Documentation', '--main', 'README', 'README'] + + s.author = 'Tom Gilbert' + s.email = 'tom@linuxbrit.co.uk' + s.homepage = 'http://ruby-rbot.org' + s.rubyforge_project = 'rbot' +end + diff --git a/tag-release b/tag-release index f3a1c6d8..ba1b8022 100755 --- a/tag-release +++ b/tag-release @@ -18,7 +18,7 @@ echo "Version: $VERSION" sed -i -e "/^\$version =/ c \$version = '$FULLVERSION'" launch_here.rb sed -i -e "/^\$version ||=/ c \$version ||= '$FULLVERSION'" bin/rbot -sed -i -e "/^ s.version =/ c \ s.version = '$VERSION'" Rakefile +sed -i -e "/^ s.version =/ c \ s.version = '$VERSION'" rbot.gemspec NOGIT=${FULLVERSION/-git/} if [ $NOGIT == $FULLVERSION ]; then |