diff --git a/Rakefile b/Rakefile index 5585280589..aae59b8ecc 100644 --- a/Rakefile +++ b/Rakefile @@ -46,33 +46,7 @@ else end desc 'Bump all versions to match version.rb' -task :update_versions do - require File.dirname(__FILE__) + "/version" - - File.open("RAILS_VERSION", "w") do |f| - f.puts Rails::VERSION::STRING - end - - constants = { - "activesupport" => "ActiveSupport", - "activemodel" => "ActiveModel", - "actionpack" => "ActionPack", - "actionview" => "ActionView", - "actionmailer" => "ActionMailer", - "activerecord" => "ActiveRecord", - "railties" => "Rails" - } - - version_file = File.read("version.rb") - - PROJECTS.each do |project| - Dir["#{project}/lib/*/gem_version.rb"].each do |file| - File.open(file, "w") do |f| - f.write version_file.gsub(/Rails/, constants[project]) - end - end - end -end +task :update_versions => "all:update_versions" # We have a webhook configured in GitHub that gets invoked after pushes. # This hook triggers the following tasks: diff --git a/tasks/release.rb b/tasks/release.rb index a55cb68a47..849117884c 100644 --- a/tasks/release.rb +++ b/tasks/release.rb @@ -15,38 +15,37 @@ rm_f gem end - task :update_version_rb do + task :update_versions do glob = root.dup - glob << "/#{framework}/lib/*" unless framework == "rails" - glob << "/version.rb" + if framework == "rails" + glob << "/version.rb" + else + glob << "/#{framework}/lib/*" + glob << "/gem_version.rb" + end file = Dir[glob].first ruby = File.read(file) - if framework == "rails" || framework == "railties" - major, minor, tiny, pre = version.split('.') - pre = pre ? pre.inspect : "nil" + major, minor, tiny, pre = version.split('.') + pre = pre ? pre.inspect : "nil" - ruby.gsub!(/^(\s*)MAJOR(\s*)= .*?$/, "\\1MAJOR = #{major}") - raise "Could not insert MAJOR in #{file}" unless $1 + ruby.gsub!(/^(\s*)MAJOR(\s*)= .*?$/, "\\1MAJOR = #{major}") + raise "Could not insert MAJOR in #{file}" unless $1 - ruby.gsub!(/^(\s*)MINOR(\s*)= .*?$/, "\\1MINOR = #{minor}") - raise "Could not insert MINOR in #{file}" unless $1 + ruby.gsub!(/^(\s*)MINOR(\s*)= .*?$/, "\\1MINOR = #{minor}") + raise "Could not insert MINOR in #{file}" unless $1 - ruby.gsub!(/^(\s*)TINY(\s*)= .*?$/, "\\1TINY = #{tiny}") - raise "Could not insert TINY in #{file}" unless $1 + ruby.gsub!(/^(\s*)TINY(\s*)= .*?$/, "\\1TINY = #{tiny}") + raise "Could not insert TINY in #{file}" unless $1 - ruby.gsub!(/^(\s*)PRE(\s*)= .*?$/, "\\1PRE = #{pre}") - raise "Could not insert PRE in #{file}" unless $1 - else - ruby.gsub!(/^(\s*)Gem::Version\.new .*?$/, "\\1Gem::Version.new \"#{version}\"") - raise "Could not insert Gem::Version in #{file}" unless $1 - end + ruby.gsub!(/^(\s*)PRE(\s*)= .*?$/, "\\1PRE = #{pre}") + raise "Could not insert PRE in #{file}" unless $1 File.open(file, 'w') { |f| f.write ruby } end - task gem => %w(update_version_rb pkg) do + task gem => %w(update_versions pkg) do cmd = "" cmd << "cd #{framework} && " unless framework == "rails" cmd << "gem build #{gemspec} && mv #{framework}-#{version}.gem #{root}/pkg/" @@ -93,9 +92,10 @@ end namespace :all do - task :build => FRAMEWORKS.map { |f| "#{f}:build" } + ['rails:build'] - task :install => FRAMEWORKS.map { |f| "#{f}:install" } + ['rails:install'] - task :push => FRAMEWORKS.map { |f| "#{f}:push" } + ['rails:push'] + task :build => FRAMEWORKS.map { |f| "#{f}:build" } + ['rails:build'] + task :update_versions => FRAMEWORKS.map { |f| "#{f}:update_versions" } + ['rails:update_versions'] + task :install => FRAMEWORKS.map { |f| "#{f}:install" } + ['rails:install'] + task :push => FRAMEWORKS.map { |f| "#{f}:push" } + ['rails:push'] task :ensure_clean_state do unless `git status -s | grep -v RAILS_VERSION`.strip.empty?