diff --git a/Library/Homebrew/dev-cmd/pr-automerge.rb b/Library/Homebrew/dev-cmd/pr-automerge.rb index ce5c442c81..2fe57609b9 100644 --- a/Library/Homebrew/dev-cmd/pr-automerge.rb +++ b/Library/Homebrew/dev-cmd/pr-automerge.rb @@ -28,9 +28,13 @@ module Homebrew description: "Pull requests do not require approval to be merged." switch "--publish", description: "Run `brew pr-publish` on matching pull requests." + switch "--autosquash", + description: "Instruct `brew pr-publish` to automatically reformat and reword commits " \ + "in the pull request to the preferred format." switch "--no-autosquash", description: "Instruct `brew pr-publish` to skip automatically reformatting and rewording commits " \ - "in the pull request to the preferred format." + "in the pull request to the preferred format.", + replacement: "`--autosquash` to opt in" switch "--ignore-failures", description: "Include pull requests that have failing status checks." @@ -41,6 +45,8 @@ module Homebrew def pr_automerge args = pr_automerge_args.parse + odeprecated "`brew pr-publish --no-autosquash`" if args.no_autosquash? + without_labels = args.without_labels || [ "do not merge", "new formula", @@ -71,7 +77,7 @@ module Homebrew publish_args = ["pr-publish"] publish_args << "--tap=#{tap}" if tap publish_args << "--workflow=#{args.workflow}" if args.workflow - publish_args << "--no-autosquash" if args.no_autosquash? + publish_args << "--autosquash" if args.autosquash? if args.publish? safe_system HOMEBREW_BREW_FILE, *publish_args, *pr_urls else diff --git a/Library/Homebrew/dev-cmd/pr-publish.rb b/Library/Homebrew/dev-cmd/pr-publish.rb index 67731af12b..d583e95189 100644 --- a/Library/Homebrew/dev-cmd/pr-publish.rb +++ b/Library/Homebrew/dev-cmd/pr-publish.rb @@ -16,19 +16,24 @@ module Homebrew Publish bottles for a pull request with GitHub Actions. Requires write access to the repository. EOS + switch "--autosquash", + description: "If supported on the target tap, automatically reformat and reword commits " \ + "to our preferred format." switch "--no-autosquash", description: "Skip automatically reformatting and rewording commits in the pull request " \ - "to the preferred format, even if supported on the target tap." + "to the preferred format, even if supported on the target tap.", + replacement: "`--autosquash` to opt in" flag "--branch=", description: "Branch to publish to (default: `master`)." flag "--message=", + depends_on: "--autosquash", description: "Message to include when autosquashing revision bumps, deletions, and rebuilds." flag "--tap=", description: "Target tap repository (default: `homebrew/core`)." flag "--workflow=", description: "Target workflow filename (default: `publish-commit-bottles.yml`)." - conflicts "--no-autosquash", "--message" + conflicts "--clean", "--autosquash" named_args :pull_request, min: 1 end @@ -37,12 +42,14 @@ module Homebrew def pr_publish args = pr_publish_args.parse + odeprecated "`brew pr-publish --no-autosquash`" if args.no_autosquash? + tap = Tap.fetch(args.tap || CoreTap.instance.name) workflow = args.workflow || "publish-commit-bottles.yml" ref = args.branch || "master" extra_args = [] - extra_args << "--no-autosquash" if args.no_autosquash? + extra_args << "--autosquash" if args.autosquash? extra_args << "--message='#{args.message}'" if args.message.presence dispatch_args = extra_args.join " " diff --git a/Library/Homebrew/dev-cmd/pr-pull.rb b/Library/Homebrew/dev-cmd/pr-pull.rb index 5bf66cbabb..4810633397 100644 --- a/Library/Homebrew/dev-cmd/pr-pull.rb +++ b/Library/Homebrew/dev-cmd/pr-pull.rb @@ -27,14 +27,17 @@ module Homebrew switch "-n", "--dry-run", description: "Print what would be done rather than doing it." switch "--clean", - depends_on: "--no-autosquash", description: "Do not amend the commits from pull requests." switch "--keep-old", description: "If the formula specifies a rebuild version, " \ "attempt to preserve its value in the generated DSL." + switch "--autosquash", + description: "Automatically reformat and reword commits in the pull request to our " \ + "preferred format." switch "--no-autosquash", description: "Skip automatically reformatting and rewording commits in the pull request to our " \ - "preferred format." + "preferred format.", + replacement: "`--autosquash` to opt in" switch "--branch-okay", description: "Do not warn if pulling to a branch besides the repository default (useful for testing)." switch "--resolve", @@ -46,6 +49,7 @@ module Homebrew flag "--committer=", description: "Specify a committer name and email in `git`'s standard author format." flag "--message=", + depends_on: "--autosquash", description: "Message to include when autosquashing revision bumps, deletions, and rebuilds." flag "--artifact=", description: "Download artifacts with the specified name (default: `bottles`)." @@ -62,7 +66,7 @@ module Homebrew comma_array "--ignore-missing-artifacts", description: "Comma-separated list of workflows which can be ignored if they have not been run." - conflicts "--no-autosquash", "--message" + conflicts "--clean", "--autosquash" named_args :pull_request, min: 1 end @@ -424,6 +428,8 @@ module Homebrew def self.pr_pull args = pr_pull_args.parse + odeprecated "`brew pr-pull --no-autosquash`" if args.no_autosquash? + # Needed when extracting the CI artifact. ensure_executable!("unzip", reason: "extracting CI artifacts") @@ -465,7 +471,7 @@ module Homebrew unless args.no_commit? cherry_pick_pr!(user, repo, pr, path: tap.path, args: args) unless args.no_cherry_pick? - if !args.no_autosquash? && !args.dry_run? + if args.autosquash? && !args.dry_run? autosquash!(original_commit, tap: tap, verbose: args.verbose?, resolve: args.resolve?, reason: args.message) end