From 73bd53b9882ef8c28ae49fb08ce5544e18ee4117 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:22:33 +0900 Subject: [PATCH 1/7] Add task to prepare releasing This task updated Changelog, version.rb, and Gemfile.lock. --- lib/tasks/release.rake | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/tasks/release.rake diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake new file mode 100644 index 0000000..76db3fd --- /dev/null +++ b/lib/tasks/release.rake @@ -0,0 +1,49 @@ +namespace :release do + desc "Add header of now version release to Changelog and bump up version" + task :prepare do + raise "Use this task in development only" unless Rails.env.development? + + # detect merged PR + now_version = FluentdUI::VERSION + pr_numbers = `git log v#{now_version}..master --oneline`.scan(/#[0-9]+/) + + if !$?.success? || pr_numbers.empty? + puts "Detecting PR failed. Please confirm if any PR were merged after the latest release." + exit(false) + end + + # Generate new version + /\.([0-9]+)\z/.match(now_version) + now_revision = $1 + new_version = now_version.gsub(/\.#{now_revision}\z/, ".#{now_revision.to_i + 1}") + + # Update Changelog + changelog_filename = Rails.root.join('Changelog') + changelog = File.read(changelog_filename) + + pr_descriptions = pr_numbers.map do |number| + "* [] #{number} https://github.com/fluent/fluentd-ui/pull/#{number.gsub('#', '')}" + end.join("\n") + + new_changelog = <<-HEADER +Release #{new_version} - #{Time.now.strftime("%Y/%m/%d")} +#{pr_descriptions} + +#{changelog.chomp} +HEADER + + File.open(changelog_filename, "w") {|f| f.write(new_changelog)} + + # Update version.rb + version_filename = Rails.root.join("lib", "fluentd-ui", "version.rb") + version_class = File.read(version_filename) + new_version_class = version_class.gsub(/VERSION = \"#{now_version}\"/, "VERSION = \"#{new_version}\"") + + File.open(version_filename, 'w') {|f| f.write(new_version_class)} + + # Update Gemfile.lock + system("bundle install") + + puts 'Changelog, verion and Gemfile.lock is updated. New version is #{new_version}.' + end +end From d6dbca2658ef14e9953c1a4c8795c97a832b45f2 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:46:31 +0900 Subject: [PATCH 2/7] Use double quote (") instead of single quote (') --- lib/tasks/release.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index 76db3fd..645b473 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -44,6 +44,6 @@ HEADER # Update Gemfile.lock system("bundle install") - puts 'Changelog, verion and Gemfile.lock is updated. New version is #{new_version}.' + puts "Changelog, verion and Gemfile.lock is updated. New version is #{new_version}." end end From ca4514ecfbe22473bc5af46e469d5f908918c726 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:47:34 +0900 Subject: [PATCH 3/7] Fix a typo (add missing 's') verion -> version --- lib/tasks/release.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index 645b473..418e5dc 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -44,6 +44,6 @@ HEADER # Update Gemfile.lock system("bundle install") - puts "Changelog, verion and Gemfile.lock is updated. New version is #{new_version}." + puts "Changelog, version and Gemfile.lock is updated. New version is #{new_version}." end end From 36fcbedffab73e8f37f21ec7ce1d8faf8ffdd133 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:48:05 +0900 Subject: [PATCH 4/7] Fix English sentence --- lib/tasks/release.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index 418e5dc..d84da25 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -44,6 +44,6 @@ HEADER # Update Gemfile.lock system("bundle install") - puts "Changelog, version and Gemfile.lock is updated. New version is #{new_version}." + puts "Changelog, version and Gemfile.lock were updated. New version is #{new_version}." end end From bd1af937297aa51c56e075c82a1ad308771e4a1b Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:49:23 +0900 Subject: [PATCH 5/7] Use old_* instead of now_* --- lib/tasks/release.rake | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index d84da25..69261e8 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -4,8 +4,8 @@ namespace :release do raise "Use this task in development only" unless Rails.env.development? # detect merged PR - now_version = FluentdUI::VERSION - pr_numbers = `git log v#{now_version}..master --oneline`.scan(/#[0-9]+/) + old_version = FluentdUI::VERSION + pr_numbers = `git log v#{old_version}..master --oneline`.scan(/#[0-9]+/) if !$?.success? || pr_numbers.empty? puts "Detecting PR failed. Please confirm if any PR were merged after the latest release." @@ -13,9 +13,9 @@ namespace :release do end # Generate new version - /\.([0-9]+)\z/.match(now_version) - now_revision = $1 - new_version = now_version.gsub(/\.#{now_revision}\z/, ".#{now_revision.to_i + 1}") + /\.([0-9]+)\z/.match(old_version) + old_revision = $1 + new_version = old_version.gsub(/\.#{old_revision}\z/, ".#{old_revision.to_i + 1}") # Update Changelog changelog_filename = Rails.root.join('Changelog') @@ -37,7 +37,7 @@ HEADER # Update version.rb version_filename = Rails.root.join("lib", "fluentd-ui", "version.rb") version_class = File.read(version_filename) - new_version_class = version_class.gsub(/VERSION = \"#{now_version}\"/, "VERSION = \"#{new_version}\"") + new_version_class = version_class.gsub(/VERSION = \"#{old_version}\"/, "VERSION = \"#{new_version}\"") File.open(version_filename, 'w') {|f| f.write(new_version_class)} From ca01dfec778d82fc9a95ac8dc4397f40b81f9435 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 17:54:09 +0900 Subject: [PATCH 6/7] `git fetch` before preparing --- lib/tasks/release.rake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index 69261e8..255d3e4 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -3,6 +3,9 @@ namespace :release do task :prepare do raise "Use this task in development only" unless Rails.env.development? + # Fetch remote + system("git fetch origin") + # detect merged PR old_version = FluentdUI::VERSION pr_numbers = `git log v#{old_version}..master --oneline`.scan(/#[0-9]+/) From e46de6e7c027c30832950c0199e92da47b8434b5 Mon Sep 17 00:00:00 2001 From: yoshihara Date: Fri, 10 Apr 2015 18:14:34 +0900 Subject: [PATCH 7/7] Specifiy master branch explicitly --- lib/tasks/release.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/release.rake b/lib/tasks/release.rake index 255d3e4..007f6a4 100644 --- a/lib/tasks/release.rake +++ b/lib/tasks/release.rake @@ -8,7 +8,7 @@ namespace :release do # detect merged PR old_version = FluentdUI::VERSION - pr_numbers = `git log v#{old_version}..master --oneline`.scan(/#[0-9]+/) + pr_numbers = `git log v#{old_version}..origin/master --oneline`.scan(/#[0-9]+/) if !$?.success? || pr_numbers.empty? puts "Detecting PR failed. Please confirm if any PR were merged after the latest release."