From d3aac3fa5f0f3cd9326f243df2b5bf3ba5f2595a Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Mon, 11 Aug 2025 00:31:00 -0400 Subject: [PATCH] Include aliases, renames, and tap migrations in minimal APIs --- Library/Homebrew/dev-cmd/generate-cask-api.rb | 19 ++++++++++++++--- .../Homebrew/dev-cmd/generate-formula-api.rb | 21 ++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/dev-cmd/generate-cask-api.rb b/Library/Homebrew/dev-cmd/generate-cask-api.rb index 70eb0111ff..508e558c8a 100644 --- a/Library/Homebrew/dev-cmd/generate-cask-api.rb +++ b/Library/Homebrew/dev-cmd/generate-cask-api.rb @@ -71,11 +71,24 @@ module Homebrew File.write("_data/cask_canonical.json", "#{canonical_json}\n") unless args.dry_run? OnSystem::VALID_OS_ARCH_TAGS.each do |bottle_tag| - variation_casks = all_casks.map do |_, cask| - Homebrew::API.merge_variations(cask, bottle_tag:) + renames = {} + variation_casks = all_casks.map do |token, cask| + cask = Homebrew::API.merge_variations(cask, bottle_tag:) + + cask["old_tokens"]&.each do |old_token| + renames[old_token] = token + end + + cask end - File.write("api/internal/cask.#{bottle_tag}.json", JSON.generate(variation_casks)) unless args.dry_run? + json_contents = { + casks: variation_casks, + renames: renames, + tap_migrations: CoreCaskTap.instance.tap_migrations, + } + + File.write("api/internal/cask.#{bottle_tag}.json", JSON.generate(json_contents)) unless args.dry_run? end end end diff --git a/Library/Homebrew/dev-cmd/generate-formula-api.rb b/Library/Homebrew/dev-cmd/generate-formula-api.rb index 1dd5f0603d..8a52ef5afa 100644 --- a/Library/Homebrew/dev-cmd/generate-formula-api.rb +++ b/Library/Homebrew/dev-cmd/generate-formula-api.rb @@ -69,9 +69,19 @@ module Homebrew File.write("_data/formula_canonical.json", "#{canonical_json}\n") unless args.dry_run? OnSystem::VALID_OS_ARCH_TAGS.each do |bottle_tag| + aliases = {} + renames = {} variation_formulae = all_formulae.to_h do |name, formula| formula = Homebrew::API.merge_variations(formula, bottle_tag:) + formula["aliases"]&.each do |alias_name| + aliases[alias_name] = name + end + + formula["oldnames"]&.each do |oldname| + renames[oldname] = name + end + version = Version.new(formula.dig("versions", "stable")) pkg_version = PkgVersion.new(version, formula["revision"]) rebuild = formula.dig("bottle", "stable", "rebuild") || 0 @@ -87,9 +97,14 @@ module Homebrew [name, [pkg_version.to_s, rebuild, sha256]] end - unless args.dry_run? - File.write("api/internal/formula.#{bottle_tag}.json", JSON.generate(variation_formulae)) - end + json_contents = { + formulae: variation_formulae, + aliases: aliases, + renames: renames, + tap_migrations: CoreTap.instance.tap_migrations, + } + + File.write("api/internal/formula.#{bottle_tag}.json", JSON.generate(json_contents)) unless args.dry_run? end end end