diff options
Diffstat (limited to 'task/release.rake')
-rw-r--r-- | task/release.rake | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/task/release.rake b/task/release.rake index f5573eac5e..65283f0750 100644 --- a/task/release.rake +++ b/task/release.rake @@ -143,22 +143,11 @@ namespace :release do } end - desc "Make a patch release with the PRs from master in the patch milestone" - task :patch, :version do |_t, args| - version = args.version - - version ||= begin - version = bundler_spec.version - segments = version.segments - if segments.last.is_a?(String) - segments << "1" - else - segments[-1] += 1 - end - segments.join(".") - end + desc "Prepare a patch release with the PRs from master in the patch milestone" + task :prepare_patch do + version = bundler_spec.version.to_s - confirm "You are about to release #{version}, currently #{bundler_spec.version}" + puts "Cherry-picking PRs milestoned for #{version} into the stable branch..." milestones = gh_api_request(:path => "repos/bundler/bundler/milestones?state=open") unless patch_milestone = milestones.find {|m| m["title"] == version } @@ -172,17 +161,8 @@ namespace :release do end prs.compact! - bundler_spec.version = version - branch = version.split(".", 3)[0, 2].push("stable").join("-") - sh("git", "checkout", branch) - - version_file = "lib/bundler/version.rb" - version_contents = File.read(version_file) - unless version_contents.sub!(/^(\s*VERSION = )"#{Gem::Version::VERSION_PATTERN}"/, "\\1#{version.to_s.dump}") - abort "failed to update #{version_file}, is it in the expected format?" - end - File.open(version_file, "w") {|f| f.write(version_contents) } + sh("git", "checkout", "-b", "release/#{version}", branch) commits = `git log --oneline origin/master --`.split("\n").map {|l| l.split(/\s/, 2) }.reverse commits.select! {|_sha, message| message =~ /(Auto merge of|Merge pull request|Merge) ##{Regexp.union(*prs)}/ } @@ -193,19 +173,6 @@ namespace :release do warn "Opening a new shell to fix the cherry-pick errors" abort unless system("zsh") end - - prs.each do |pr| - system("open", "https://github.com/bundler/bundler/pull/#{pr}") - confirm "Add to the changelog" - end - - confirm "Update changelog" - sh("git", "commit", "-am", "Version #{version} with changelog") - sh("rake", "release") - sh("git", "checkout", "master") - sh("git", "pull") - sh("git", "merge", "v#{version}", "--no-edit") - sh("git", "push") end desc "Open all PRs that have not been included in a stable release" |