From 2d9e7922b967f0928ac3e0040cbae8889d5fad31 Mon Sep 17 00:00:00 2001 From: Christian Moritz Date: Sun, 14 Jul 2019 02:02:31 +0200 Subject: [PATCH 1/2] bump-formula-pr: rename versioned alias if necessary --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 28 +++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index a0cb5a79fc..6db651ec84 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -273,6 +273,12 @@ module Homebrew EOS end + alias_rename = alias_update_pair(formula, new_formula_version) + if alias_rename.present? + ohai "renaming alias #{alias_rename.first} to #{alias_rename.last}" + alias_rename.map! { |a| formula.tap.alias_dir/a } + end + if args.dry_run? if args.no_audit? ohai "Skipping `brew audit`" @@ -282,6 +288,7 @@ module Homebrew ohai "brew audit #{formula.path.basename}" end else + FileUtils.mv alias_rename.first, alias_rename.last if alias_rename.present? failed_audit = false if args.no_audit? ohai "Skipping `brew audit`" @@ -294,6 +301,7 @@ module Homebrew end if failed_audit formula.path.atomic_write(backup_file) + FileUtils.mv alias_rename.last, alias_rename.first if alias_rename.present? odie "brew audit failed!" end end @@ -302,13 +310,16 @@ module Homebrew branch = "#{formula.name}-#{new_formula_version}" git_dir = Utils.popen_read("git rev-parse --git-dir").chomp shallow = !git_dir.empty? && File.exist?("#{git_dir}/shallow") + changed_files = [formula.path] + changed_files += alias_rename if alias_rename.present? if args.dry_run? ohai "try to fork repository with GitHub API" ohai "git fetch --unshallow origin" if shallow + ohai "git add #{alias_rename.first} #{alias_rename.last}" if alias_rename.present? ohai "git checkout --no-track -b #{branch} origin/master" ohai "git commit --no-edit --verbose --message='#{formula.name} " \ - "#{new_formula_version}#{devel_message}' -- #{formula.path}" + "#{new_formula_version}#{devel_message}' -- #{changed_files.join(" ")}" ohai "git push --set-upstream $HUB_REMOTE #{branch}:#{branch}" ohai "git checkout --quiet -" ohai "create pull request with GitHub API" @@ -338,10 +349,11 @@ module Homebrew end safe_system "git", "fetch", "--unshallow", "origin" if shallow + safe_system "git", "add", *alias_rename if alias_rename.present? safe_system "git", "checkout", "--no-track", "-b", branch, "origin/master" safe_system "git", "commit", "--no-edit", "--verbose", "--message=#{formula.name} #{new_formula_version}#{devel_message}", - "--", formula.path + "--", *changed_files safe_system "git", "push", "--set-upstream", remote_url, "#{branch}:#{branch}" safe_system "git", "checkout", "--quiet", "-" pr_message = <<~EOS @@ -440,4 +452,16 @@ module Homebrew EOS end end + + def alias_update_pair(formula, new_formula_version) + versioned_alias = formula.aliases.grep(/^.*@\d+(\.\d+)?$/).first + return if versioned_alias.nil? + + name, old_alias_version = versioned_alias.split("@") + new_alias_regex = (old_alias_version.split(".").length == 1) ? /^\d+/ : /^\d+\.\d+/ + new_alias_version, = *new_formula_version.to_s.match(new_alias_regex) + return if Version.create(new_alias_version) <= Version.create(old_alias_version) + + [versioned_alias, "#{name}@#{new_alias_version}"] + end end From 170c6e0c704aa264ff3ad2cf8249c8732deea33f Mon Sep 17 00:00:00 2001 From: Christian Moritz Date: Tue, 16 Jul 2019 23:05:36 +0200 Subject: [PATCH 2/2] bump-formula-pr: refactor audit to own method to reduce complexity --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 56 +++++++++++---------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 6db651ec84..491d439b76 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -279,32 +279,7 @@ module Homebrew alias_rename.map! { |a| formula.tap.alias_dir/a } end - if args.dry_run? - if args.no_audit? - ohai "Skipping `brew audit`" - elsif args.strict? - ohai "brew audit --strict #{formula.path.basename}" - else - ohai "brew audit #{formula.path.basename}" - end - else - FileUtils.mv alias_rename.first, alias_rename.last if alias_rename.present? - failed_audit = false - if args.no_audit? - ohai "Skipping `brew audit`" - elsif args.strict? - system HOMEBREW_BREW_FILE, "audit", "--strict", formula.path - failed_audit = !$CHILD_STATUS.success? - else - system HOMEBREW_BREW_FILE, "audit", formula.path - failed_audit = !$CHILD_STATUS.success? - end - if failed_audit - formula.path.atomic_write(backup_file) - FileUtils.mv alias_rename.last, alias_rename.first if alias_rename.present? - odie "brew audit failed!" - end - end + run_audit(formula, alias_rename, backup_file) formula.path.parent.cd do branch = "#{formula.name}-#{new_formula_version}" @@ -464,4 +439,33 @@ module Homebrew [versioned_alias, "#{name}@#{new_alias_version}"] end + + def run_audit(formula, alias_rename, backup_file) + if args.dry_run? + if args.no_audit? + ohai "Skipping `brew audit`" + elsif args.strict? + ohai "brew audit --strict #{formula.path.basename}" + else + ohai "brew audit #{formula.path.basename}" + end + return + end + FileUtils.mv alias_rename.first, alias_rename.last if alias_rename.present? + failed_audit = false + if args.no_audit? + ohai "Skipping `brew audit`" + elsif args.strict? + system HOMEBREW_BREW_FILE, "audit", "--strict", formula.path + failed_audit = !$CHILD_STATUS.success? + else + system HOMEBREW_BREW_FILE, "audit", formula.path + failed_audit = !$CHILD_STATUS.success? + end + return if failed_audit + + formula.path.atomic_write(backup_file) + FileUtils.mv alias_rename.last, alias_rename.first if alias_rename.present? + odie "brew audit failed!" + end end