From fbf1d682221a0c1029f9a264c665845705431a70 Mon Sep 17 00:00:00 2001 From: Adrian Ho Date: Wed, 5 Feb 2025 14:09:27 +0800 Subject: [PATCH] formula_creator: depend on latest python Followup to #19173, which causes `brew create` to error out on the literal `python@x.y` dependency. Related to #19240. --- Library/Homebrew/formula_creator.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 1979134079..4c60c468c6 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -97,6 +97,14 @@ module Homebrew path end + sig { params(name: String).returns(String) } + def latest_versioned_formula(name) + name_prefix = "#{name}@" + Tap.fetch("homebrew/core").formula_names + .select { |f| f.start_with?(name_prefix) } + .max_by { |v| Gem::Version.new(v.sub(name_prefix, "")) } || "python" + end + sig { returns(String) } def template # FIXME: https://github.com/errata-ai/vale/issues/818 @@ -138,7 +146,7 @@ module Homebrew <% elsif @mode == :perl %> uses_from_macos "perl" <% elsif @mode == :python %> - depends_on "python@x.y" + depends_on "#{latest_versioned_formula("python")}" <% elsif @mode == :ruby %> uses_from_macos "ruby" <% elsif @mode == :rust %>