diff --git a/Library/Homebrew/cask/cask.rb b/Library/Homebrew/cask/cask.rb index e3d6d51041..8c0870c4ec 100644 --- a/Library/Homebrew/cask/cask.rb +++ b/Library/Homebrew/cask/cask.rb @@ -87,7 +87,7 @@ module Cask sig { returns(T::Array[String]) } def old_tokens @old_tokens ||= if (tap = self.tap) - Tap.reverse_tap_migrations_renames(tap, token) + + Tap.tap_migration_oldnames(tap, token) + tap.cask_reverse_renames.fetch(token, []) else [] diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index d9394808b1..285f05a7c6 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -552,7 +552,7 @@ class Formula sig { returns(T::Array[String]) } def oldnames @oldnames ||= if (tap = self.tap) - Tap.reverse_tap_migrations_renames(tap, name) + + Tap.tap_migration_oldnames(tap, name) + tap.formula_reverse_renames.fetch(name, []) else [] diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 27a93283aa..e38060f3b8 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -867,6 +867,9 @@ class Tap sig { returns(T::Hash[String, T::Array[String]]) } def reverse_tap_migrations_renames @reverse_tap_migrations_renames ||= tap_migrations.each_with_object({}) do |(old_name, new_name), hash| + # Only include renames: + # + `homebrew/cask/water-buffalo` + # - `homebrew/cask` next if new_name.count("/") != 2 hash[new_name] ||= [] @@ -874,9 +877,10 @@ class Tap end end - sig { params(new_tap: Tap, name_or_token: String).returns(T::Array[String]) } - def self.reverse_tap_migrations_renames(new_tap, name_or_token) - key = "#{new_tap}/#{name_or_token}" + # The old names a formula or cask had before getting migrated to the current tap. + sig { params(current_tap: Tap, name_or_token: String).returns(T::Array[String]) } + def self.tap_migration_oldnames(current_tap, name_or_token) + key = "#{current_tap}/#{name_or_token}" Tap.each_with_object([]) do |tap, array| next unless (renames = tap.reverse_tap_migrations_renames[key]) diff --git a/Library/Homebrew/test/api/internal_tap_json/formula_spec.rb b/Library/Homebrew/test/api/internal_tap_json/formula_spec.rb index fe5ebf47a9..1426677483 100644 --- a/Library/Homebrew/test/api/internal_tap_json/formula_spec.rb +++ b/Library/Homebrew/test/api/internal_tap_json/formula_spec.rb @@ -33,7 +33,7 @@ RSpec.describe "Internal Tap JSON -- Formula" do .with("internal/v3/homebrew-core.jws.json") .and_return([JSON.parse(internal_tap_json), false]) - # `Tap.reverse_tap_migrations_renames` looks for renames in every + # `Tap.tap_migration_oldnames` looks for renames in every # tap so `CoreCaskTap.tap_migrations` gets called and tries to # fetch stuff from the API. This just avoids errors. allow(Homebrew::API).to receive(:fetch_json_api_file) diff --git a/Library/Homebrew/test/tap_spec.rb b/Library/Homebrew/test/tap_spec.rb index bd43008b9c..0c2d110b3d 100644 --- a/Library/Homebrew/test/tap_spec.rb +++ b/Library/Homebrew/test/tap_spec.rb @@ -586,7 +586,7 @@ RSpec.describe Tap do end end - describe ".reverse_tap_migration_renames" do + describe ".tap_migration_oldnames" do let(:cask_tap) { CoreCaskTap.instance } let(:core_tap) { CoreTap.instance } @@ -597,7 +597,7 @@ RSpec.describe Tap do [cask_tap, "schism-tracker", %w[schismtracker]], [cask_tap, "google-cloud-sdk", %w[app-engine-go-32 app-engine-go-64]], ].each do |tap, name, result| - expect(described_class.reverse_tap_migrations_renames(tap, name)).to eq(result) + expect(described_class.tap_migration_oldnames(tap, name)).to eq(result) end end end