From 089680c76fd9e3bc10486fa22f4d18979dfcb131 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Sun, 16 Mar 2025 21:25:44 +0000 Subject: [PATCH] rubocops/cask/stanza_order: Ensure `arch` and `os` are adjacent - Because Patrick wanted this to be codified. --- Library/Homebrew/rubocops/cask/constants/stanza.rb | 2 +- Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb | 1 + Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb | 3 +++ Library/Homebrew/test/support/fixtures/cask/Casks/sha256-os.rb | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/rubocops/cask/constants/stanza.rb b/Library/Homebrew/rubocops/cask/constants/stanza.rb index f55e9c61fb..7a1f5f803a 100644 --- a/Library/Homebrew/rubocops/cask/constants/stanza.rb +++ b/Library/Homebrew/rubocops/cask/constants/stanza.rb @@ -20,7 +20,7 @@ module RuboCop STANZA_GROUPS = T.let( [ - [:arch, :on_arch_conditional], + [:arch, :on_arch_conditional, :os], [:version, :sha256], ON_SYSTEM_METHODS_STANZA_ORDER, [:language], diff --git a/Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb b/Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb index 9cf48bb240..3afc606736 100644 --- a/Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb +++ b/Library/Homebrew/test/rubocops/cask/stanza_grouping_spec.rb @@ -25,6 +25,7 @@ RSpec.describe RuboCop::Cop::Cask::StanzaGrouping, :config do cask 'foo' do arch arm: "arm64", intel: "x86_64" folder = on_arch_conditional arm: "darwin-arm64", intel: "darwin" + os macos: ">= :big_sur" version :latest sha256 :no_check diff --git a/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb b/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb index da7ce77168..c1a84a458b 100644 --- a/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb +++ b/Library/Homebrew/test/rubocops/cask/stanza_order_spec.rb @@ -44,6 +44,8 @@ RSpec.describe RuboCop::Cop::Cask::StanzaOrder, :config do it "reports an offense when an `arch` stanza is out of order" do expect_offense <<~CASK cask 'foo' do + os macos: ">= :big_sur" + ^^^^^^^^^^^^^^^^^^^^^^^ `os` stanza out of order version :latest ^^^^^^^^^^^^^^^ `version` stanza out of order sha256 :no_check @@ -56,6 +58,7 @@ RSpec.describe RuboCop::Cop::Cask::StanzaOrder, :config do expect_correction <<~CASK cask 'foo' do arch arm: "arm", intel: "x86_64" + os macos: ">= :big_sur" version :latest sha256 :no_check end diff --git a/Library/Homebrew/test/support/fixtures/cask/Casks/sha256-os.rb b/Library/Homebrew/test/support/fixtures/cask/Casks/sha256-os.rb index 92109a36f9..213330f17b 100644 --- a/Library/Homebrew/test/support/fixtures/cask/Casks/sha256-os.rb +++ b/Library/Homebrew/test/support/fixtures/cask/Casks/sha256-os.rb @@ -1,6 +1,6 @@ cask "sha256-os" do - os macos: "darwin", linux: "linux" arch arm: "arm", intel: "intel" + os macos: "darwin", linux: "linux" version "1.2.3" sha256 arm: "67cdb8a02803ef37fdbf7e0be205863172e41a561ca446cd84f0d7ab35a99d94",