Rakefile in masterview_parser-0.0.5 vs Rakefile in masterview_parser-0.0.6
- old
+ new
@@ -1,13 +1,25 @@
#!/usr/bin/env ruby
require 'rubygems'
+require 'meta_project'
+
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/gempackagetask'
require 'rake/contrib/rubyforgepublisher'
+require 'rake/contrib/xforge'
+require 'rake/clean'
+require 'gmailer'
+
+#require 'archive/tar/minitar'
+#require 'zlib'
+
+
+
+
$LOAD_PATH.unshift( File.join( File.dirname(__FILE__), 'lib') )
require 'masterview'
RUBY_FORGE_PROJECT = "masterview"
RUBY_FORGE_USER = "jeffbski"
@@ -92,10 +104,23 @@
# Rake::SshFilePublisher.new("foobar.com", "dist/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
#
# Rake::SshDirPublisher.new("foobar.com", "dist/api/#{PKG_NAME}", "doc").upload
#end
+MASTERVIEW = MetaProject::Project::XForge::RubyForge.new('masterview')
+
+task :verify_rubyforge do
+ raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
+ raise "RUBYFORGE_PASSWORD environment variable not set!" unless ENV['RUBYFORGE_PASSWORD']
+end
+
+task :verify_gmail do
+ raise "GMAIL_USER environment variable not set!" unless ENV['GMAIL_USER']
+ raise "GMAIL_PASSWORD environment variable not set!" unless ENV['GMAIL_PASSWORD']
+end
+
+
desc 'Build all packages'
task :package_all => ['masterview_complete:package',
'masterview:package',
'masterview_parser:package',
'masterview_generator:package',
@@ -106,10 +131,17 @@
'masterview:repackage',
'masterview_parser:repackage',
'masterview_generator:repackage',
'masterview_plugin_generator:repackage']
+desc 'Release all files'
+task :release_all_files => ['masterview_complete:release_files',
+ 'masterview:release_files',
+ 'masterview_parser:release_files',
+ 'masterview_generator:release_files',
+ 'masterview_plugin_generator:release_files']
+
namespace 'masterview_complete' do
module MasterViewComplete
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'masterview_complete'
PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
@@ -145,20 +177,43 @@
p.gem_spec = spec
p.need_tar = true
p.need_zip = true
end
- # --- Ruby forge release manager by florian gross -------------------------------------------------
- RUBY_FORGE_PACKAGEID = "1909" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
- desc "Publish the masterview_complete release files to RubyForge."
- task :release => [:gem, :package] do
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
+ desc "Release files on RubyForge."
+ task :release_files => [ :verify_rubyforge ] do
+ release_files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
-
- files.each do |file|
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
+ release.user_name = ENV['RUBYFORGE_USER']
+ release.password = ENV['RUBYFORGE_PASSWORD']
+ release.files = release_files.to_a
+ release.release_name = RELEASE_NAME
+ release.package_name = PKG_NAME
+
+ notes = []
+ File.open("RELEASE_NOTES") do |file|
+ file.each do |line|
+ line.chomp!
+ line.gsub!(/^#.*$/, '') and next
+ notes << line
+ end
+ end
+ release.release_notes = notes.join("\n")
+
+ changes = []
+ File.open("CHANGELOG") do |file|
+ current = true
+
+ file.each do |line|
+ line.chomp!
+ current = false if current and line =~ /^==/
+ break if line.empty? and not current
+ changes << line
+ end
+ end
+ release.release_changes = changes.join("\n")
end
end
end
end
@@ -195,20 +250,43 @@
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
- # --- Ruby forge release manager by florian gross -------------------------------------------------
- RUBY_FORGE_PACKAGEID = "1581" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
- desc "Publish the masterview_complete release files to RubyForge."
- task :release => [:gem, :package] do
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
+ desc "Release files on RubyForge."
+ task :release_files => [ :verify_rubyforge ] do
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
-
- files.each do |file|
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
+ release.user_name = ENV['RUBYFORGE_USER']
+ release.password = ENV['RUBYFORGE_PASSWORD']
+ release.files = release_files.to_a
+ release.release_name = RELEASE_NAME
+ release.package_name = PKG_NAME
+
+ notes = []
+ File.open("RELEASE_NOTES") do |file|
+ file.each do |line|
+ line.chomp!
+ line.gsub!(/^#.*$/, '') and next
+ notes << line
+ end
+ end
+ release.release_notes = notes.join("\n")
+
+ changes = []
+ File.open("CHANGELOG") do |file|
+ current = true
+
+ file.each do |line|
+ line.chomp!
+ current = false if current and line =~ /^==/
+ break if line.empty? and not current
+ changes << line
+ end
+ end
+ release.release_changes = changes.join("\n")
end
end
end
end
@@ -248,20 +326,43 @@
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
- # --- Ruby forge release manager by florian gross -------------------------------------------------
- RUBY_FORGE_PACKAGEID = "1910" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
- desc "Publish the masterview_parser release files to RubyForge."
- task :release => [:gem, :package] do
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
+ desc "Release files on RubyForge."
+ task :release_files => [ :verify_rubyforge ] do
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
-
- files.each do |file|
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
+ release.user_name = ENV['RUBYFORGE_USER']
+ release.password = ENV['RUBYFORGE_PASSWORD']
+ release.files = release_files.to_a
+ release.release_name = RELEASE_NAME
+ release.package_name = PKG_NAME
+
+ notes = []
+ File.open("RELEASE_NOTES") do |file|
+ file.each do |line|
+ line.chomp!
+ line.gsub!(/^#.*$/, '') and next
+ notes << line
+ end
+ end
+ release.release_notes = notes.join("\n")
+
+ changes = []
+ File.open("CHANGELOG") do |file|
+ current = true
+
+ file.each do |line|
+ line.chomp!
+ current = false if current and line =~ /^==/
+ break if line.empty? and not current
+ changes << line
+ end
+ end
+ release.release_changes = changes.join("\n")
end
end
end
end
@@ -297,20 +398,43 @@
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
- # --- Ruby forge release manager by florian gross -------------------------------------------------
- RUBY_FORGE_PACKAGEID = "1911" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
- desc "Publish the masterview_generator release files to RubyForge."
- task :release => [:gem, :package] do
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
+ desc "Release files on RubyForge."
+ task :release_files => [ :verify_rubyforge ] do
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
-
- files.each do |file|
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
+ release.user_name = ENV['RUBYFORGE_USER']
+ release.password = ENV['RUBYFORGE_PASSWORD']
+ release.files = release_files.to_a
+ release.release_name = RELEASE_NAME
+ release.package_name = PKG_NAME
+
+ notes = []
+ File.open("RELEASE_NOTES") do |file|
+ file.each do |line|
+ line.chomp!
+ line.gsub!(/^#.*$/, '') and next
+ notes << line
+ end
+ end
+ release.release_notes = notes.join("\n")
+
+ changes = []
+ File.open("CHANGELOG") do |file|
+ current = true
+
+ file.each do |line|
+ line.chomp!
+ current = false if current and line =~ /^==/
+ break if line.empty? and not current
+ changes << line
+ end
+ end
+ release.release_changes = changes.join("\n")
end
end
end
end
@@ -347,21 +471,78 @@
p.gem_spec = spec
p.need_tar = false
p.need_zip = false
end
- # --- Ruby forge release manager by florian gross -------------------------------------------------
- RUBY_FORGE_PACKAGEID = "1912" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
- desc "Publish the masterview_plugin_generator release files to RubyForge."
- task :release => [:gem, :package] do
- files = ["zip", "tgz"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
+ desc "Release files on RubyForge."
+ task :release_files => [ :verify_rubyforge ] do
+ release_files = ["gem"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
- system("rubyforge login --username #{::RUBY_FORGE_USER}")
-
- files.each do |file|
- system("rubyforge add_release #{::RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} \"#{RELEASE_NAME}\" #{file}")
+ Rake::XForge::Release.new(MASTERVIEW) do |release|
+ release.user_name = ENV['RUBYFORGE_USER']
+ release.password = ENV['RUBYFORGE_PASSWORD']
+ release.files = release_files.to_a
+ release.release_name = RELEASE_NAME
+ release.package_name = PKG_NAME
+
+ notes = []
+ File.open("RELEASE_NOTES") do |file|
+ file.each do |line|
+ line.chomp!
+ line.gsub!(/^#.*$/, '') and next
+ notes << line
+ end
+ end
+ release.release_notes = notes.join("\n")
+
+ changes = []
+ File.open("CHANGELOG") do |file|
+ current = true
+
+ file.each do |line|
+ line.chomp!
+ current = false if current and line =~ /^==/
+ break if line.empty? and not current
+ changes << line
+ end
+ end
+ release.release_changes = changes.join("\n")
end
end
end
end
+
+
+
+
+desc "Publish news on RubyForge"
+task :publish_news => [ :verify_rubyforge, :tar, :gem, :demotar] do
+ Rake::XForge::NewsPublisher.new(Ruby_PDF) do |news|
+ news.user_name = ENV['RUBYFORGE_USER']
+ news.password = ENV['RUBYFORGE_PASSWORD']
+ news.subject = "PDF::Writer #{PDF::Writer::VERSION} Released"
+ news.changes_file = nil
+
+ details = []
+ File.open("Release-Announcement") do |file|
+ file.each do |line|
+ line.chomp!
+ break if line =~ /^=/
+ details << line
+ end
+ end
+ news.details = details.join("\n")
+ end
+end
+
+desc "Post a release announcement via GMail."
+#task :email_announcement => [ :verify_gmail, :tar, :gem, :demotar] do
+task :email_announcement => [ :verify_gmail ] do
+ GMailer.connect(ENV["GMAIL_USER"], ENV["GMAIL_PASSWORD"]) do |gmail|
+ gmail.send :to => "ruby-talk@ruby-lang.org",
+ :subject => "[ANN] PDF::Writer #{PDF::Writer::VERSION}",
+ :body => File.read("Release-Announcement")
+ end
+end
+