Merge pull request #24127 from Homebrew/bump-failure-fix

bump: use refresh_for_tag for per-OS detection
This commit is contained in:
Bevan Kay authored and GitHub committed 2026-09-29 23:39:31 +00:00
commit 055b1cdb2d
2 files changed
+34 -4

No files matched your search

+2 -2
View File
@@ -267,11 +267,11 @@ module Homebrew
end
systems = { macos:, linux: :linux }
detected_versions = {}
loaded_cask = Cask::CaskLoader.load(sourcefile_path)
detected_system_options = BumpVersionParser::VERSION_PLATFORMS.filter_map do |version_type, (system, arch)|
os = systems.fetch(system)
tag = Utils::Bottles::Tag.new(system: os, arch:)
SimulateSystem.with(os:, arch:) do
loaded_cask = Cask::CaskLoader.load(sourcefile_path)
loaded_cask.refresh_for_tag(tag) do
next if tag.macos? && !loaded_cask.supports_macos?
next if tag.linux? && !loaded_cask.supports_linux?
+32 -2
View File
@@ -525,6 +525,7 @@ RSpec.describe Homebrew::DevCmd::Bump do
RUBY
end
let(:newest_macos) { MacOSVersion.new(HOMEBREW_MACOS_NEWEST_SUPPORTED).to_sym }
let(:c_per_os) do
path = mktmpdir/"per_os_cask.rb"
path.write <<~RUBY
@@ -551,8 +552,26 @@ RSpec.describe Homebrew::DevCmd::Bump do
name "Foo"
end
RUBY
macos = MacOSVersion.new(HOMEBREW_MACOS_NEWEST_SUPPORTED).to_sym
Homebrew::SimulateSystem.with(os: macos, arch: :arm) { Cask::CaskLoader.load(path) }
Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) { Cask::CaskLoader.load(path) }
end
let(:c_macos_versions) do
path = mktmpdir/"macos_versions_cask.rb"
path.write <<~RUBY
cask "macos_versions_cask" do
on_monterey :or_newer do
version "1.2.3"
sha256 :no_check
end
url "https://brew.sh/foo-\#{version.dots_to_underscores}.zip"
name "Foo"
depends_on :macos
app "Foo.app"
end
RUBY
Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) { Cask::CaskLoader.load(path) }
end
it "resolves existing per-OS versions for each supported platform" do
@@ -614,6 +633,17 @@ RSpec.describe Homebrew::DevCmd::Bump do
})
end
it "resolves versions by architecture when a cask cannot be evaluated on Linux" do
allow(bump).to receive(:livecheck_result).and_return([Version.new("1.2.4"), nil])
version_info = Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) do
bump.retrieve_versions_by_arch(
formula_or_cask: c_macos_versions, repositories: [], name: "macos-versions-cask",
)
end
expect(version_info.new_version).to eq(Homebrew::BumpVersionParser.new(general: Version.new("1.2.4")))
end
it "simulates only arm and consolidates to a general version when `depends_on arch:` restricts to arm-only" do
allow(c_arm_only).to receive(:sourcefile_path).and_return(Pathname("arm_only_cask.rb"))
allow(Cask::CaskLoader).to receive(:load).and_return(c_arm_only)