From d73b0079e926f4c81b646cf79124a0068dddfd5a Mon Sep 17 00:00:00 2001 From: Justin Rackliffe Date: Wed, 23 Apr 2025 10:34:45 -0400 Subject: [PATCH 01/66] Resolve the corner case of anonymous OCI registry access (#16669). --- Library/Homebrew/download_strategy.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 82cb409a5b..a593835c2e 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -705,7 +705,10 @@ class CurlGitHubPackagesDownloadStrategy < CurlDownloadStrategy meta[:headers] ||= [] # GitHub Packages authorization header. # HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh - meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" + # If using a private GHCR mirror with no Authentication set than do not add the header. In all other cases add it. + if not (Homebrew::EnvConfig.artifact_domain.presence && !Homebrew::EnvConfig.docker_registry_basic_auth_token.presence && !Homebrew::EnvConfig.docker_registry_token.presence) + meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" + end super end From 3761d7078547e0fd51542c66cb45b4f17cafbd93 Mon Sep 17 00:00:00 2001 From: Justin Rackliffe Date: Fri, 2 May 2025 11:33:48 -0400 Subject: [PATCH 02/66] Revised conditional logic to match CONTRIBUTING.md recommendations on adhering to brew style findings. --- Library/Homebrew/download_strategy.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index a593835c2e..19e03072a8 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -706,9 +706,11 @@ class CurlGitHubPackagesDownloadStrategy < CurlDownloadStrategy # GitHub Packages authorization header. # HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh # If using a private GHCR mirror with no Authentication set than do not add the header. In all other cases add it. - if not (Homebrew::EnvConfig.artifact_domain.presence && !Homebrew::EnvConfig.docker_registry_basic_auth_token.presence && !Homebrew::EnvConfig.docker_registry_token.presence) - meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" - end + if !Homebrew::EnvConfig.artifact_domain.presence || + Homebrew::EnvConfig.docker_registry_basic_auth_token.presence || + Homebrew::EnvConfig.docker_registry_token.presence + meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" + end super end From efa2786732cdf4a0662029fba5ec6eaba521ffc5 Mon Sep 17 00:00:00 2001 From: Justin Rackliffe Date: Fri, 2 May 2025 15:00:22 -0400 Subject: [PATCH 03/66] Resolving CI style errors with whitespace that are not flagged using stle locally --- Library/Homebrew/download_strategy.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 19e03072a8..75d3a57c7c 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -707,10 +707,10 @@ class CurlGitHubPackagesDownloadStrategy < CurlDownloadStrategy # HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh # If using a private GHCR mirror with no Authentication set than do not add the header. In all other cases add it. if !Homebrew::EnvConfig.artifact_domain.presence || - Homebrew::EnvConfig.docker_registry_basic_auth_token.presence || - Homebrew::EnvConfig.docker_registry_token.presence - meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" - end + Homebrew::EnvConfig.docker_registry_basic_auth_token.presence || + Homebrew::EnvConfig.docker_registry_token.presence + meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}" + end super end From 4373aad1532a495402a7a3afb70c356b7aa399ba Mon Sep 17 00:00:00 2001 From: botantony Date: Wed, 7 May 2025 14:07:36 +0200 Subject: [PATCH 04/66] cask/dsl: set `no_autobump!` if `:extract_plist` livecheck strategy is used Signed-off-by: botantony --- Library/Homebrew/autobump_constants.rb | 1 + Library/Homebrew/cask/dsl.rb | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/Library/Homebrew/autobump_constants.rb b/Library/Homebrew/autobump_constants.rb index 15f6ed8ea5..d39f513dc4 100644 --- a/Library/Homebrew/autobump_constants.rb +++ b/Library/Homebrew/autobump_constants.rb @@ -5,4 +5,5 @@ NO_AUTOBUMP_REASONS_LIST = T.let({ incompatible_version_format: "incompatible version format", bumped_by_upstream: "bumped by upstream", + extract_plist: "livecheck uses `:extract_plist` strategy", }.freeze, T::Hash[Symbol, String]) diff --git a/Library/Homebrew/cask/dsl.rb b/Library/Homebrew/cask/dsl.rb index 5363e58237..d05d7a0058 100644 --- a/Library/Homebrew/cask/dsl.rb +++ b/Library/Homebrew/cask/dsl.rb @@ -161,6 +161,8 @@ module Cask @token = T.let(cask.token, String) @url = T.let(nil, T.nilable(URL)) @version = T.let(nil, T.nilable(DSL::Version)) + + set_no_autobump! end sig { returns(T::Boolean) } @@ -175,6 +177,12 @@ module Cask sig { returns(T::Boolean) } def livecheck_defined? = @livecheck_defined + def set_no_autobump! + return if @livecheck.strategy != :extract_plist + + no_autobump! because: :extract_plist + end + sig { returns(T::Boolean) } def on_system_blocks_exist? = @on_system_blocks_exist From 6cea5ef4f010fb726c99d56c95e9939205945733 Mon Sep 17 00:00:00 2001 From: botantony Date: Wed, 7 May 2025 16:02:35 +0200 Subject: [PATCH 05/66] cask/dsl: exclude from autobump if `version` is `:latest` Signed-off-by: botantony --- Library/Homebrew/autobump_constants.rb | 1 + Library/Homebrew/cask/dsl.rb | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Library/Homebrew/autobump_constants.rb b/Library/Homebrew/autobump_constants.rb index d39f513dc4..0803803fe6 100644 --- a/Library/Homebrew/autobump_constants.rb +++ b/Library/Homebrew/autobump_constants.rb @@ -6,4 +6,5 @@ NO_AUTOBUMP_REASONS_LIST = T.let({ incompatible_version_format: "incompatible version format", bumped_by_upstream: "bumped by upstream", extract_plist: "livecheck uses `:extract_plist` strategy", + latest_version: "`version` is set to `:latest`", }.freeze, T::Hash[Symbol, String]) diff --git a/Library/Homebrew/cask/dsl.rb b/Library/Homebrew/cask/dsl.rb index d05d7a0058..2387eabb30 100644 --- a/Library/Homebrew/cask/dsl.rb +++ b/Library/Homebrew/cask/dsl.rb @@ -177,6 +177,7 @@ module Cask sig { returns(T::Boolean) } def livecheck_defined? = @livecheck_defined + sig { void } def set_no_autobump! return if @livecheck.strategy != :extract_plist @@ -359,6 +360,8 @@ module Cask raise CaskInvalidError.new(cask, "invalid 'version' value: #{arg.inspect}") end + no_autobump! because: :latest_version if arg == :latest + DSL::Version.new(arg) end end From ca911fb44673db5851d8bbc18cbac5a3bfdf6b84 Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Wed, 14 May 2025 11:56:31 +0200 Subject: [PATCH 06/66] feat: allow env for write_jar_script --- Library/Homebrew/extend/pathname.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 91337f81d1..8dee212499 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -423,15 +423,18 @@ class Pathname script_name: T.any(String, Pathname), java_opts: String, java_version: T.nilable(String), + java_version: Hash[Symbol, String], ).returns(Integer) } - def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil) + def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil, env: {}) + env.merge!(Language::Java.overridable_java_home_env(java_version)) + env_export = +"" + env.each { |key, value| env_export << "#{key}=\"#{value}\" " } mkpath - (self/script_name).write <<~EOS + (self/script_name).write <<~SH #!/bin/bash - export JAVA_HOME="#{Language::Java.overridable_java_home_env(java_version)[:JAVA_HOME]}" - exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@" - EOS + #{env_export}exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@" + SH end def install_metafiles(from = Pathname.pwd) From 95abc7360b6ad704bb30b1cd88a6cb58d8905fc1 Mon Sep 17 00:00:00 2001 From: Sam Ford <1584702+samford@users.noreply.github.com> Date: Mon, 19 May 2025 12:03:28 -0400 Subject: [PATCH 07/66] Bitbucket: update generated urls The `Bitbucket` strategy checks download or tag pages but the content is now fetched separately on page load, so the strategy is failing for all related formulae. This updates the generated strategy URLs to fetch the page content instead, which works as expected. --- Library/Homebrew/livecheck/strategy/bitbucket.rb | 4 ++-- Library/Homebrew/test/livecheck/strategy/bitbucket_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/livecheck/strategy/bitbucket.rb b/Library/Homebrew/livecheck/strategy/bitbucket.rb index 6624e07490..23ad1f7ec5 100644 --- a/Library/Homebrew/livecheck/strategy/bitbucket.rb +++ b/Library/Homebrew/livecheck/strategy/bitbucket.rb @@ -68,14 +68,14 @@ module Homebrew # `/get/` archives are Git tag snapshots, so we need to check that tab # instead of the main `/downloads/` page if match[:dl_type] == "get" - values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/?tab=tags" + values[:url] = "https://bitbucket.org/#{match[:path]}/downloads/?tab=tags&iframe=true&spa=0" # Example tag regexes: # * `/]*?class="name"[^>]*?>\s*v?(\d+(?:\.\d+)+)\s*?]*?class="name"[^>]*?>\s*abc-v?(\d+(?:\.\d+)+)\s*?]*?class="name"[^>]*?>\s*#{regex_prefix}v?(\d+(?:\.\d+)+)\s*?]*?class="name"[^>]*?>\s*v?(\d+(?:\.\d+)+)\s*? Date: Mon, 19 May 2025 18:19:44 +0000 Subject: [PATCH 08/66] build(deps): bump ruby/setup-ruby from 1.240.0 to 1.242.0 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.240.0 to 1.242.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](https://github.com/ruby/setup-ruby/compare/1a0ff446f5856bdfec298b61a09727c860d9d480...cb0fda56a307b8c78d38320cd40d9eb22a3bf04e) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.242.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- .github/workflows/rubydoc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3c12115161..fbf0b15eab 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -52,7 +52,7 @@ jobs: run: vale docs/ - name: Install Ruby - uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 + uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 with: bundler-cache: true working-directory: docs diff --git a/.github/workflows/rubydoc.yml b/.github/workflows/rubydoc.yml index 7c7cffe3a3..14cd028923 100644 --- a/.github/workflows/rubydoc.yml +++ b/.github/workflows/rubydoc.yml @@ -42,7 +42,7 @@ jobs: persist-credentials: false - name: Install Ruby - uses: ruby/setup-ruby@1a0ff446f5856bdfec298b61a09727c860d9d480 # v1.240.0 + uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 with: bundler-cache: true working-directory: rubydoc From b554839ed9d77f430d2ce315da6c04061a55fd13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 18:20:29 +0000 Subject: [PATCH 09/66] build(deps): bump the sorbet group in /Library/Homebrew with 4 updates Bumps the sorbet group in /Library/Homebrew with 4 updates: [sorbet-static-and-runtime](https://github.com/sorbet/sorbet), [sorbet-runtime](https://github.com/sorbet/sorbet), [sorbet](https://github.com/sorbet/sorbet) and [sorbet-static](https://github.com/sorbet/sorbet). Updates `sorbet-static-and-runtime` from 0.5.12109 to 0.5.12115 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet-runtime` from 0.5.12109 to 0.5.12115 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet` from 0.5.12109 to 0.5.12115 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet-static` from 0.5.12109 to 0.5.12115 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-static-and-runtime dependency-version: 0.5.12115 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet-runtime dependency-version: 0.5.12115 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet dependency-version: 0.5.12115 dependency-type: indirect update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet-static dependency-version: 0.5.12115 dependency-type: indirect update-type: version-update:semver-patch dependency-group: sorbet ... Signed-off-by: dependabot[bot] --- Library/Homebrew/Gemfile.lock | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index 82db95d091..8d501a8fe3 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -122,15 +122,15 @@ GEM simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) simpleidn (0.2.3) - sorbet (0.5.12109) - sorbet-static (= 0.5.12109) - sorbet-runtime (0.5.12109) - sorbet-static (0.5.12109-aarch64-linux) - sorbet-static (0.5.12109-universal-darwin) - sorbet-static (0.5.12109-x86_64-linux) - sorbet-static-and-runtime (0.5.12109) - sorbet (= 0.5.12109) - sorbet-runtime (= 0.5.12109) + sorbet (0.5.12115) + sorbet-static (= 0.5.12115) + sorbet-runtime (0.5.12115) + sorbet-static (0.5.12115-aarch64-linux) + sorbet-static (0.5.12115-universal-darwin) + sorbet-static (0.5.12115-x86_64-linux) + sorbet-static-and-runtime (0.5.12115) + sorbet (= 0.5.12115) + sorbet-runtime (= 0.5.12115) spoom (1.6.3) erubi (>= 1.10.0) prism (>= 0.28.0) @@ -162,7 +162,6 @@ GEM PLATFORMS aarch64-linux - arm-linux arm64-darwin x86_64-darwin x86_64-linux From a06388930387430885ee341fd6851e83d88dbb59 Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Mon, 19 May 2025 21:51:09 +0000 Subject: [PATCH 10/66] brew vendor-gems: commit updates. --- Library/Homebrew/Gemfile.lock | 1 + Library/Homebrew/vendor/bundle/bundler/setup.rb | 8 ++++---- .../lib/sorbet-runtime.rb | 0 .../lib/types/_types.rb | 0 .../lib/types/abstract_utils.rb | 0 .../lib/types/boolean.rb | 0 .../lib/types/compatibility_patches.rb | 0 .../lib/types/configuration.rb | 0 .../lib/types/enum.rb | 0 .../lib/types/generic.rb | 0 .../lib/types/helpers.rb | 0 .../lib/types/non_forcing_constants.rb | 0 .../lib/types/private/abstract/data.rb | 0 .../lib/types/private/abstract/declare.rb | 0 .../lib/types/private/abstract/hooks.rb | 0 .../lib/types/private/abstract/validate.rb | 0 .../lib/types/private/caller_utils.rb | 0 .../lib/types/private/casts.rb | 0 .../lib/types/private/class_utils.rb | 0 .../lib/types/private/decl_state.rb | 0 .../lib/types/private/final.rb | 0 .../lib/types/private/methods/_methods.rb | 0 .../lib/types/private/methods/call_validation.rb | 0 .../lib/types/private/methods/call_validation_2_6.rb | 0 .../lib/types/private/methods/call_validation_2_7.rb | 0 .../lib/types/private/methods/decl_builder.rb | 0 .../lib/types/private/methods/modes.rb | 0 .../lib/types/private/methods/signature.rb | 0 .../lib/types/private/methods/signature_validation.rb | 0 .../lib/types/private/mixins/mixins.rb | 0 .../lib/types/private/retry.rb | 0 .../lib/types/private/runtime_levels.rb | 0 .../lib/types/private/sealed.rb | 0 .../lib/types/private/types/not_typed.rb | 0 .../lib/types/private/types/simple_pair_union.rb | 0 .../lib/types/private/types/string_holder.rb | 0 .../lib/types/private/types/type_alias.rb | 0 .../lib/types/private/types/void.rb | 0 .../lib/types/props/_props.rb | 0 .../lib/types/props/constructor.rb | 0 .../lib/types/props/custom_type.rb | 0 .../lib/types/props/decorator.rb | 0 .../lib/types/props/errors.rb | 0 .../lib/types/props/generated_code_validation.rb | 0 .../lib/types/props/has_lazily_specialized_methods.rb | 0 .../lib/types/props/optional.rb | 0 .../lib/types/props/plugin.rb | 0 .../lib/types/props/pretty_printable.rb | 0 .../lib/types/props/private/apply_default.rb | 0 .../lib/types/props/private/deserializer_generator.rb | 0 .../lib/types/props/private/parser.rb | 0 .../lib/types/props/private/serde_transform.rb | 0 .../lib/types/props/private/serializer_generator.rb | 0 .../lib/types/props/private/setter_factory.rb | 0 .../lib/types/props/serializable.rb | 0 .../lib/types/props/type_validation.rb | 0 .../lib/types/props/utils.rb | 0 .../lib/types/props/weak_constructor.rb | 0 .../lib/types/sig.rb | 0 .../lib/types/struct.rb | 0 .../lib/types/types/anything.rb | 0 .../lib/types/types/attached_class.rb | 0 .../lib/types/types/base.rb | 0 .../lib/types/types/class_of.rb | 0 .../lib/types/types/enum.rb | 0 .../lib/types/types/fixed_array.rb | 0 .../lib/types/types/fixed_hash.rb | 0 .../lib/types/types/intersection.rb | 0 .../lib/types/types/noreturn.rb | 0 .../lib/types/types/proc.rb | 0 .../lib/types/types/self_type.rb | 0 .../lib/types/types/simple.rb | 0 .../lib/types/types/t_enum.rb | 0 .../lib/types/types/type_member.rb | 0 .../lib/types/types/type_parameter.rb | 0 .../lib/types/types/type_template.rb | 0 .../lib/types/types/type_variable.rb | 0 .../lib/types/types/typed_array.rb | 0 .../lib/types/types/typed_class.rb | 0 .../lib/types/types/typed_enumerable.rb | 0 .../lib/types/types/typed_enumerator.rb | 0 .../lib/types/types/typed_enumerator_chain.rb | 0 .../lib/types/types/typed_enumerator_lazy.rb | 0 .../lib/types/types/typed_hash.rb | 0 .../lib/types/types/typed_range.rb | 0 .../lib/types/types/typed_set.rb | 0 .../lib/types/types/union.rb | 0 .../lib/types/types/untyped.rb | 0 .../lib/types/utils.rb | 0 89 files changed, 5 insertions(+), 4 deletions(-) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/sorbet-runtime.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/_types.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/abstract_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/boolean.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/compatibility_patches.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/configuration.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/generic.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/helpers.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/non_forcing_constants.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/abstract/data.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/abstract/declare.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/abstract/hooks.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/abstract/validate.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/caller_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/casts.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/class_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/decl_state.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/final.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/_methods.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/call_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/call_validation_2_6.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/call_validation_2_7.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/decl_builder.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/modes.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/signature.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/methods/signature_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/mixins/mixins.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/retry.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/runtime_levels.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/sealed.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/types/not_typed.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/types/simple_pair_union.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/types/string_holder.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/types/type_alias.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/private/types/void.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/_props.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/constructor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/custom_type.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/decorator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/errors.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/generated_code_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/has_lazily_specialized_methods.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/optional.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/plugin.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/pretty_printable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/apply_default.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/deserializer_generator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/parser.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/serde_transform.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/serializer_generator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/private/setter_factory.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/serializable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/type_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/props/weak_constructor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/sig.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/struct.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/anything.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/attached_class.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/base.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/class_of.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/fixed_array.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/fixed_hash.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/intersection.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/noreturn.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/proc.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/self_type.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/simple.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/t_enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/type_member.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/type_parameter.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/type_template.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/type_variable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_array.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_class.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_enumerable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_enumerator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_enumerator_chain.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_enumerator_lazy.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_hash.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_range.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/typed_set.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/union.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/types/untyped.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12109 => sorbet-runtime-0.5.12115}/lib/types/utils.rb (100%) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index 8d501a8fe3..f7b378ce74 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -162,6 +162,7 @@ GEM PLATFORMS aarch64-linux + arm-linux arm64-darwin x86_64-darwin x86_64-linux diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index baaccd42e7..dd4449c3ce 100644 --- a/Library/Homebrew/vendor/bundle/bundler/setup.rb +++ b/Library/Homebrew/vendor/bundle/bundler/setup.rb @@ -78,7 +78,7 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rainbow-3.1.1/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/rbs-3.9.4") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbs-3.9.4/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12109/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12115/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.3.3/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/redcarpet-3.6.1") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/redcarpet-3.6.1/lib") @@ -108,9 +108,9 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov_json_formatter-0.1.4/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-0.22.0/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-cobertura-2.1.0/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12109-universal-darwin/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12109/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12109/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12115-universal-darwin/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12115/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12115/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.3.2/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.6.3/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.27") diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/sorbet-runtime.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/sorbet-runtime.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/sorbet-runtime.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/sorbet-runtime.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/_types.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/_types.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/_types.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/_types.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/abstract_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/abstract_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/abstract_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/abstract_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/boolean.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/boolean.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/boolean.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/boolean.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/compatibility_patches.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/compatibility_patches.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/compatibility_patches.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/compatibility_patches.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/configuration.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/configuration.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/configuration.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/configuration.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/generic.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/generic.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/generic.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/generic.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/helpers.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/helpers.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/helpers.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/helpers.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/non_forcing_constants.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/non_forcing_constants.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/non_forcing_constants.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/non_forcing_constants.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/data.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/data.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/data.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/data.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/declare.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/declare.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/declare.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/declare.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/hooks.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/hooks.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/hooks.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/hooks.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/validate.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/validate.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/abstract/validate.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/validate.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/caller_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/caller_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/caller_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/caller_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/casts.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/casts.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/casts.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/casts.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/class_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/class_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/class_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/class_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/decl_state.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/decl_state.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/decl_state.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/decl_state.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/final.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/final.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/final.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/final.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/_methods.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/_methods.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/_methods.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/_methods.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation_2_6.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_6.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation_2_6.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_6.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation_2_7.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_7.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/call_validation_2_7.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_7.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/decl_builder.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/decl_builder.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/decl_builder.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/decl_builder.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/modes.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/modes.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/modes.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/modes.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/signature.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/signature.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/signature_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/methods/signature_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/mixins/mixins.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/mixins/mixins.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/mixins/mixins.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/mixins/mixins.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/retry.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/retry.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/retry.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/retry.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/runtime_levels.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/runtime_levels.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/runtime_levels.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/runtime_levels.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/sealed.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/sealed.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/sealed.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/sealed.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/not_typed.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/not_typed.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/not_typed.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/not_typed.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/simple_pair_union.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/simple_pair_union.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/simple_pair_union.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/simple_pair_union.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/string_holder.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/string_holder.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/string_holder.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/string_holder.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/type_alias.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/type_alias.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/type_alias.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/type_alias.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/void.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/void.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/private/types/void.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/void.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/_props.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/_props.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/_props.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/_props.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/constructor.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/constructor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/constructor.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/constructor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/custom_type.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/custom_type.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/custom_type.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/custom_type.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/decorator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/decorator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/decorator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/decorator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/errors.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/errors.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/errors.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/errors.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/generated_code_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/generated_code_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/generated_code_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/generated_code_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/has_lazily_specialized_methods.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/has_lazily_specialized_methods.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/has_lazily_specialized_methods.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/has_lazily_specialized_methods.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/optional.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/optional.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/optional.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/optional.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/plugin.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/plugin.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/plugin.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/plugin.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/pretty_printable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/pretty_printable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/pretty_printable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/pretty_printable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/apply_default.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/apply_default.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/apply_default.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/apply_default.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/deserializer_generator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/deserializer_generator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/deserializer_generator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/deserializer_generator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/parser.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/parser.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/parser.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/parser.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/serde_transform.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serde_transform.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/serde_transform.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serde_transform.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/serializer_generator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serializer_generator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/serializer_generator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serializer_generator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/setter_factory.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/setter_factory.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/private/setter_factory.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/setter_factory.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/serializable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/serializable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/serializable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/serializable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/type_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/type_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/type_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/type_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/weak_constructor.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/weak_constructor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/props/weak_constructor.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/weak_constructor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/sig.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/sig.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/sig.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/sig.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/struct.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/struct.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/struct.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/struct.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/anything.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/anything.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/anything.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/anything.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/attached_class.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/attached_class.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/attached_class.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/attached_class.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/base.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/base.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/base.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/base.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/class_of.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/class_of.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/class_of.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/class_of.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/fixed_array.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_array.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/fixed_array.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_array.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/fixed_hash.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_hash.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/fixed_hash.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_hash.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/intersection.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/intersection.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/intersection.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/intersection.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/noreturn.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/noreturn.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/noreturn.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/noreturn.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/proc.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/proc.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/proc.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/proc.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/self_type.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/self_type.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/self_type.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/self_type.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/simple.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/simple.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/simple.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/simple.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/t_enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/t_enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/t_enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/t_enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_member.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_member.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_member.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_member.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_parameter.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_parameter.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_parameter.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_parameter.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_template.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_template.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_template.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_template.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_variable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_variable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/type_variable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_variable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_array.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_array.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_array.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_array.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_class.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_class.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_class.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_class.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator_chain.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_chain.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator_chain.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_chain.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator_lazy.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_lazy.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_enumerator_lazy.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_lazy.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_hash.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_hash.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_hash.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_hash.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_range.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_range.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_range.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_range.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_set.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_set.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/typed_set.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_set.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/union.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/union.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/union.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/union.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/untyped.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/untyped.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/types/untyped.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/untyped.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12109/lib/types/utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/utils.rb From 7173f1fb6049d2aede7cdf8687f4af3781cdc96f Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 20 May 2025 12:12:55 +0100 Subject: [PATCH 11/66] utils/spdx: do case insensitive comparison. Various places that use SPDX licenses specify them as downcased strings so let's be more permissive in our comparisons/validations. --- Library/Homebrew/utils/spdx.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/utils/spdx.rb b/Library/Homebrew/utils/spdx.rb index bf45bf377c..7b8e69e865 100644 --- a/Library/Homebrew/utils/spdx.rb +++ b/Library/Homebrew/utils/spdx.rb @@ -87,7 +87,7 @@ module SPDX return ALLOWED_LICENSE_SYMBOLS.include? license if license.is_a? Symbol license = license.delete_suffix "+" - license_data["licenses"].any? { |spdx_license| spdx_license["licenseId"] == license } + license_data["licenses"].any? { |spdx_license| spdx_license["licenseId"].downcase == license.downcase } end sig { params(license: T.any(String, Symbol)).returns(T::Boolean) } @@ -97,14 +97,14 @@ module SPDX license = license.to_s.delete_suffix "+" license_data["licenses"].none? do |spdx_license| - spdx_license["licenseId"] == license && !spdx_license["isDeprecatedLicenseId"] + spdx_license["licenseId"].downcase == license.downcase && !spdx_license["isDeprecatedLicenseId"] end end sig { params(exception: String).returns(T::Boolean) } def valid_license_exception?(exception) exception_data["exceptions"].any? do |spdx_exception| - spdx_exception["licenseExceptionId"] == exception && !spdx_exception["isDeprecatedLicenseId"] + spdx_exception["licenseExceptionId"].downcase == exception.downcase && !spdx_exception["isDeprecatedLicenseId"] end end From effb07ee763017a17f4fa60c20195de84835b9c6 Mon Sep 17 00:00:00 2001 From: Bevan Kay Date: Mon, 19 May 2025 00:04:16 +1000 Subject: [PATCH 12/66] bump-formula-pr: fix case when only `url` is provided --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index e585f75d8c..3d7b867ee4 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -159,6 +159,7 @@ module Homebrew new_url = args.url new_version = args.version + check_new_version(commit_formula, tap_remote_repo, version: new_version) if new_version.present? opoo "This formula has patches that may be resolved upstream." if commit_formula.patchlist.present? @@ -174,6 +175,7 @@ module Homebrew end old_hash = commit_formula_spec.checksum&.hexdigest + new_hash = args.sha256 new_tag = args.tag new_revision = args.revision @@ -213,10 +215,9 @@ module Homebrew elsif new_url.blank? && new_version.blank? raise UsageError, "#{commit_formula}: no `--url` or `--version` argument specified!" else - next unless new_version.present? + new_url ||= PyPI.update_pypi_url(old_url, new_version) if new_version.present? - new_url ||= PyPI.update_pypi_url(old_url, new_version) - if new_url.blank? + if new_url.blank? && new_version.present? new_url = update_url(old_url, old_version, new_version) if new_mirrors.blank? && old_mirrors.present? new_mirrors = old_mirrors.map do |old_mirror| @@ -231,6 +232,9 @@ module Homebrew #{new_url} EOS end + if new_url.blank? + odie "There was an issue generating the updated url, you may need to create the PR manually" + end check_new_version(commit_formula, tap_remote_repo, url: new_url) if new_version.blank? resource_path, forced_version = fetch_resource_and_forced_version(commit_formula, new_version, new_url) Utils::Tar.validate_file(resource_path) @@ -407,7 +411,7 @@ module Homebrew { sourcefile_path: commit_formula.path, old_contents:, - commit_message: "#{commit_formula.name} #{args.version}", + commit_message: "#{commit_formula.name} #{new_formula_version}", additional_files: alias_rename, formula_pr_message:, formula_name: commit_formula.name, @@ -437,6 +441,7 @@ module Homebrew end new_formula_version = T.must(commits.first)[:new_version] + pr_title = if args.bump_synced.nil? "#{formula.name} #{new_formula_version}" else From f051510e6763590aa2cc7c6564ccd43f30590a0c Mon Sep 17 00:00:00 2001 From: Justin Rackliffe Date: Tue, 20 May 2025 09:25:30 -0400 Subject: [PATCH 13/66] Update Library/Homebrew/download_strategy.rb Co-authored-by: Eric Knibbe --- Library/Homebrew/download_strategy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 75d3a57c7c..01d5a91302 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -705,7 +705,7 @@ class CurlGitHubPackagesDownloadStrategy < CurlDownloadStrategy meta[:headers] ||= [] # GitHub Packages authorization header. # HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh - # If using a private GHCR mirror with no Authentication set than do not add the header. In all other cases add it. + # If using a private GHCR mirror with no Authentication set then do not add the header. In all other cases add it. if !Homebrew::EnvConfig.artifact_domain.presence || Homebrew::EnvConfig.docker_registry_basic_auth_token.presence || Homebrew::EnvConfig.docker_registry_token.presence From ad5e03279b84ce8950204f1ef55cde464136672c Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Thu, 15 May 2025 13:56:57 -0400 Subject: [PATCH 14/66] Cask-Cookbook: relocate and update `script:` key lists --- docs/Cask-Cookbook.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/Cask-Cookbook.md b/docs/Cask-Cookbook.md index e9ac3597ad..fd14a0d5c5 100644 --- a/docs/Cask-Cookbook.md +++ b/docs/Cask-Cookbook.md @@ -555,6 +555,8 @@ installer manual: "RubyMotion Installer.app" | `args:` | array of arguments to the install script | | `input:` | array of lines of input to be sent to `stdin` of the script | | `must_succeed:` | set to `false` if the script is allowed to fail | +| `print_stderr:` | set to `false` to suppress `stderr` output | +| `print_stdout:` | set to `false` to suppress `stdout` output | | `sudo:` | set to `true` if the script needs *sudo* | The path may be absolute, or relative to the cask. Example (from [miniforge.rb](https://github.com/Homebrew/homebrew-cask/blob/864f623e2cd17dbde5987a7b3923fdb0b4ac9ee5/Casks/m/miniforge.rb#L23-L26)): @@ -770,11 +772,6 @@ Since `pkg` installers can do arbitrary things, different techniques are needed * [`login_item:`](#uninstall-login_item) (string or array) - names of login items to remove * [`kext:`](#uninstall-kext) (string or array) - bundle IDs of kexts to unload from the system * [`script:`](#uninstall-script) (string or hash) - relative path to an uninstall script to be run via sudo; use hash if args are needed - * `executable:` - relative path to an uninstall script to be run via sudo (required for hash form) - * `args:` - array of arguments to the uninstall script - * `input:` - array of lines of input to be sent to `stdin` of the script - * `must_succeed:` - set to `false` if the script is allowed to fail - * `sudo:` - set to `true` if the script needs *sudo* * [`pkgutil:`](#uninstall-pkgutil) (string, regexp or array of strings and regexps) - strings or regexps matching bundle IDs of packages to uninstall using `pkgutil` * [`delete:`](#uninstall-delete) (string or array) - double-quoted, absolute paths of files or directory trees to remove. Should only be used as a last resort; `pkgutil:` is strongly preferred. * **`rmdir:`** (string or array) - double-quoted, absolute paths of directories to remove if empty. Works recursively. @@ -894,7 +891,19 @@ IDs inside a kext bundle on disk can be listed using [`list_id_in_kext`](https:/ #### `uninstall` *script* -`uninstall script:` introduces a series of key-value pairs describing a command which will automate completion of the uninstall. Example (from [virtualbox.rb](https://github.com/Homebrew/homebrew-cask/blob/ef9931087f6e101262bf64119166e2d9cec068f0/Casks/v/virtualbox.rb#L55-L61)): +`uninstall script:` introduces a series of key-value pairs describing a command which will automate completion of the uninstall. The form is similar to [`installer script:`](#installer-script): + +| key | value | +| --------------- | ----- | +| `executable:` | path to an uninstall script to be run | +| `args:` | array of arguments to the uninstall script | +| `input:` | array of lines of input to be sent to `stdin` of the script | +| `must_succeed:` | set to `false` if the script is allowed to fail | +| `print_stderr:` | set to `false` to suppress `stderr` output | +| `print_stdout:` | set to `false` to suppress `stdout` output | +| `sudo:` | set to `true` if the script needs *sudo* | + +The path may be absolute, or relative to the cask. Example (from [virtualbox.rb](https://github.com/Homebrew/homebrew-cask/blob/ef9931087f6e101262bf64119166e2d9cec068f0/Casks/v/virtualbox.rb#L55-L61)): ```ruby uninstall script: { From 3320d7ee3e87c0bc9d657a2d7d9c36c3b215d62d Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Thu, 15 May 2025 16:05:52 -0400 Subject: [PATCH 15/66] Cask-Cookbook: mention version.csv methods --- docs/Cask-Cookbook.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Cask-Cookbook.md b/docs/Cask-Cookbook.md index fd14a0d5c5..e0aeecc543 100644 --- a/docs/Cask-Cookbook.md +++ b/docs/Cask-Cookbook.md @@ -1124,14 +1124,14 @@ The examples above can become hard to read, however. Since many of these changes | `major_minor` | `1.2.3-a45,ccdd88` | `1.2` | | `major_minor_patch` | `1.2.3-a45,ccdd88` | `1.2.3-a45` | | `minor_patch` | `1.2.3-a45,ccdd88` | `2.3-a45` | -| `before_comma` | `1.2.3-a45,ccdd88` | `1.2.3-a45` | -| `after_comma` | `1.2.3-a45,ccdd88` | `ccdd88` | +| `csv.first` | `1.2.3-a45,ccdd88` | `1.2.3-a45` | +| `csv.second` | `1.2.3-a45,ccdd88` | `ccdd88` | | `dots_to_hyphens` | `1.2.3-a45,ccdd88` | `1-2-3-a45,ccdd88` | | `no_dots` | `1.2.3-a45,ccdd88` | `123-a45,ccdd88` | Similar to `dots_to_hyphens`, we provide methods for all logical permutations of `{dots,hyphens,underscores}_to_{dots,hyphens,underscores}`. The same applies to `no_dots` in the form of `no_{dots,hyphens,underscores}`, with an extra `no_dividers` that applies all these at once. -Finally, there is `csv` which returns an array of comma-separated values. `csv`, `before_comma` and `after_comma` are extra-special to allow for otherwise complex cases, and should be used sparingly. There should be no more than two of `,` per `version`. +Finally, there is `csv` which returns an array of comma-separated values, which replaces the deprecated `before_comma` and `after_comma` methods. Comma-separated versions should only be used for otherwise complex cases; ideally, there should be no more than two instances of `,` per `version`, although methods up to `csv.fifth` are available. #### `version :latest` From 2b25f34e8550d28d16d9c72e3b1f26303610bfa3 Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Sun, 18 May 2025 00:18:43 -0400 Subject: [PATCH 16/66] Cask-Cookbook: mention replacement_formula/cask --- docs/Cask-Cookbook.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/Cask-Cookbook.md b/docs/Cask-Cookbook.md index e0aeecc543..c0b625ccd6 100644 --- a/docs/Cask-Cookbook.md +++ b/docs/Cask-Cookbook.md @@ -314,30 +314,36 @@ The syntax for both stanzas is the same: deprecate! date: "YYYY-MM-DD", because: "is ..." disable! date: "YYYY-MM-DD", because: "is ..." -# Or with a preset reason (see the `because:` argument section below) -deprecate! date: "YYYY-MM-DD", because: :discontinued -disable! date: "YYYY-MM-DD", because: :discontinued +# Or with a preset reason and suggested replacement (see the parameter sections below) +deprecate! date: "YYYY-MM-DD", because: :discontinued, replacement_formula: "another" +disable! date: "YYYY-MM-DD", because: :unmaintained, replacement_cask: "alternative" ``` -#### `date:` argument +#### `date:` parameter -The `date:` argument controls when the deprecation or disabling will take effect. +The `date:` parameter controls when the deprecation or disabling will take effect. Casks that have a `deprecate!` stanza with a date in the future will not be treated as being deprecated until that date. -Casks that have a `disable!` stanza with a date in the future will be automatically deprecated until that date, at which point they will be disabled. +Casks that have a `disable!` stanza with a date in the future will be automatically deprecated until that date, at which point they will become disabled. -#### `because:` argument +#### `because:` parameter -The `because:` argument accepts a reason for the cask being deprecated or disabled. +The `because:` parameter accepts a reason for the cask being deprecated or disabled. The info message will be ` is deprecated because it !`, so format the reason to fit that sentence. For example, `because: "is broken"` will result in ` is deprecated because it is broken!`. -The `because:` argument can also accept a symbol that corresponds to a preset reason, for example: +The `because:` parameter can also accept a symbol that corresponds to a preset reason, for example: ```ruby deprecate! date: "YYYY-MM-DD", because: :discontinued ``` -A complete list of allowable symbols can be found in the [`DeprecateDisable` module](https://github.com/Homebrew/brew/blob/master/Library/Homebrew/deprecate_disable.rb). +A complete list of allowable symbols can be found in the [`DeprecateDisable` module](https://rubydoc.brew.sh/DeprecateDisable) documentation. + +#### `replacement_formula:` / `replacement_cask:` parameter + +The `replacement_formula:` and `replacement_cask:` parameters accept a string for suggesting a replacement formula or cask to the user. + +Refer to [Deprecating, Disabling and Removing Casks](Deprecating-Disabling-and-Removing-Casks.md) for more information about the deprecation process for casks. ### Stanza: `conflicts_with` From e8a01421502f681831d26e1ae26696933579384d Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Sun, 18 May 2025 00:23:17 -0400 Subject: [PATCH 17/66] Cask-Cookbook: review and update with suggestions from code review Co-Authored-By: Klaus Hipp Co-Authored-By: Bevan Kay --- docs/Cask-Cookbook.md | 254 ++++++++++++++++++++++-------------------- 1 file changed, 133 insertions(+), 121 deletions(-) diff --git a/docs/Cask-Cookbook.md b/docs/Cask-Cookbook.md index c0b625ccd6..83be31c53c 100644 --- a/docs/Cask-Cookbook.md +++ b/docs/Cask-Cookbook.md @@ -1,5 +1,5 @@ --- -last_review_date: "1970-01-01" +last_review_date: 2025-05-18 --- # Cask Cookbook @@ -33,7 +33,7 @@ Exception: `do` blocks such as `postflight` may enclose a block of pure Ruby cod ## Header line details -The Cask name ([``](#token-reference)) on the header line `cask do` should match the cask filename, without the `.rb` extension, enclosed in double quotes. +The cask name ([``](#token-reference)) on the header line `cask do` should match the cask filename, without the `.rb` extension, enclosed in double quotes. There are currently some arbitrary limitations on cask tokens which are in the process of being removed. GitHub Actions will catch any errors during the transition. @@ -41,6 +41,9 @@ There are currently some arbitrary limitations on cask tokens which are in the p Having a common order for stanzas makes casks easier to update and parse. Below is the complete stanza sequence (no cask will have all stanzas). The empty lines shown here are also important, as they help to visually delimit information. + arch + os + version sha256 @@ -109,21 +112,21 @@ Note that every stanza that has additional parameters (`:symbols` after a `,`) s Each of the following stanzas is required for every cask. -| name | multiple occurrences allowed? | value | -| ---------------------------- | :---------------------------: | ----- | -| [`version`](#stanza-version) | no | Application version. | -| [`sha256`](#stanza-sha256) | no | SHA-256 checksum of the file downloaded from `url`, calculated by the command `shasum -a 256 `. Can be suppressed by using the special value `:no_check`. | -| [`url`](#stanza-url) | no | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. Block syntax should be used for URLs that change on every visit. | -| [`name`](#stanza-name) | yes | String providing the full and proper name defined by the vendor. | -| [`desc`](#stanza-desc) | no | One-line description of the cask. Shown when running `brew info`. | -| `homepage` | no | Application homepage; used for the `brew home` command. | -| [`livecheck`](#stanza-livecheck) | no | Ruby block describing how to find updates for this cask. Supersedes `appcast`. | -| [`depends_on`](#stanza-depends_on) | yes | List of dependencies and requirements for this cask. | -| [`zap`](#stanza-zap) | yes | Additional procedures for a more complete uninstall, including user files and shared resources. | +| name | multiple occurrences allowed? | value | +| ---------------------------------- | :---------------------------: | ----- | +| [`version`](#stanza-version) | no | Application version, or the special value `:latest`. | +| [`sha256`](#stanza-sha256) | no | SHA-256 checksum of the file downloaded from `url` as calculated by the command `shasum -a 256 `, or the special value `:no_check`. | +| [`url`](#stanza-url) | no | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. | +| [`name`](#stanza-name) | yes | String providing the full and proper name defined by the vendor. | +| [`desc`](#stanza-desc) | no | One-line description of the cask. Shown when running `brew info`. | +| `homepage` | no | Application homepage; used for the `brew home` command. | +| [`livecheck`](#stanza-livecheck) | no | Ruby block describing how to find updates for this cask. Supersedes `appcast`. | +| [`depends_on`](#stanza-depends_on) | yes | List of dependencies and requirements for this cask. | +| [`zap`](#stanza-zap) | yes | Additional procedures for a more complete uninstall, including user files and shared resources. | ### At least one artifact stanza is also required -Each cask must declare one or more *artifacts* (i.e. something to install). +Each cask must declare one or more [artifacts](https://rubydoc.brew.sh/Cask/Artifact) (i.e. something to install). | name | multiple occurrences allowed? | value | | -------------------------------- | :---------------------------: | ----- | @@ -157,11 +160,11 @@ Each cask must declare one or more *artifacts* (i.e. something to install). | name | multiple occurrences allowed? | value | | ------------------------------------------ | :---------------------------: | ----- | -| [`uninstall`](#stanza-uninstall) | yes | Procedures to uninstall a cask. Optional unless the `pkg` stanza is used. | -| [`conflicts_with`](#stanza-conflicts_with) | yes | List of conflicts with this cask (*not yet functional*). | +| [`uninstall`](#stanza-uninstall) | yes | Procedures to uninstall a cask. Optional unless a `pkg` or `installer` artifact stanza is used. | +| [`conflicts_with`](#stanza-conflicts_with) | yes | List of conflicts with this cask. | | [`caveats`](#stanza-caveats) | yes | String or Ruby block providing the user with cask-specific information at install time. | -| [`deprecate!`](#stanza-deprecate--disable) | no | Date as a String in `YYYY-MM-DD` format and a String or Symbol providing a reason. | -| [`disable!`](#stanza-deprecate--disable) | no | Date as a String in `YYYY-MM-DD` format and a String or Symbol providing a reason. | +| [`deprecate!`](#stanza-deprecate--disable) | no | Date as a string in `YYYY-MM-DD` format and a string or symbol providing a reason. | +| [`disable!`](#stanza-deprecate--disable) | no | Date as a string in `YYYY-MM-DD` format and a string or symbol providing a reason. | | `preflight` | yes | Ruby block containing preflight install operations (needed only in very rare cases). | | [`postflight`](#stanza-flight) | yes | Ruby block containing postflight install operations. | | `uninstall_preflight` | yes | Ruby block containing preflight uninstall operations (needed only in very rare cases). | @@ -250,7 +253,7 @@ Behaviour and usage of `target:` is [the same as with `app`](#renaming-the-targe Sometimes there are particularities with the installation of a piece of software that cannot or should not be handled programmatically by Homebrew Cask. In those instances, `caveats` is the way to inform the user. Information in `caveats` is displayed when a cask is invoked with either `install` or `info`. -To avoid flooding users with too many messages (thus desensitising them to the important ones), `caveats` should be used sparingly and exclusively for installation-related matters. If you’re not sure a `caveat` you find pertinent is installation-related or not, ask a maintainer. As a general rule, if your case isn’t already covered in our comprehensive [`caveats Mini-DSL`](#caveats-mini-dsl), it’s unlikely to be accepted. +To avoid flooding users with too many messages (thus desensitising them to the important ones), `caveats` should be used sparingly and exclusively for installation-related matters. If you’re not sure whether a `caveat` you find pertinent is installation-related or not, ask a maintainer. As a general rule, if your case isn’t already covered in our comprehensive [`caveats mini-DSL`](#caveats-mini-dsl), it’s unlikely to be accepted. #### `caveats` as a string @@ -347,13 +350,13 @@ Refer to [Deprecating, Disabling and Removing Casks](Deprecating-Disabling-and-R ### Stanza: `conflicts_with` -`conflicts_with` is used to declare conflicts that keep a cask from installing or working correctly. +`conflicts_with` is used to declare conflicts that prevent a cask from installing or working correctly. #### `conflicts_with` *cask* The value should be another cask token. -Example: the [macFUSE](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/m/macfuse.rb#L17) cask, which conflicts with `macfuse-dev`. +Example: [macFUSE](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/m/macfuse.rb#L17), which conflicts with `macfuse-dev`. ```ruby conflicts_with cask: "macfuse-dev" @@ -377,7 +380,7 @@ conflicts_with formula: "macvim" #### `depends_on` *cask* -The value should be another cask token, needed by the current cask. +The value should be one or more tokens of casks needed by the current cask, as a string or array of strings. Example: [NTFSTool](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/n/ntfstool.rb#L11), which depends on macFUSE. @@ -387,7 +390,7 @@ depends_on cask: "macfuse" #### `depends_on` *formula* -The value should name a Homebrew formula needed by the cask. +The value should be one or more names of formulae needed by the current cask, as a string or array of strings. Example: some distributions are contained in archive formats such as `7z` which are not supported by stock Apple tools. For these cases, a more capable archive reader may be pulled in at install time by declaring a dependency on the `unar` formula: @@ -399,7 +402,7 @@ depends_on formula: "unar" ##### Requiring an exact macOS release -The value for `depends_on macos:` may be a symbol or an array of symbols, listing the exact compatible macOS releases. The available values for macOS releases are defined in the [MacOSVersion class](https://rubydoc.brew.sh/MacOSVersion.html). +The value for `depends_on macos:` may be a symbol or an array of symbols, listing the exact compatible macOS releases. The values for supported macOS releases can be found in the [`MacOSVersion` class](https://rubydoc.brew.sh/MacOSVersion) documentation. Only major releases are covered (10.x numbers containing a single dot or whole numbers since macOS 11). The symbol form is used for readability. The following are all valid ways to enumerate the exact macOS release requirements for a cask: @@ -413,7 +416,7 @@ depends_on macos: [ ##### Setting a minimum macOS release -`depends_on macos:` can also accept a string starting with a comparison operator such as `>=`, followed by an macOS release in the form above. The following is a valid expression meaning “at least macOS Big Sur (11.0)”: +`depends_on macos:` can also accept a string starting with a comparison operator such as `>=`, followed by a macOS release in the form above. The following is a valid expression meaning “at least macOS Big Sur (11.0)”: ```ruby depends_on macos: ">= :big_sur" @@ -423,12 +426,12 @@ A comparison expression cannot be combined with any other form of `depends_on ma #### `depends_on` *arch* -The value for `depends_on arch:` may be a symbol or an array of symbols, listing the hardware compatibility requirements for a cask. The requirement is satisfied at install time if any one of multiple `arch:` values matches the user’s hardware. +The value for `depends_on arch:` may be a symbol or an array of symbols, listing the hardware compatibility requirements for a cask. The requirement is satisfied at install time if any one of the provided `arch:` values matches the user’s hardware. The available symbols for hardware are: -| symbol | meaning | -| ---------- | -------------- | +| symbol | meaning | +| ---------- | ------- | | `:arm64` | Apple Silicon | | `:x86_64` | 64-bit Intel | | `:intel` | 64-bit Intel | @@ -446,15 +449,15 @@ depends_on arch: [:x86_64] # same meaning as above | key | description | | ---------- | ----------- | -| `formula:` | Homebrew formula | -| `cask:` | cask token | -| `macos:` | symbol, array, or string comparison expression defining macOS release requirements | -| `arch:` | symbol or array defining hardware requirements | +| `formula:` | required Homebrew formula names as string or array | +| `cask:` | required Homebrew cask tokens as string or array | +| `macos:` | macOS release requirements as symbol, array or string comparison expression | +| `arch:` | hardware requirements as symbol or array | | `java:` | *stub - not yet functional* | ### Stanza: `desc` -`desc` accepts a single-line UTF-8 string containing a short description of the software. It’s used to help with searchability and disambiguation, thus it must concisely describe what the software does (or what you can accomplish with it). +`desc` accepts a single-line UTF-8 string containing a short description of the software. As it’s used to help with searchability and disambiguation, it must concisely describe what the software does (or what you can accomplish with it). `desc` is not for app slogans! Vendors’ descriptions tend to be filled with generic adjectives such as “modern” and “lightweight”. Those are meaningless marketing fluff (do you ever see apps proudly describing themselves as outdated and bulky?) which must be deleted. It’s fine to use the information on the software’s website as a starting point, but it will require editing in almost all cases. @@ -481,7 +484,7 @@ depends_on arch: [:x86_64] # same meaning as above + desc "Sound and music editor" ``` -* **Do not** include the platform. Casks only work on macOS, so this is redundant information. +* **Do not** include the platform. Casks always work on macOS, so this is redundant information. ```diff - desc "Sound and music editor for macOS" @@ -535,7 +538,7 @@ The following methods may be called to perform standard tasks: | `set_ownership(paths)` | `preflight`, `postflight`, `uninstall_preflight` | Set user and group ownership of `paths`. (Example: [docker-toolbox.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/d/docker-toolbox.rb#L42)) | | `set_permissions(paths, permissions_str)` | `preflight`, `postflight`, `uninstall_preflight` | Set permissions in `paths` to `permissions_str`. (Example: [ngrok.rb](https://github.com/Homebrew/homebrew-cask/blob/41d91ff669d85343175202adf568e2328486205f/Casks/n/ngrok.rb#L30)) | -`set_ownership(paths)` defaults user ownership to the current user and group ownership to `staff`. These can be changed by passing in extra options: `set_ownership(paths, user: "user", group: "group")`. (Example: [hummingbird.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/h/hummingbird.rb#L24)) +`set_ownership(paths)` defaults to setting user and group ownership to the current user and `staff`. These can be changed by passing in extra options: `set_ownership(paths, user: "user", group: "group")`. (Example: [hummingbird.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/h/hummingbird.rb#L24)) ### Stanza: `installer` @@ -545,7 +548,7 @@ The `installer` stanza takes a series of key-value pairs, the first key of which #### `installer` *manual* -`installer manual:` takes a single string value, describing a GUI installer which must be run by the user at a later time. The path may be absolute, or relative to the cask. Example (from [rubymotion.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/r/rubymotion.rb#L15)): +`installer manual:` takes a single string value for the path to an interactive installer which must be run by the user at a later time. The path may be absolute, or relative to the cask. Example (from [rubymotion.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/r/rubymotion.rb#L15)): ```ruby installer manual: "RubyMotion Installer.app" @@ -553,7 +556,7 @@ installer manual: "RubyMotion Installer.app" #### `installer` *script* -`installer script:` introduces a series of key-value pairs describing a command which will automate completion of the install. **It should never be used for interactive installations.** The form is similar to [`uninstall script:`](#uninstall-script): +`installer script:` takes a series of key-value pairs describing a command which will automate completion of the install. **It should never be used for interactive installations.** The form is similar to [`uninstall script:`](#uninstall-script): | key | value | | --------------- | ----- | @@ -574,7 +577,7 @@ installer script: { } ``` -If the `installer script:` does not require any of the key-values it can point directly to the path of the install script: +If the `installer script:` does not require any of the key-value pairs, it can be given just the path to the install script: ```ruby installer script: "#{staged_path}/install.sh" @@ -638,7 +641,7 @@ The `livecheck` stanza is used to automatically fetch the latest version of a ca Every `livecheck` block must contain a `url`, which can be either a string or a symbol pointing to other URLs in the cask (`:url` or `:homepage`). -Refer to the [`brew livecheck` documentation](Brew-Livecheck.md) for how to write a `livecheck` block. +Refer to the [`brew livecheck`](Brew-Livecheck.md) documentation for how to write a `livecheck` block. ### Stanza: `name` @@ -660,7 +663,7 @@ The first argument to the `pkg` stanza should be a relative path to the `.pkg` f pkg "Unity.pkg" ``` -Subsequent arguments to `pkg` are key/value pairs which modify the install process. Currently supported keys are `allow_untrusted:` and `choices:`. +Subsequent arguments to `pkg` are key-value pairs which modify the install process. Currently supported keys are `allow_untrusted:` and `choices:`. #### `pkg` *allow_untrusted* @@ -731,9 +734,9 @@ shasum --algorithm 256 #### Special value `:no_check` -The special value `sha256 :no_check` is used to turn off SHA checking whenever checksumming is impractical due to the upstream configuration. +The special value `sha256 :no_check` is used to turn off SHA checking whenever checksumming is impractical due to the upstream configuration, e.g. when `url` does not change between releases. -`version :latest` requires `sha256 :no_check`, and this pairing is common. However, `sha256 :no_check` does not require `version :latest`. +`sha256 :no_check` is required by [`version :latest`](#special-value-latest), and this pairing is common. However, `sha256 :no_check` does not require `version :latest`. We use a checksum whenever possible. @@ -757,37 +760,37 @@ The value of `suite` is never an `.app` bundle, but a plain directory. The easiest and most useful `uninstall` directive is [`pkgutil:`](#uninstall-pkgutil). It should cover most use cases. -#### `uninstall` is required for casks that install using `pkg` or `installer manual:` +#### `uninstall` is required for casks that install using `pkg` or `installer` -For most casks, uninstall actions are determined automatically, and an explicit `uninstall` stanza is not needed. However, a cask which uses the `pkg` or `installer manual:` stanzas will **not** know how to uninstall correctly unless an `uninstall` stanza is given. +For most casks, uninstall actions are determined automatically, and an explicit `uninstall` stanza is not needed. However, a cask which uses the [`pkg`](#stanza-pkg) or [`installer`](#stanza-installer) stanzas will **not** know how to uninstall correctly unless an `uninstall` stanza is given. -So, while the [cask DSL](#required-stanzas) does not enforce the requirement, it is much better for users if every `pkg` and `installer manual:` has a corresponding `uninstall`. +So, while the [cask DSL](#required-stanzas) does not enforce the requirement, it is much better for users if every `pkg` and `installer` has a corresponding `uninstall`. -The `uninstall` stanza is available for non-`pkg` casks, and is useful for a few corner cases. However, the documentation below concerns the typical case of using `uninstall` to define procedures for a `pkg`. +The `uninstall` stanza is available for other artifact types, and is useful for a few corner cases. However, the documentation below concerns the typical case of using `uninstall` to define procedures for a `pkg`. #### There are multiple uninstall techniques -Since `pkg` installers can do arbitrary things, different techniques are needed to uninstall in each case. You may need to specify one, or several, of the following key/value pairs as arguments to `uninstall`. +Since `pkg` installers can do arbitrary things, different techniques are needed to uninstall in each case. You may need to specify one, or several, of the following key-value pairs as arguments to `uninstall`. #### Summary of keys * **`early_script:`** (string or hash) - like [`script:`](#uninstall-script), but runs early (for special cases, best avoided) * [`launchctl:`](#uninstall-launchctl) (string or array) - IDs of `launchd` jobs to remove * [`quit:`](#uninstall-quit) (string or array) - bundle IDs of running applications to quit (does not run when uninstall is initiated by `brew upgrade` or `brew reinstall`) -* [`signal:`](#uninstall-signal) (array of arrays) - signal numbers and bundle IDs of running applications to send a Unix signal to - for when `quit:` does not work (does not run when uninstall is initiated by `brew upgrade` or `brew reinstall`) +* [`signal:`](#uninstall-signal) (array of arrays) - signal numbers and bundle IDs of running applications to send a Unix signal to, for when `quit:` does not work (does not run when uninstall is initiated by `brew upgrade` or `brew reinstall`) * [`login_item:`](#uninstall-login_item) (string or array) - names of login items to remove * [`kext:`](#uninstall-kext) (string or array) - bundle IDs of kexts to unload from the system -* [`script:`](#uninstall-script) (string or hash) - relative path to an uninstall script to be run via sudo; use hash if args are needed +* [`script:`](#uninstall-script) (string or hash) - relative path to an uninstall script to be run via *sudo*; use hash if args are needed * [`pkgutil:`](#uninstall-pkgutil) (string, regexp or array of strings and regexps) - strings or regexps matching bundle IDs of packages to uninstall using `pkgutil` * [`delete:`](#uninstall-delete) (string or array) - double-quoted, absolute paths of files or directory trees to remove. Should only be used as a last resort; `pkgutil:` is strongly preferred. -* **`rmdir:`** (string or array) - double-quoted, absolute paths of directories to remove if empty. Works recursively. +* **`rmdir:`** (string or array) - double-quoted, absolute paths of directories to remove if empty; works recursively * [`trash:`](#uninstall-trash) (string or array) - double-quoted, absolute paths of files or directory trees to move to Trash Each `uninstall` technique is applied according to the order above. The order in which `uninstall` keys appear in the cask file is ignored. -For assistance filling in the right values for `uninstall` keys, there are several helper scripts found under `developer/bin` in the Homebrew Cask repository. Each of these scripts responds to the `-help` option with additional documentation. +For assistance filling in the right values for `uninstall` keys, there are several [helper scripts found under `developer/bin`](https://github.com/Homebrew/homebrew-cask/tree/HEAD/developer/bin) in the Homebrew Cask repository. Each of these scripts responds to the `-help` option with additional documentation. -Working out an `uninstall` stanza is easiest when done on a system where the package is currently installed and operational. To operate on an uninstalled `.pkg` file, see [Working With a `.pkg` File Manually](#working-with-a-pkg-file-manually), below. +Working out an `uninstall` stanza is easiest when done on a system where the package is currently installed and operational. To operate on an uninstalled `.pkg` file, see [Working with a `.pkg` file manually](#working-with-a-pkg-file-manually), below. #### `uninstall` *pkgutil* @@ -799,7 +802,7 @@ IDs for the most recently installed packages can be listed using [`list_recent_p "$(brew --repository homebrew/cask)/developer/bin/list_recent_pkg_ids" ``` -`pkgutil:` also accepts a regular expression match against multiple package IDs. The regular expressions are somewhat nonstandard. To test a `pkgutil:` regular expression against currently installed packages, use [`list_pkg_ids_by_regexp`](https://github.com/Homebrew/homebrew-cask/blob/HEAD/developer/bin/list_pkg_ids_by_regexp): +`pkgutil:` also accepts a regular expression to match against multiple package IDs. The regular expressions are somewhat nonstandard. To test a `pkgutil:` regular expression against currently installed packages, use [`list_pkg_ids_by_regexp`](https://github.com/Homebrew/homebrew-cask/blob/HEAD/developer/bin/list_pkg_ids_by_regexp): ```bash "$(brew --repository homebrew/cask)/developer/bin/list_pkg_ids_by_regexp" @@ -847,7 +850,7 @@ Bundle IDs inside an application bundle on disk can be listed using [`list_ids_i `signal:` should only be needed in the rare case that a process does not respond to `quit:`. -Bundle IDs for `signal:` targets may be obtained in the same way as for `quit:`. The value for `signal:` is an array-of-arrays, with each cell containing two elements: the desired Unix signal followed by the corresponding bundle ID. +Bundle IDs for `signal:` targets may be obtained in the same way as for `quit:`. The value for `signal:` is an array of arrays, with each cell containing two elements: the desired Unix signal followed by the corresponding bundle ID. The Unix signal may be given in numeric or string form (see the `kill`(1) man page for more details). @@ -869,7 +872,7 @@ uninstall signal: [ Note that when multiple running processes match the given bundle ID, all matching processes will be signaled. -Unlike `quit:` directives, Unix signals originate from the current user, not from the superuser. This is construed as a safety feature, since the superuser is capable of bringing down the system via signals. However, this inconsistency may also be considered a bug, and should be addressed in some fashion in a future version. +Unlike `quit:` directives, Unix signals originate from the current user, not from the superuser. This is construed as a safety feature, since the superuser is capable of bringing down the system via signals. However, this inconsistency could also be considered a bug, and may be addressed in some fashion in a future version. #### `uninstall` *login_item* @@ -965,7 +968,7 @@ A fully manual method for finding bundle IDs in a package file follows: 1. Unpack `/path/to/my.pkg` (replace with your package name) with `pkgutil --expand /path/to/my.pkg /tmp/expanded.unpkg`. 2. The unpacked package is a folder. Bundle IDs are contained within files named `PackageInfo`. These files can be found with the command `find /tmp/expanded.unpkg -name PackageInfo`. -3. `PackageInfo` files are XML files, and bundle IDs are found within the `identifier` attributes of `` tags that look like ``, where extraneous attributes have been snipped out and replaced with ellipses. +3. `PackageInfo` files are XML files, and bundle IDs are found within the `identifier` attributes of `` tags that look like `` (where extraneous attributes have been snipped out and replaced with ellipses). 4. Kexts inside packages are also described in `PackageInfo` files. If any kernel extensions are present, the command `find /tmp/expanded.unpkg -name PackageInfo -print0 | xargs -0 grep -i kext` should return a `` tag with a `path` attribute that contains a `.kext` extension, for example ``. 5. Once bundle IDs have been identified, the unpacked package directory can be deleted. @@ -977,17 +980,17 @@ If available, an HTTPS URL is preferred. A plain HTTP URL should only be used in #### Additional `url` parameters -When a plain URL string is insufficient to fetch a file, additional information may be provided to the `curl`-based downloader, in the form of key/value pairs appended to `url`: +When a plain URL string is insufficient to fetch a file, additional information may be provided to the `curl`-based downloader, in the form of key-value pairs appended to `url`: -| key | value | -| ------------------ | ----------- | +| key | value | +| ------------------ | ----- | | `verified:` | string repeating the beginning of `url`, for [verification purposes](#when-url-and-homepage-domains-differ-add-verified) | | `using:` | the symbols `:post` and `:homebrew_curl` are the only legal values | -| `cookies:` | hash of cookies to be set in the download request (Example: [oracle-jdk-javadoc.rb](https://github.com/Homebrew/homebrew-cask/blob/326c44e93aeb8d4dd73acea14a99ae215c75fdd6/Casks/o/oracle-jdk-javadoc.rb#L5-L8)) | -| `referer:` | string holding the URL to set as referer in the download request (Example: [firealpaca.rb](https://github.com/Homebrew/homebrew-cask/blob/c4b3f0742e044ae2a6e114eb6b90068763d0d12b/Casks/f/firealpaca.rb#L5-L6)) | +| `cookies:` | hash of cookies to be set for the download request (Example: [oracle-jdk-javadoc.rb](https://github.com/Homebrew/homebrew-cask/blob/326c44e93aeb8d4dd73acea14a99ae215c75fdd6/Casks/o/oracle-jdk-javadoc.rb#L5-L8)) | +| `referer:` | string holding the URL to set as referer for the download request (Example: [firealpaca.rb](https://github.com/Homebrew/homebrew-cask/blob/c4b3f0742e044ae2a6e114eb6b90068763d0d12b/Casks/f/firealpaca.rb#L5-L6)) | | `header:` | string or array of strings holding the header(s) to set for the download request (Example: [pull-6545](https://github.com/Homebrew/brew/pull/6545#issue-503302353), [issue-15590](https://github.com/Homebrew/brew/issues/15590#issue-1774825542)) | | `user_agent:` | string holding the user agent to set for the download request. Can also be set to the symbol `:fake`, which will use a generic browser-like user agent string. We prefer `:fake` when the server does not require a specific user agent. | -| `data:` | hash of parameters to be set in the POST request (Example: [segger-jlink.rb](https://github.com/Homebrew/homebrew-cask/blob/38ac55614f146d68ae317594f0c119e9acbd7c9e/Casks/s/segger-jlink.rb#L6-L11)) | +| `data:` | hash of parameters to be set for a POST request (Example: [segger-jlink.rb](https://github.com/Homebrew/homebrew-cask/blob/38ac55614f146d68ae317594f0c119e9acbd7c9e/Casks/s/segger-jlink.rb#L6-L11)) | #### When URL and homepage domains differ, add `verified:` @@ -995,11 +998,11 @@ When the domains of `url` and `homepage` differ, the discrepancy should be docum This must be added so a user auditing the cask knows the URL was verified by the Homebrew Cask team as the one provided by the vendor, even though it may look unofficial. It is our responsibility as Homebrew Cask maintainers to verify both the `url` and `homepage` information when first added (or subsequently modified, apart from versioning). -The parameter doesn’t mean you should trust the source blindly, but we only approve casks in which users can easily verify its authenticity with basic means, such as checking the official homepage or public repository. Occasionally, slightly more elaborate techniques may be used, such as inspecting a [`livecheck`](#stanza-livecheck) URL we established as official. Cases where such quick verifications aren’t possible (e.g. when the download URL is behind a registration wall) are [treated in a stricter manner](https://docs.brew.sh/Acceptable-Casks#unofficial-vendorless-and-walled-builds). +The parameter doesn’t mean you should trust the source blindly, but we only approve casks in which users can easily verify its authenticity with basic means, such as checking the official homepage or public repository. Occasionally, slightly more elaborate techniques may be used, such as inspecting a [`livecheck`](#stanza-livecheck) URL we established as official. Cases where such quick verifications aren’t possible (e.g. when the download URL is behind a registration wall) are [treated in a stricter manner](Acceptable-Casks.md#unofficial-vendorless-and-walled-builds). #### Difficulty finding a URL -Web browsers may obscure the direct `url` download location for a variety of reasons. Homebrew Cask supplies a [`list_url_attributes_on_file`](https://github.com/Homebrew/homebrew-cask/blob/HEAD/developer/bin/list_url_attributes_on_file) script which can read extended file attributes to extract the actual source URL of most files downloaded by a browser on macOS. The script usually emits multiple candidate URLs; you may have to test each of them: +Web browsers may obscure the direct `url` of a download for a variety of reasons. Homebrew Cask supplies a [`list_url_attributes_on_file`](https://github.com/Homebrew/homebrew-cask/blob/HEAD/developer/bin/list_url_attributes_on_file) script which can read extended file attributes to extract the actual source URL of most files downloaded by a browser on macOS. The script usually emits multiple candidate URLs; you may have to test each of them: ```bash $(brew --repository homebrew/cask)/developer/bin/list_url_attributes_on_file @@ -1007,25 +1010,25 @@ $(brew --repository homebrew/cask)/developer/bin/list_url_attributes_on_file *"` -* An uninstaller tool such as [AppCleaner](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/a/appcleaner.rb). -* Inspection of the usual paths, i.e. `/Library/{'Application Support',LaunchAgents,LaunchDaemons,Frameworks,Logs,Preferences,PrivilegedHelperTools}` and `~/Library/{'Application Support',Caches,Containers,LaunchAgents,Logs,Preferences,'Saved Application State'}`. +* An uninstaller tool such as [AppCleaner](https://formulae.brew.sh/cask/appcleaner) +* Inspection of the usual paths, i.e. `/Library/{'Application Support',LaunchAgents,LaunchDaemons,Frameworks,Logs,Preferences,PrivilegedHelperTools}` and `~/Library/{'Application Support',Caches,Containers,LaunchAgents,Logs,Preferences,'Saved Application State'}` If no additional files are discovered, instead of a zap stanza, include the following comment: @@ -1201,7 +1205,7 @@ If no additional files are discovered, instead of a zap stanza, include the foll ### Handling different system configurations -Casks can deliver specific versions of artifacts depending on the current macOS release or CPU architecture by either tailoring the URL / SHA-256 hash / version, using the [`on_` syntax](Formula-Cookbook.md#handling-different-system-configurations) (which replaces conditional statements using `MacOS.version` or `Hardware::CPU`), or both. +Casks can deliver specific versions of artifacts depending on the current macOS release or CPU architecture by either tailoring the `url` / `sha256` / `version` stanzas, using the [`on_` syntax](Formula-Cookbook.md#handling-different-system-configurations) (which replaces conditional statements using `MacOS.version` or `Hardware::CPU`), or both. If your cask's artifact is offered as separate downloads for Apple Silicon and Intel architectures, they'll presumably be downloadable at distinct URLs that differ only slightly. To adjust the URL depending on the current CPU architecture, supply a hash for each to the `arm:` and `intel:` parameters of `sha256`, and use the special `arch` stanza to define the unique components of the respective URLs for substitution in the `url`. Additional substitutions can be defined by calling `on_arch_conditional` directly. Example (from [libreoffice.rb](https://github.com/Homebrew/homebrew-cask/blob/a4164b8f5084fdaefb6e2e2f4f699270690b7845/Casks/l/libreoffice.rb#L1-L10)): @@ -1268,7 +1272,7 @@ cask "calibre" do end ``` -Such `on_` blocks can be nested and contain other stanzas not listed here. Examples: [calhash.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/c/calhash.rb), [openzfs.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/o/openzfs.rb), [r.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/r/r.rb), [wireshark.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/w/wireshark.rb) +Such `on_` blocks can be nested and contain other stanzas not listed here. However, they should not contain `depends_on macos:` stanzas, which should occur once below the `on_` blocks and encompass all releases listed in the cask. Examples: [calhash.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/c/calhash.rb), [openzfs.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/o/openzfs.rb), [r.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/r/r.rb), [wireshark.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/w/wireshark.rb) ### Switch between languages or regions @@ -1305,12 +1309,12 @@ Variables and methods should not be defined outside the `Utils` namespace, as th This section describes the algorithm implemented in the `generate_cask_token` script, and covers detailed rules and exceptions which are not needed in most cases. * [Purpose](#purpose) -* [Finding the Simplified Name of the Vendor’s Distribution](#finding-the-simplified-name-of-the-vendors-distribution) -* [Converting the Simplified Name To a Token](#converting-the-simplified-name-to-a-token) -* [Cask Filenames](#cask-filenames) -* [Cask Headers](#cask-headers) -* [Cask Token Examples](#cask-token-examples) -* [Special Affixes](#special-affixes) +* [Finding the simplified name of the vendor’s distribution](#finding-the-simplified-name-of-the-vendors-distribution) +* [Converting the simplified name to a token](#converting-the-simplified-name-to-a-token) +* [Cask filenames](#cask-filenames) +* [Cask headers](#cask-headers) +* [Cask token examples](#cask-token-examples) +* [Special affixes](#special-affixes) ### Purpose @@ -1320,7 +1324,7 @@ Software vendors are often inconsistent with their naming. By enforcing strict n * Minimize renaming events * Unambiguously boil down the name of the software into a unique identifier -Details of software names and brands will inevitably be lost in the conversion to a minimal token. To capture the vendor’s full name for a distribution, use the [`name`](#stanza-name) within a cask. `name` accepts an unrestricted UTF-8 string. +Details of software names and brands will inevitably be lost in the conversion to a minimal token. To capture the vendor’s full name for a distribution, use the [`name`](#stanza-name) within a cask, which accepts an unrestricted UTF-8 string. ### Finding the simplified name of the vendor’s distribution @@ -1332,9 +1336,13 @@ Details of software names and brands will inevitably be lost in the conversion t * Remove `.app` from the end. -* Remove from the end: the string “app”, if the vendor styles the name like “Software App.app”. Exception: when “app” is an inseparable part of the name, without which the name would be inherently nonsensical, as in [whatsapp.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/w/whatsapp.rb). +* Remove from the end: the string “app”, if the vendor styles the name like “Software App.app”. -* Remove from the end: version numbers or incremental release designations such as “alpha”, “beta”, or “release candidate”. Strings which distinguish different capabilities or codebases such as “Community Edition” are currently accepted. Exception: when a number is not an incremental release counter, but a differentiator for a different product from a different vendor, as in [kdiff3.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/k/kdiff3.rb). + * Exception: when “app” is an inseparable part of the name, without which the name would be inherently nonsensical, as in [whatsapp.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/w/whatsapp.rb). + +* Remove from the end: version numbers or incremental release designations such as “alpha”, “beta”, or “release candidate”. Strings which distinguish different capabilities or codebases such as “Community Edition” are currently accepted. + + * Exception: when a number is not an incremental release counter, but a differentiator for a different product from a different vendor, as in [kdiff3.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/k/kdiff3.rb). * If the version number is arranged to occur in the middle of the App name, it should also be removed. @@ -1342,15 +1350,19 @@ Details of software names and brands will inevitably be lost in the conversion t * Remove from the end: strings such as “Desktop”, “for Desktop”. -* Remove from the end: strings such as “Mac”, “for Mac”, “for OS X”, “macOS”, “for macOS”. These terms are generally added to ported software such as “MAME OS X.app”. Exception: when the software is not a port, and “Mac” is an inseparable part of the name, without which the name would be inherently nonsensical, as in [PlayOnMac.app](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/p/playonmac.rb). +* Remove from the end: strings such as “Mac”, “for Mac”, “for OS X”, “macOS”, “for macOS”. These terms are generally added to ported software such as “MAME OS X.app”. + + * Exception: when the software is not a port, and “Mac” is an inseparable part of the name, without which the name would be inherently nonsensical, as in [PlayOnMac.app](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/p/playonmac.rb). * Remove from the end: hardware designations such as “for x86”, “32-bit”, “ARM”. -* Remove from the end: software framework names such as “Cocoa”, “Qt”, “Gtk”, “Wx”, “Java”, “Oracle JVM”, etc. Exception: the framework is the product being casked. +* Remove from the end: software framework names such as “Cocoa”, “Qt”, “Gtk”, “Wx”, “Java”, “Oracle JVM”, etc. + + * Exception: the framework is the product being casked. * Remove from the end: localization strings such as “en-US”. -* If the result of that process is a generic term, such as “Macintosh Installer”, try prepending the name of the vendor or developer, followed by a hyphen. If that doesn’t work, then just create the best name you can, based on the vendor’s web page. +* If the result of this process is a generic term, such as “Macintosh Installer”, try prepending the name of the vendor or developer, followed by a hyphen. If that doesn’t work, then just create the best name you can, based on the vendor’s web page. * If the result conflicts with the name of an existing cask, make yours unique by prepending the name of the vendor or developer, followed by a hyphen. Example: [unison.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/u/unison.rb) and [panic-unison.rb](https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/p/panic-unison.rb). @@ -1373,7 +1385,7 @@ Details of software names and brands will inevitably be lost in the conversion t #### Simplified names of `pkg`-based installers -* The Simplified Name of a `pkg` may be more tricky to determine than that of an App. If a `pkg` installs an App, then use that App name with the rules above. If not, just create the best name you can, based on the vendor’s web page. +* The simplified name of a `pkg` may be more tricky to determine than that of an App. If a `pkg` installs an App, then use that App name with the rules above. If not, just create the best name you can, based on the vendor’s web page. #### Simplified names of non-App software @@ -1383,9 +1395,9 @@ Details of software names and brands will inevitably be lost in the conversion t ### Converting the simplified name to a token -The token is the primary identifier for a package in this project. It’s the unique string users refer to when operating on the cask. +As the token is the primary identifier for casks, it’s the unique string users refer to when operating on them. -To convert the App’s Simplified Name (above) to a token: +To convert the App’s simplified name (above) to a token: * Convert all letters to lower case. * Expand the `+` symbol into a separated English word: `-plus-`. @@ -1397,19 +1409,19 @@ To convert the App’s Simplified Name (above) to a token: * Digits stay digits. * Delete any character which is not alphanumeric or a hyphen. * Collapse a series of multiple hyphens into one hyphen. -* Delete a leading or trailing hyphen. +* Delete any leading or trailing hyphens. -### Casks pinned to specific versions +#### Casks pinned to specific versions -Casks pinned to a specific version of the application (i.e. [`carbon-copy-cloner@5`](https://github.com/Homebrew/homebrew-cask/blob/1b8f44198e5e184c597ee07454a1e10f97f36b15/Casks/c/carbon-copy-cloner%405.rb)) should use the same token as the standard cask with a suffix of `@`. For Carbon Copy Cloner (`carbon-copy-cloner`), pinned to version 5, the token should be `carbon-copy-cloner@5`. -### Casks pinned to development channels +#### Casks pinned to development channels -Casks that use an development "channel", such as betas, should use the same token as the standard cask with a suffix of `@`. For Google Chrome (`google-chrome`), using the "beta" channel, the token should be `google-chrome@beta`. +Casks that use a development "channel", such as betas, should use the same token as the standard cask with a suffix of `@`. For Google Chrome (`google-chrome`), using the "beta" channel, the token should be `google-chrome@beta`. ### Cask filenames -Casks are stored in a Ruby file named after the token, with the file extension `.rb`. +Casks are defined in a Ruby file named after the token, with the file extension `.rb`. ### Cask headers @@ -1420,7 +1432,7 @@ The token is also given in the header line for each cask. These illustrate most of the rules for generating a token: | App Name on Disk | Simplified App Name | Cask Token | Filename | -|------------------------|---------------------|------------------|----------------------| +| ---------------------- | ------------------- | ---------------- | -------- | | `Audio Hijack Pro.app` | Audio Hijack Pro | audio-hijack-pro | `audio-hijack-pro.rb` | | `VLC.app` | VLC | vlc | `vlc.rb` | | `BetterTouchTool.app` | BetterTouchTool | bettertouchtool | `bettertouchtool.rb` | @@ -1429,11 +1441,11 @@ These illustrate most of the rules for generating a token: For versioned/development channel casks: -| Standard Cask Token | Derivative | Cask Token | Filename | -|------------------------|---------------------|-----------------------|----------------------| -| `google-chrome` | Beta Channel | `google-chrome@beta` | `google-chrome@beta.rb` | -| `vlc` | Nightly Channel | `vlc@nightly` | `vlc@nightly.rb` | -| `carbon-copy-cloner` | Pinned to version 5 | `carbon-copy-cloner@5`| `carbon-copy-cloner@5.rb` | +| Standard Cask Token | Derivative | Cask Token | Filename | +| -------------------- | ------------------- | ---------------------- | -------- | +| `google-chrome` | Beta channel | `google-chrome@beta` | `google-chrome@beta.rb` | +| `vlc` | Nightly channel | `vlc@nightly` | `vlc@nightly.rb` | +| `carbon-copy-cloner` | Pinned to version 5 | `carbon-copy-cloner@5` | `carbon-copy-cloner@5.rb` | ### Special affixes @@ -1441,7 +1453,7 @@ A few situations require a prefix or suffix to be added to the token. #### Token overlap -When the token for a new cask would otherwise conflict with the token of an already existing cask, the nature of that overlap dictates the token, potentially for both casks. See [Forks and Apps with Conflicting Names](Acceptable-Casks.md#forks-and-apps-with-conflicting-names) for information on how to proceed. +When the token for a new cask would otherwise conflict with the token of an already existing cask, the nature of that overlap dictates the token, potentially for both casks. See [Forks and apps with conflicting names](Acceptable-Casks.md#forks-and-apps-with-conflicting-names) for information on how to proceed. #### Potentially misleading name From d4c02e64e50f3d8e9a08d074a5b1b2f59f3bb13d Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Sun, 18 May 2025 00:36:03 -0400 Subject: [PATCH 18/66] Cask-Cookbook: reorder some sections --- docs/Cask-Cookbook.md | 108 +++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/docs/Cask-Cookbook.md b/docs/Cask-Cookbook.md index 83be31c53c..7d750b8ac4 100644 --- a/docs/Cask-Cookbook.md +++ b/docs/Cask-Cookbook.md @@ -305,49 +305,6 @@ caveats do end ``` -### Stanza: `deprecate!` / `disable!` - -`deprecate!` and `disable!` are used to declare that a cask is no longer functional or supported. -Casks that contain a `deprecate!` stanza can still be installed, but will print a warning message when they are installed or upgraded. -Casks that contain a `disable!` stanza cannot be installed or upgraded and will print an error message. - -The syntax for both stanzas is the same: - -```ruby -deprecate! date: "YYYY-MM-DD", because: "is ..." -disable! date: "YYYY-MM-DD", because: "is ..." - -# Or with a preset reason and suggested replacement (see the parameter sections below) -deprecate! date: "YYYY-MM-DD", because: :discontinued, replacement_formula: "another" -disable! date: "YYYY-MM-DD", because: :unmaintained, replacement_cask: "alternative" -``` - -#### `date:` parameter - -The `date:` parameter controls when the deprecation or disabling will take effect. -Casks that have a `deprecate!` stanza with a date in the future will not be treated as being deprecated until that date. -Casks that have a `disable!` stanza with a date in the future will be automatically deprecated until that date, at which point they will become disabled. - -#### `because:` parameter - -The `because:` parameter accepts a reason for the cask being deprecated or disabled. -The info message will be ` is deprecated because it !`, so format the reason to fit that sentence. -For example, `because: "is broken"` will result in ` is deprecated because it is broken!`. - -The `because:` parameter can also accept a symbol that corresponds to a preset reason, for example: - -```ruby -deprecate! date: "YYYY-MM-DD", because: :discontinued -``` - -A complete list of allowable symbols can be found in the [`DeprecateDisable` module](https://rubydoc.brew.sh/DeprecateDisable) documentation. - -#### `replacement_formula:` / `replacement_cask:` parameter - -The `replacement_formula:` and `replacement_cask:` parameters accept a string for suggesting a replacement formula or cask to the user. - -Refer to [Deprecating, Disabling and Removing Casks](Deprecating-Disabling-and-Removing-Casks.md) for more information about the deprecation process for casks. - ### Stanza: `conflicts_with` `conflicts_with` is used to declare conflicts that prevent a cask from installing or working correctly. @@ -378,6 +335,14 @@ conflicts_with formula: "macvim" `depends_on` is used to declare dependencies and requirements for a cask. `depends_on` is not consulted until `install` is attempted. +| key | description | +| ---------- | ----------- | +| `cask:` | required Homebrew cask tokens as string or array | +| `formula:` | required Homebrew formula names as string or array | +| `macos:` | macOS release requirements as symbol, array or string comparison expression | +| `arch:` | hardware requirements as symbol or array | +| `java:` | *stub - not yet functional* | + #### `depends_on` *cask* The value should be one or more tokens of casks needed by the current cask, as a string or array of strings. @@ -445,15 +410,48 @@ depends_on arch: :x86_64 # same meaning as above depends_on arch: [:x86_64] # same meaning as above ``` -#### `depends_on` parameters +### Stanza: `deprecate!` / `disable!` -| key | description | -| ---------- | ----------- | -| `formula:` | required Homebrew formula names as string or array | -| `cask:` | required Homebrew cask tokens as string or array | -| `macos:` | macOS release requirements as symbol, array or string comparison expression | -| `arch:` | hardware requirements as symbol or array | -| `java:` | *stub - not yet functional* | +`deprecate!` and `disable!` are used to declare that a cask is no longer functional or supported. +Casks that contain a `deprecate!` stanza can still be installed, but will print a warning message when they are installed or upgraded. +Casks that contain a `disable!` stanza cannot be installed or upgraded and will print an error message. + +The syntax for both stanzas is the same: + +```ruby +deprecate! date: "YYYY-MM-DD", because: "is ..." +disable! date: "YYYY-MM-DD", because: "is ..." + +# Or with a preset reason and suggested replacement (see the parameter sections below) +deprecate! date: "YYYY-MM-DD", because: :discontinued, replacement_formula: "another" +disable! date: "YYYY-MM-DD", because: :unmaintained, replacement_cask: "alternative" +``` + +#### `date:` parameter + +The `date:` parameter controls when the deprecation or disabling will take effect. +Casks that have a `deprecate!` stanza with a date in the future will not be treated as being deprecated until that date. +Casks that have a `disable!` stanza with a date in the future will be automatically deprecated until that date, at which point they will become disabled. + +#### `because:` parameter + +The `because:` parameter accepts a reason for the cask being deprecated or disabled. +The info message will be ` is deprecated because it !`, so format the reason to fit that sentence. +For example, `because: "is broken"` will result in ` is deprecated because it is broken!`. + +The `because:` parameter can also accept a symbol that corresponds to a preset reason, for example: + +```ruby +deprecate! date: "YYYY-MM-DD", because: :discontinued +``` + +A complete list of allowable symbols can be found in the [`DeprecateDisable` module](https://rubydoc.brew.sh/DeprecateDisable) documentation. + +#### `replacement_formula:` / `replacement_cask:` parameter + +The `replacement_formula:` and `replacement_cask:` parameters accept a string for suggesting a replacement formula or cask to the user. + +Refer to [Deprecating, Disabling and Removing Casks](Deprecating-Disabling-and-Removing-Casks.md) for more information about the deprecation process for casks. ### Stanza: `desc` @@ -756,10 +754,6 @@ The value of `suite` is never an `.app` bundle, but a plain directory. > If you cannot design a working `uninstall` stanza, please submit your cask anyway. The maintainers can help you write an `uninstall` stanza, just ask! -#### `uninstall pkgutil:` is the easiest and most useful - -The easiest and most useful `uninstall` directive is [`pkgutil:`](#uninstall-pkgutil). It should cover most use cases. - #### `uninstall` is required for casks that install using `pkg` or `installer` For most casks, uninstall actions are determined automatically, and an explicit `uninstall` stanza is not needed. However, a cask which uses the [`pkg`](#stanza-pkg) or [`installer`](#stanza-installer) stanzas will **not** know how to uninstall correctly unless an `uninstall` stanza is given. @@ -772,6 +766,10 @@ The `uninstall` stanza is available for other artifact types, and is useful for Since `pkg` installers can do arbitrary things, different techniques are needed to uninstall in each case. You may need to specify one, or several, of the following key-value pairs as arguments to `uninstall`. +##### `uninstall pkgutil:` is the easiest and most useful + +The easiest and most useful `uninstall` directive is [`pkgutil:`](#uninstall-pkgutil). It should cover most use cases. + #### Summary of keys * **`early_script:`** (string or hash) - like [`script:`](#uninstall-script), but runs early (for special cases, best avoided) From bdbd39bb09d778c7c611659efa6cdd21d43f8ec7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 18:03:05 +0000 Subject: [PATCH 19/66] build(deps): bump the sorbet group in /Library/Homebrew with 4 updates Bumps the sorbet group in /Library/Homebrew with 4 updates: [sorbet-static-and-runtime](https://github.com/sorbet/sorbet), [sorbet-runtime](https://github.com/sorbet/sorbet), [sorbet](https://github.com/sorbet/sorbet) and [sorbet-static](https://github.com/sorbet/sorbet). Updates `sorbet-static-and-runtime` from 0.5.12115 to 0.5.12117 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet-runtime` from 0.5.12115 to 0.5.12117 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet` from 0.5.12115 to 0.5.12117 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) Updates `sorbet-static` from 0.5.12115 to 0.5.12117 - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-static-and-runtime dependency-version: 0.5.12117 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet-runtime dependency-version: 0.5.12117 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet dependency-version: 0.5.12117 dependency-type: indirect update-type: version-update:semver-patch dependency-group: sorbet - dependency-name: sorbet-static dependency-version: 0.5.12117 dependency-type: indirect update-type: version-update:semver-patch dependency-group: sorbet ... Signed-off-by: dependabot[bot] --- Library/Homebrew/Gemfile.lock | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index f7b378ce74..54f55e2fa1 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -122,15 +122,15 @@ GEM simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) simpleidn (0.2.3) - sorbet (0.5.12115) - sorbet-static (= 0.5.12115) - sorbet-runtime (0.5.12115) - sorbet-static (0.5.12115-aarch64-linux) - sorbet-static (0.5.12115-universal-darwin) - sorbet-static (0.5.12115-x86_64-linux) - sorbet-static-and-runtime (0.5.12115) - sorbet (= 0.5.12115) - sorbet-runtime (= 0.5.12115) + sorbet (0.5.12117) + sorbet-static (= 0.5.12117) + sorbet-runtime (0.5.12117) + sorbet-static (0.5.12117-aarch64-linux) + sorbet-static (0.5.12117-universal-darwin) + sorbet-static (0.5.12117-x86_64-linux) + sorbet-static-and-runtime (0.5.12117) + sorbet (= 0.5.12117) + sorbet-runtime (= 0.5.12117) spoom (1.6.3) erubi (>= 1.10.0) prism (>= 0.28.0) @@ -162,7 +162,6 @@ GEM PLATFORMS aarch64-linux - arm-linux arm64-darwin x86_64-darwin x86_64-linux From bfc36c00d80fe93bd996b69ba591854f1df1490a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 18:45:12 +0000 Subject: [PATCH 20/66] build(deps): bump influxdb3-python Bumps [influxdb3-python](https://github.com/InfluxCommunity/influxdb3-python) from 0.12.0 to 0.13.0. - [Release notes](https://github.com/InfluxCommunity/influxdb3-python/releases) - [Changelog](https://github.com/InfluxCommunity/influxdb3-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/InfluxCommunity/influxdb3-python/compare/v0.12.0...v0.13.0) --- updated-dependencies: - dependency-name: influxdb3-python dependency-version: 0.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Library/Homebrew/formula-analytics/requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/formula-analytics/requirements.txt b/Library/Homebrew/formula-analytics/requirements.txt index 8bbb4e8a5a..36bad59acd 100644 --- a/Library/Homebrew/formula-analytics/requirements.txt +++ b/Library/Homebrew/formula-analytics/requirements.txt @@ -8,9 +8,9 @@ certifi==2025.4.26 \ --hash=sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6 \ --hash=sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3 # via influxdb3-python -influxdb3-python==0.12.0 \ - --hash=sha256:991f756528280b376db162e26ad80096168917f294d62f449a70257e65014c03 \ - --hash=sha256:d82ec4193257e49ba7fee1dee940c951c949a8557d0cf2f7b9f817f940ebcf34 +influxdb3-python==0.13.0 \ + --hash=sha256:616ee767286a81b6f575ea3de097bc095db724262586231ca8d7567dd2377a30 \ + --hash=sha256:c039638fcb44dd7c9433ab19e8f05bb782fa13989cb8c74d90e1291ebcc67b3b # via -r requirements.in pyarrow==20.0.0 \ --hash=sha256:00138f79ee1b5aca81e2bdedb91e3739b987245e11fa3c826f9e57c5d102fb75 \ From 2decd2158df8234f29989539785b80ec806ea8ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 18:45:25 +0000 Subject: [PATCH 21/66] build(deps): bump setuptools in /Library/Homebrew/formula-analytics Bumps [setuptools](https://github.com/pypa/setuptools) from 80.7.1 to 80.8.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](https://github.com/pypa/setuptools/compare/v80.7.1...v80.8.0) --- updated-dependencies: - dependency-name: setuptools dependency-version: 80.8.0 dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Library/Homebrew/formula-analytics/requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/formula-analytics/requirements.txt b/Library/Homebrew/formula-analytics/requirements.txt index 8bbb4e8a5a..ed87c356c9 100644 --- a/Library/Homebrew/formula-analytics/requirements.txt +++ b/Library/Homebrew/formula-analytics/requirements.txt @@ -91,7 +91,7 @@ urllib3==2.4.0 \ # via influxdb3-python # The following packages are considered to be unsafe in a requirements file: -setuptools==80.7.1 \ - --hash=sha256:ca5cc1069b85dc23070a6628e6bcecb3292acac802399c7f8edc0100619f9009 \ - --hash=sha256:f6ffc5f0142b1bd8d0ca94ee91b30c0ca862ffd50826da1ea85258a06fd94552 +setuptools==80.8.0 \ + --hash=sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257 \ + --hash=sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0 # via influxdb3-python From 8b22e8a95fada40021d44b0f5f8f7894ab5d1406 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 19:11:52 +0000 Subject: [PATCH 22/66] build(deps-dev): bump ruby-lsp in /Library/Homebrew Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.23.20 to 0.23.21. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.23.20...v0.23.21) --- updated-dependencies: - dependency-name: ruby-lsp dependency-version: 0.23.21 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Library/Homebrew/Gemfile.lock | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index f7b378ce74..57a79e94ed 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -104,7 +104,7 @@ GEM rubocop (~> 1.72, >= 1.72.1) rubocop-sorbet (0.10.0) rubocop (>= 1) - ruby-lsp (0.23.20) + ruby-lsp (0.23.21) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 4) @@ -162,7 +162,6 @@ GEM PLATFORMS aarch64-linux - arm-linux arm64-darwin x86_64-darwin x86_64-linux From c0f4e113705fcf520d7d3f3b0ff1bfa5232902c2 Mon Sep 17 00:00:00 2001 From: Patrick Linnane Date: Tue, 20 May 2025 12:37:49 -0700 Subject: [PATCH 23/66] docs/FAQ: fix broken link Signed-off-by: Patrick Linnane --- docs/FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index 99cb87f333..7ea38280ca 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -222,7 +222,7 @@ There are a few ideas to fix this problem: So we let software be. Anything installed with Homebrew Cask should behave the same as if it were installed manually. But since we also want to support software that doesn’t self-upgrade, we add [`auto_updates true`](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/a/alfred.rb#L18) to casks for software that does, which excludes them from `brew upgrade`. -Casks which use [`version :latest`](https://docs.brew.sh/Cask-Cookbook#version-latest) are also excluded, because we have no way to track their installed version. It helps to ask the developers of such software to provide versioned releases (i.e. include the version in the path of the download `url`). +Casks which use `version :latest` are also excluded, because we have no way to track their installed version. It helps to ask the developers of such software to provide versioned releases (i.e. include the version in the path of the download `url`). If you still want to force software to be upgraded via Homebrew Cask, you can reference it specifically in the `upgrade` command: From c2fac2047dfea266d98d473a09c258ddb1dfbece Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Tue, 20 May 2025 19:41:14 +0000 Subject: [PATCH 24/66] brew vendor-gems: commit updates. --- Library/Homebrew/Gemfile.lock | 1 + Library/Homebrew/vendor/bundle/bundler/setup.rb | 8 ++++---- .../lib/sorbet-runtime.rb | 0 .../lib/types/_types.rb | 0 .../lib/types/abstract_utils.rb | 0 .../lib/types/boolean.rb | 0 .../lib/types/compatibility_patches.rb | 0 .../lib/types/configuration.rb | 0 .../lib/types/enum.rb | 0 .../lib/types/generic.rb | 0 .../lib/types/helpers.rb | 0 .../lib/types/non_forcing_constants.rb | 0 .../lib/types/private/abstract/data.rb | 0 .../lib/types/private/abstract/declare.rb | 0 .../lib/types/private/abstract/hooks.rb | 0 .../lib/types/private/abstract/validate.rb | 0 .../lib/types/private/caller_utils.rb | 0 .../lib/types/private/casts.rb | 0 .../lib/types/private/class_utils.rb | 0 .../lib/types/private/decl_state.rb | 0 .../lib/types/private/final.rb | 0 .../lib/types/private/methods/_methods.rb | 0 .../lib/types/private/methods/call_validation.rb | 0 .../lib/types/private/methods/call_validation_2_6.rb | 0 .../lib/types/private/methods/call_validation_2_7.rb | 0 .../lib/types/private/methods/decl_builder.rb | 0 .../lib/types/private/methods/modes.rb | 0 .../lib/types/private/methods/signature.rb | 0 .../lib/types/private/methods/signature_validation.rb | 0 .../lib/types/private/mixins/mixins.rb | 0 .../lib/types/private/retry.rb | 0 .../lib/types/private/runtime_levels.rb | 0 .../lib/types/private/sealed.rb | 0 .../lib/types/private/types/not_typed.rb | 0 .../lib/types/private/types/simple_pair_union.rb | 0 .../lib/types/private/types/string_holder.rb | 0 .../lib/types/private/types/type_alias.rb | 0 .../lib/types/private/types/void.rb | 0 .../lib/types/props/_props.rb | 0 .../lib/types/props/constructor.rb | 0 .../lib/types/props/custom_type.rb | 0 .../lib/types/props/decorator.rb | 0 .../lib/types/props/errors.rb | 0 .../lib/types/props/generated_code_validation.rb | 0 .../lib/types/props/has_lazily_specialized_methods.rb | 0 .../lib/types/props/optional.rb | 0 .../lib/types/props/plugin.rb | 0 .../lib/types/props/pretty_printable.rb | 0 .../lib/types/props/private/apply_default.rb | 0 .../lib/types/props/private/deserializer_generator.rb | 0 .../lib/types/props/private/parser.rb | 0 .../lib/types/props/private/serde_transform.rb | 0 .../lib/types/props/private/serializer_generator.rb | 0 .../lib/types/props/private/setter_factory.rb | 0 .../lib/types/props/serializable.rb | 0 .../lib/types/props/type_validation.rb | 0 .../lib/types/props/utils.rb | 0 .../lib/types/props/weak_constructor.rb | 0 .../lib/types/sig.rb | 0 .../lib/types/struct.rb | 0 .../lib/types/types/anything.rb | 0 .../lib/types/types/attached_class.rb | 0 .../lib/types/types/base.rb | 0 .../lib/types/types/class_of.rb | 0 .../lib/types/types/enum.rb | 0 .../lib/types/types/fixed_array.rb | 0 .../lib/types/types/fixed_hash.rb | 0 .../lib/types/types/intersection.rb | 0 .../lib/types/types/noreturn.rb | 0 .../lib/types/types/proc.rb | 0 .../lib/types/types/self_type.rb | 0 .../lib/types/types/simple.rb | 0 .../lib/types/types/t_enum.rb | 0 .../lib/types/types/type_member.rb | 0 .../lib/types/types/type_parameter.rb | 0 .../lib/types/types/type_template.rb | 0 .../lib/types/types/type_variable.rb | 0 .../lib/types/types/typed_array.rb | 0 .../lib/types/types/typed_class.rb | 0 .../lib/types/types/typed_enumerable.rb | 0 .../lib/types/types/typed_enumerator.rb | 0 .../lib/types/types/typed_enumerator_chain.rb | 0 .../lib/types/types/typed_enumerator_lazy.rb | 0 .../lib/types/types/typed_hash.rb | 0 .../lib/types/types/typed_range.rb | 0 .../lib/types/types/typed_set.rb | 0 .../lib/types/types/union.rb | 0 .../lib/types/types/untyped.rb | 0 .../lib/types/utils.rb | 0 89 files changed, 5 insertions(+), 4 deletions(-) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/sorbet-runtime.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/_types.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/abstract_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/boolean.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/compatibility_patches.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/configuration.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/generic.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/helpers.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/non_forcing_constants.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/abstract/data.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/abstract/declare.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/abstract/hooks.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/abstract/validate.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/caller_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/casts.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/class_utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/decl_state.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/final.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/_methods.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/call_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/call_validation_2_6.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/call_validation_2_7.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/decl_builder.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/modes.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/signature.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/methods/signature_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/mixins/mixins.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/retry.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/runtime_levels.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/sealed.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/types/not_typed.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/types/simple_pair_union.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/types/string_holder.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/types/type_alias.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/private/types/void.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/_props.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/constructor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/custom_type.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/decorator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/errors.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/generated_code_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/has_lazily_specialized_methods.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/optional.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/plugin.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/pretty_printable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/apply_default.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/deserializer_generator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/parser.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/serde_transform.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/serializer_generator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/private/setter_factory.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/serializable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/type_validation.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/utils.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/props/weak_constructor.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/sig.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/struct.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/anything.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/attached_class.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/base.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/class_of.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/fixed_array.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/fixed_hash.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/intersection.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/noreturn.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/proc.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/self_type.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/simple.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/t_enum.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/type_member.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/type_parameter.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/type_template.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/type_variable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_array.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_class.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_enumerable.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_enumerator.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_enumerator_chain.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_enumerator_lazy.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_hash.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_range.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/typed_set.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/union.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/types/untyped.rb (100%) rename Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/{sorbet-runtime-0.5.12115 => sorbet-runtime-0.5.12117}/lib/types/utils.rb (100%) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index 54f55e2fa1..af8edbd660 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -162,6 +162,7 @@ GEM PLATFORMS aarch64-linux + arm-linux arm64-darwin x86_64-darwin x86_64-linux diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index dd4449c3ce..220692194a 100644 --- a/Library/Homebrew/vendor/bundle/bundler/setup.rb +++ b/Library/Homebrew/vendor/bundle/bundler/setup.rb @@ -78,7 +78,7 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rainbow-3.1.1/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/rbs-3.9.4") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbs-3.9.4/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12115/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12117/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.3.3/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/redcarpet-3.6.1") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/redcarpet-3.6.1/lib") @@ -108,9 +108,9 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov_json_formatter-0.1.4/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-0.22.0/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-cobertura-2.1.0/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12115-universal-darwin/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12115/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12115/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12117-universal-darwin/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12117/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12117/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.3.2/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.6.3/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.27") diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/sorbet-runtime.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/sorbet-runtime.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/sorbet-runtime.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/sorbet-runtime.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/_types.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/_types.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/_types.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/_types.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/abstract_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/abstract_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/abstract_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/abstract_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/boolean.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/boolean.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/boolean.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/boolean.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/compatibility_patches.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/compatibility_patches.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/compatibility_patches.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/compatibility_patches.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/configuration.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/configuration.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/configuration.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/configuration.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/generic.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/generic.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/generic.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/generic.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/helpers.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/helpers.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/helpers.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/helpers.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/non_forcing_constants.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/non_forcing_constants.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/non_forcing_constants.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/non_forcing_constants.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/data.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/data.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/data.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/data.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/declare.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/declare.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/declare.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/declare.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/hooks.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/hooks.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/hooks.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/hooks.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/validate.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/validate.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/abstract/validate.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/abstract/validate.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/caller_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/caller_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/caller_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/caller_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/casts.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/casts.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/casts.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/casts.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/class_utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/class_utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/class_utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/class_utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/decl_state.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/decl_state.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/decl_state.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/decl_state.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/final.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/final.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/final.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/final.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/_methods.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/_methods.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/_methods.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/_methods.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_6.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation_2_6.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_6.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation_2_6.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_7.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation_2_7.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/call_validation_2_7.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/call_validation_2_7.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/decl_builder.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/decl_builder.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/decl_builder.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/decl_builder.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/modes.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/modes.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/modes.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/modes.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/signature.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/signature.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/signature_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/methods/signature_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/methods/signature_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/mixins/mixins.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/mixins/mixins.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/mixins/mixins.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/mixins/mixins.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/retry.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/retry.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/retry.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/retry.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/runtime_levels.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/runtime_levels.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/runtime_levels.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/runtime_levels.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/sealed.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/sealed.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/sealed.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/sealed.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/not_typed.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/not_typed.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/not_typed.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/not_typed.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/simple_pair_union.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/simple_pair_union.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/simple_pair_union.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/simple_pair_union.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/string_holder.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/string_holder.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/string_holder.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/string_holder.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/type_alias.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/type_alias.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/type_alias.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/type_alias.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/void.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/void.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/private/types/void.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/private/types/void.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/_props.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/_props.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/_props.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/_props.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/constructor.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/constructor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/constructor.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/constructor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/custom_type.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/custom_type.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/custom_type.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/custom_type.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/decorator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/decorator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/decorator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/decorator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/errors.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/errors.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/errors.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/errors.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/generated_code_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/generated_code_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/generated_code_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/generated_code_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/has_lazily_specialized_methods.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/has_lazily_specialized_methods.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/has_lazily_specialized_methods.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/has_lazily_specialized_methods.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/optional.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/optional.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/optional.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/optional.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/plugin.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/plugin.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/plugin.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/plugin.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/pretty_printable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/pretty_printable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/pretty_printable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/pretty_printable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/apply_default.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/apply_default.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/apply_default.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/apply_default.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/deserializer_generator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/deserializer_generator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/deserializer_generator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/deserializer_generator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/parser.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/parser.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/parser.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/parser.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serde_transform.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/serde_transform.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serde_transform.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/serde_transform.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serializer_generator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/serializer_generator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/serializer_generator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/serializer_generator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/setter_factory.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/setter_factory.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/private/setter_factory.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/private/setter_factory.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/serializable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/serializable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/serializable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/serializable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/type_validation.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/type_validation.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/type_validation.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/type_validation.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/utils.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/weak_constructor.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/weak_constructor.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/props/weak_constructor.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/props/weak_constructor.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/sig.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/sig.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/sig.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/sig.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/struct.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/struct.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/struct.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/struct.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/anything.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/anything.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/anything.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/anything.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/attached_class.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/attached_class.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/attached_class.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/attached_class.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/base.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/base.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/base.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/base.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/class_of.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/class_of.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/class_of.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/class_of.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_array.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/fixed_array.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_array.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/fixed_array.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_hash.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/fixed_hash.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/fixed_hash.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/fixed_hash.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/intersection.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/intersection.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/intersection.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/intersection.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/noreturn.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/noreturn.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/noreturn.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/noreturn.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/proc.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/proc.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/proc.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/proc.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/self_type.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/self_type.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/self_type.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/self_type.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/simple.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/simple.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/simple.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/simple.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/t_enum.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/t_enum.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/t_enum.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/t_enum.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_member.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_member.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_member.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_member.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_parameter.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_parameter.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_parameter.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_parameter.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_template.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_template.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_template.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_template.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_variable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_variable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/type_variable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/type_variable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_array.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_array.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_array.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_array.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_class.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_class.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_class.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_class.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerable.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerable.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerable.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerable.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_chain.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator_chain.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_chain.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator_chain.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_lazy.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator_lazy.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_enumerator_lazy.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_enumerator_lazy.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_hash.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_hash.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_hash.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_hash.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_range.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_range.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_range.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_range.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_set.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_set.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/typed_set.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/typed_set.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/union.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/union.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/union.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/union.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/untyped.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/untyped.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/types/untyped.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/types/untyped.rb diff --git a/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/utils.rb b/Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/utils.rb similarity index 100% rename from Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12115/lib/types/utils.rb rename to Library/Homebrew/vendor/bundle/ruby/3.4.0/gems/sorbet-runtime-0.5.12117/lib/types/utils.rb From 8b643d7acf6d97e8ed2c7fa44c5483f6077e1ca7 Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Tue, 20 May 2025 19:41:23 +0000 Subject: [PATCH 25/66] brew vendor-gems: commit updates. --- Library/Homebrew/Gemfile.lock | 1 + Library/Homebrew/vendor/bundle/bundler/setup.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock index 57a79e94ed..cda9d7755b 100644 --- a/Library/Homebrew/Gemfile.lock +++ b/Library/Homebrew/Gemfile.lock @@ -162,6 +162,7 @@ GEM PLATFORMS aarch64-linux + arm-linux arm64-darwin x86_64-darwin x86_64-linux diff --git a/Library/Homebrew/vendor/bundle/bundler/setup.rb b/Library/Homebrew/vendor/bundle/bundler/setup.rb index dd4449c3ce..337a674db7 100644 --- a/Library/Homebrew/vendor/bundle/bundler/setup.rb +++ b/Library/Homebrew/vendor/bundle/bundler/setup.rb @@ -100,7 +100,7 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-performance-1.25.0/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-rspec-3.6.0/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-sorbet-0.10.0/lib") -$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-lsp-0.23.20/lib") +$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-lsp-0.23.21/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-macho-4.1.0/lib") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/ruby-prof-1.7.1") $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-prof-1.7.1/lib") From 87e4dfcd9f25622039dbf04acdf33ba4fcd50108 Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Tue, 20 May 2025 19:41:32 +0000 Subject: [PATCH 26/66] Update RBI files for ruby-lsp. Autogenerated by the [vendor-gems](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/vendor-gems.yml) workflow. --- .../rbi/gems/{ruby-lsp@0.23.20.rbi => ruby-lsp@0.23.21.rbi} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Library/Homebrew/sorbet/rbi/gems/{ruby-lsp@0.23.20.rbi => ruby-lsp@0.23.21.rbi} (100%) diff --git a/Library/Homebrew/sorbet/rbi/gems/ruby-lsp@0.23.20.rbi b/Library/Homebrew/sorbet/rbi/gems/ruby-lsp@0.23.21.rbi similarity index 100% rename from Library/Homebrew/sorbet/rbi/gems/ruby-lsp@0.23.20.rbi rename to Library/Homebrew/sorbet/rbi/gems/ruby-lsp@0.23.21.rbi From 38bad25a86106848fbcffe15f46ef667ffe23396 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Tue, 20 May 2025 20:56:53 -0700 Subject: [PATCH 27/66] Include annotations in typecheck updates --- Library/Homebrew/dev-cmd/typecheck.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/Library/Homebrew/dev-cmd/typecheck.rb b/Library/Homebrew/dev-cmd/typecheck.rb index 3f16dae317..9cf201b8bc 100644 --- a/Library/Homebrew/dev-cmd/typecheck.rb +++ b/Library/Homebrew/dev-cmd/typecheck.rb @@ -60,6 +60,7 @@ module Homebrew HOMEBREW_LIBRARY_PATH.cd do if update workers = args.debug? ? ["--workers=1"] : [] + safe_system "bundle", "exec", "tapioca", "annotations" safe_system "bundle", "exec", "tapioca", "dsl", *workers # Prefer adding args here: Library/Homebrew/sorbet/tapioca/config.yml tapioca_args = args.update_all? ? ["--all"] : [] From 1d4f1481ae7293bc1cf3e75b23dd89ea7df491a2 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Tue, 20 May 2025 20:57:13 -0700 Subject: [PATCH 28/66] brew tc --update --- .../sorbet/rbi/annotations/.gitattributes | 1 + .../sorbet/rbi/annotations/minitest.rbi | 119 ++++++++ .../sorbet/rbi/annotations/rainbow.rbi | 269 ++++++++++++++++++ 3 files changed, 389 insertions(+) create mode 100644 Library/Homebrew/sorbet/rbi/annotations/.gitattributes create mode 100644 Library/Homebrew/sorbet/rbi/annotations/minitest.rbi create mode 100644 Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi diff --git a/Library/Homebrew/sorbet/rbi/annotations/.gitattributes b/Library/Homebrew/sorbet/rbi/annotations/.gitattributes new file mode 100644 index 0000000000..d2eacd2c61 --- /dev/null +++ b/Library/Homebrew/sorbet/rbi/annotations/.gitattributes @@ -0,0 +1 @@ +**/*.rbi linguist-vendored=true diff --git a/Library/Homebrew/sorbet/rbi/annotations/minitest.rbi b/Library/Homebrew/sorbet/rbi/annotations/minitest.rbi new file mode 100644 index 0000000000..64a89286ee --- /dev/null +++ b/Library/Homebrew/sorbet/rbi/annotations/minitest.rbi @@ -0,0 +1,119 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module Minitest::Assertions + sig { params(test: T.anything, msg: T.anything).returns(TrueClass) } + def assert(test, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_empty(obj, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def assert_equal(exp, act, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) } + def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end + + sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) } + def assert_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end + + sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_includes(collection, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_instance_of(cls, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_kind_of(cls, obj, msg = nil); end + + sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(MatchData) } + def assert_match(matcher, obj, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_nil(obj, msg = nil); end + + sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) } + def assert_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end + + sig { params(stdout: T.nilable(T.any(String, Regexp)), stderr: T.nilable(T.any(String, Regexp)), block: T.proc.void).returns(T::Boolean) } + def assert_output(stdout = nil, stderr = nil, &block); end + + sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) } + def assert_path_exists(path, msg = nil); end + + sig { params(block: T.proc.void).returns(TrueClass) } + def assert_pattern(&block); end + + sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) } + def assert_predicate(o1, op, msg = nil); end + + sig { params(exp: NilClass, block: T.proc.void).returns(StandardError) } + sig { type_parameters(:T).params(exp: T.any(T::Class[T.type_parameter(:T)], Regexp, String), block: T.proc.void).returns(T.type_parameter(:T)) } + def assert_raises(*exp, &block); end + + sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) } + def assert_respond_to(obj, meth, msg = nil, include_all: false); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def assert_same(exp, act, msg = nil); end + + sig { params(send_ary: T::Array[T.anything], m: T.anything).returns(T::Boolean) } + def assert_send(send_ary, m = nil); end + + sig { params(block: T.proc.void).returns(T::Boolean) } + def assert_silent(&block); end + + sig { params(sym: Symbol, msg: T.anything, block: T.proc.void).returns(T.anything) } + def assert_throws(sym, msg = nil, &block); end + + sig { params(test: T.anything, msg: T.anything).returns(TrueClass) } + def refute(test, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_empty(obj, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def refute_equal(exp, act, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) } + def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end + + sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) } + def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end + + sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_includes(collection, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_instance_of(cls, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_kind_of(cls, obj, msg = nil); end + + sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_match(matcher, obj, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_nil(obj, msg = nil); end + + sig { params(block: T.proc.void).returns(TrueClass) } + def refute_pattern(&block); end + + sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) } + def refute_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end + + sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) } + def refute_path_exists(path, msg = nil); end + + sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) } + def refute_predicate(o1, op, msg = nil); end + + sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) } + def refute_respond_to(obj, meth, msg = nil, include_all: false); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def refute_same(exp, act, msg = nil); end +end diff --git a/Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi b/Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi new file mode 100644 index 0000000000..0d2cb4e48a --- /dev/null +++ b/Library/Homebrew/sorbet/rbi/annotations/rainbow.rbi @@ -0,0 +1,269 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module Rainbow + # @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12 + sig { returns(T::Boolean) } + attr_accessor :enabled + + class Color + sig { returns(Symbol) } + attr_reader :ground + + sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) } + def self.build(ground, values); end + + sig { params(hex: String).returns([Integer, Integer, Integer]) } + def self.parse_hex_color(hex); end + + class Indexed < Rainbow::Color + sig { returns(Integer) } + attr_reader :num + + sig { params(ground: Symbol, num: Integer).void } + def initialize(ground, num); end + + sig { returns(T::Array[Integer]) } + def codes; end + end + + class Named < Rainbow::Color::Indexed + NAMES = T.let(nil, T::Hash[Symbol, Integer]) + + sig { params(ground: Symbol, name: Symbol).void } + def initialize(ground, name); end + + sig { returns(T::Array[Symbol]) } + def self.color_names; end + + sig { returns(String) } + def self.valid_names; end + end + + class RGB < Rainbow::Color::Indexed + sig { returns(Integer) } + attr_reader :r, :g, :b + + sig { params(ground: Symbol, values: Integer).void } + def initialize(ground, *values); end + + sig { returns(T::Array[Integer]) } + def codes; end + + sig { params(value: Numeric).returns(Integer) } + def self.to_ansi_domain(value); end + end + + class X11Named < Rainbow::Color::RGB + include Rainbow::X11ColorNames + + sig { params(ground: Symbol, name: Symbol).void } + def initialize(ground, name); end + + sig { returns(T::Array[Symbol]) } + def self.color_names; end + + sig { returns(String) } + def self.valid_names; end + end + end + + sig { returns(Wrapper) } + def self.global; end + + sig { returns(T::Boolean) } + def self.enabled; end + + sig { params(value: T::Boolean).returns(T::Boolean) } + def self.enabled=(value); end + + sig { params(string: String).returns(String) } + def self.uncolor(string); end + + class NullPresenter < String + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def color(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def foreground(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def fg(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def background(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def bg(*values); end + + sig { returns(NullPresenter) } + def reset; end + + sig { returns(NullPresenter) } + def bright; end + + sig { returns(NullPresenter) } + def faint; end + + sig { returns(NullPresenter) } + def italic; end + + sig { returns(NullPresenter) } + def underline; end + + sig { returns(NullPresenter) } + def blink; end + + sig { returns(NullPresenter) } + def inverse; end + + sig { returns(NullPresenter) } + def hide; end + + sig { returns(NullPresenter) } + def cross_out; end + + sig { returns(NullPresenter) } + def black; end + + sig { returns(NullPresenter) } + def red; end + + sig { returns(NullPresenter) } + def green; end + + sig { returns(NullPresenter) } + def yellow; end + + sig { returns(NullPresenter) } + def blue; end + + sig { returns(NullPresenter) } + def magenta; end + + sig { returns(NullPresenter) } + def cyan; end + + sig { returns(NullPresenter) } + def white; end + + sig { returns(NullPresenter) } + def bold; end + + sig { returns(NullPresenter) } + def dark; end + + sig { returns(NullPresenter) } + def strike; end + end + + class Presenter < String + TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer]) + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def color(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def foreground(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def fg(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def background(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def bg(*values); end + + sig { returns(Presenter) } + def reset; end + + sig { returns(Presenter) } + def bright; end + + sig { returns(Presenter) } + def faint; end + + sig { returns(Presenter) } + def italic; end + + sig { returns(Presenter) } + def underline; end + + sig { returns(Presenter) } + def blink; end + + sig { returns(Presenter) } + def inverse; end + + sig { returns(Presenter) } + def hide; end + + sig { returns(Presenter) } + def cross_out; end + + sig { returns(Presenter) } + def black; end + + sig { returns(Presenter) } + def red; end + + sig { returns(Presenter) } + def green; end + + sig { returns(Presenter) } + def yellow; end + + sig { returns(Presenter) } + def blue; end + + sig { returns(Presenter) } + def magenta; end + + sig { returns(Presenter) } + def cyan; end + + sig { returns(Presenter) } + def white; end + + sig { returns(Presenter) } + def bold; end + + sig { returns(Presenter) } + def dark; end + + sig { returns(Presenter) } + def strike; end + end + + class StringUtils + sig { params(string: String, codes: T::Array[Integer]).returns(String) } + def self.wrap_with_sgr(string, codes); end + + sig { params(string: String).returns(String) } + def self.uncolor(string); end + end + + VERSION = T.let(nil, String) + + class Wrapper + sig { returns(T::Boolean) } + attr_accessor :enabled + + sig { params(enabled: T::Boolean).void } + def initialize(enabled = true); end + + sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) } + def wrap(string); end + end + + module X11ColorNames + NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]]) + end +end + +sig { params(string: String).returns(Rainbow::Presenter) } +def Rainbow(string); end From cd86e43fb1a46597fefa90ae4a91742b7c174c2a Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Tue, 20 May 2025 20:59:24 -0700 Subject: [PATCH 29/66] Add rubocop exclusion --- Library/.rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml index a5362c95d6..a206ed6e33 100644 --- a/Library/.rubocop.yml +++ b/Library/.rubocop.yml @@ -26,7 +26,7 @@ AllCops: Include: - "**/*.rbi" Exclude: - - "Homebrew/sorbet/rbi/{dsl,gems}/**/*.rbi" + - "Homebrew/sorbet/rbi/{annotations,dsl,gems}/**/*.rbi" - "Homebrew/sorbet/rbi/parser*.rbi" - "Homebrew/bin/*" - "Homebrew/vendor/**/*" From d5b3ae095c3e172559494e2a841507c6277c1803 Mon Sep 17 00:00:00 2001 From: Colin Dean Date: Tue, 20 May 2025 11:06:20 -0400 Subject: [PATCH 30/66] Prohibit non-ASCII characters in URLs, nudge toward punycode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Inspired by curl's blog post, [Detecting malicious Unicode][1], this likely captures most if not all cases and nudges the user toward supplying IDNs with punycode. A possible improvement would be telling the user exactly what punycode domain to use instead, but that may require another library as I can't quickly find something built into the Ruby stdlib that handles punycode encoding. [1]: https://daniel.haxx.se/blog/2025/05/16/detecting-malicious-unicode/ Co-authored-by: Štefan Baebler <319826+stefanb@users.noreply.github.com> --- Library/Homebrew/rubocops/shared/url_helper.rb | 6 ++++++ Library/Homebrew/test/rubocops/urls_spec.rb | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/Library/Homebrew/rubocops/shared/url_helper.rb b/Library/Homebrew/rubocops/shared/url_helper.rb index 1d5e6a32ff..0a49816f13 100644 --- a/Library/Homebrew/rubocops/shared/url_helper.rb +++ b/Library/Homebrew/rubocops/shared/url_helper.rb @@ -35,6 +35,12 @@ module RuboCop def audit_url(type, urls, mirrors, livecheck_url: false) @type = type + # URLs must be ASCII; IDNs must be punycode + ascii_pattern = /[^\p{ASCII}]+/ + audit_urls(urls, ascii_pattern) do |_, url| + problem "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of #{url}." + end + # GNU URLs; doesn't apply to mirrors gnu_pattern = %r{^(?:https?|ftp)://ftpmirror\.gnu\.org/(.*)} audit_urls(urls, gnu_pattern) do |match, url| diff --git a/Library/Homebrew/test/rubocops/urls_spec.rb b/Library/Homebrew/test/rubocops/urls_spec.rb index 80bf49199a..fab6d84ada 100644 --- a/Library/Homebrew/test/rubocops/urls_spec.rb +++ b/Library/Homebrew/test/rubocops/urls_spec.rb @@ -177,6 +177,14 @@ RSpec.describe RuboCop::Cop::FormulaAudit::Urls do "url" => "svn+http://brew.sh/foo/bar", "msg" => "Use of the svn+http:// scheme is deprecated, pass `:using => :svn` instead", "col" => 2, + }, { + "url" => "https://🫠.sh/foo/bar", + "msg" => "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of https://🫠.sh/foo/bar.", + "col" => 2, + }, { + "url" => "https://ßrew.sh/foo/bar", + "msg" => "Please use the ASCII (Punycode encoded host, URL-encoded path and query) version of https://ßrew.sh/foo/bar.", + "col" => 2, }] end From a94037a6ff69c8665890f8c8d271f6252a576de1 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 13:08:37 +0100 Subject: [PATCH 31/66] dev-cmd/update-maintainers: various fixes. - install the `man` gem group for `kramdown` so `Manpages.regenerate_man_pages` can run successfully - hardcode the non-organisation PLC members so that they aren't missing from the GitHub team - correctly populate the PLC members again --- Library/Homebrew/dev-cmd/update-maintainers.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-maintainers.rb b/Library/Homebrew/dev-cmd/update-maintainers.rb index 0b5dd62980..57f52e9713 100644 --- a/Library/Homebrew/dev-cmd/update-maintainers.rb +++ b/Library/Homebrew/dev-cmd/update-maintainers.rb @@ -21,12 +21,22 @@ module Homebrew sig { override.void } def run + # Needed for Manpages.regenerate_man_pages below + Homebrew.install_bundler_gems!(groups: ["man"]) + # We assume that only public members wish to be included in the README public_members = GitHub.public_member_usernames("Homebrew") maintainers = GitHub.members_by_team("Homebrew", "maintainers") + # Not all PLC members are Homebrew GitHub organisation members any more + non_maintainer_plc_members = { + colindean: "Colin Dean", + mozzadrella: "Vanessa Gennarelli", + }.transform_keys(&:to_s) + public_members += non_maintainer_plc_members.keys + members = { - plc: GitHub.members_by_team("Homebrew", "plc"), + plc: GitHub.members_by_team("Homebrew", "plc").merge(non_maintainer_plc_members), tsc: GitHub.members_by_team("Homebrew", "tsc"), maintainers:, } From c1a2f94e0132076c2ee3af778bedde752c234102 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 13:19:11 +0100 Subject: [PATCH 32/66] dev-cmd/tap-new: fix root_url warning. Ruby couldn't detect the `root_url` usage inside the ERB template. Instead, use interpolation so it can for a fixed warning and more concise syntax. --- Library/Homebrew/dev-cmd/tap-new.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb index 5d04a15c6c..b1b7e5278f 100644 --- a/Library/Homebrew/dev-cmd/tap-new.rb +++ b/Library/Homebrew/dev-cmd/tap-new.rb @@ -126,7 +126,7 @@ module Homebrew echo "::add-mask::${base64_token}" echo "token=${base64_token}" >> "${GITHUB_OUTPUT}" <% end -%> - - run: brew test-bot --only-formulae<% if root_url %> --root-url='<%= root_url %>'<% end %> + - run: brew test-bot --only-formulae#{" --root-url=#{root_url}" if root_url} if: github.event_name == 'pull_request' <% if args.github_packages? -%> env: From ee15435a905835a618992445f2170467f524222f Mon Sep 17 00:00:00 2001 From: Issy Long Date: Wed, 21 May 2025 14:31:58 +0200 Subject: [PATCH 33/66] Fix multiline hash key/value indentation --- Library/Homebrew/dev-cmd/update-maintainers.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/update-maintainers.rb b/Library/Homebrew/dev-cmd/update-maintainers.rb index 57f52e9713..e1ca6a550f 100644 --- a/Library/Homebrew/dev-cmd/update-maintainers.rb +++ b/Library/Homebrew/dev-cmd/update-maintainers.rb @@ -30,7 +30,7 @@ module Homebrew # Not all PLC members are Homebrew GitHub organisation members any more non_maintainer_plc_members = { - colindean: "Colin Dean", + colindean: "Colin Dean", mozzadrella: "Vanessa Gennarelli", }.transform_keys(&:to_s) public_members += non_maintainer_plc_members.keys From b826bbf23e0ac01132aa79776df9a95bf63d53bd Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Wed, 21 May 2025 13:08:27 +0000 Subject: [PATCH 34/66] Update maintainers. Autogenerated by the [sponsors-maintainers-man-completions](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/sponsors-maintainers-man-completions.yml) workflow. --- README.md | 2 +- docs/Manpage.md | 4 ++-- manpages/brew.1 | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b83f445de2..aafa616417 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Homebrew's [Project Leader](https://docs.brew.sh/Homebrew-Governance#6-project-l Homebrew's [Project Leadership Committee](https://docs.brew.sh/Homebrew-Governance#4-project-leadership-committee) is [Colin Dean](https://github.com/colindean), [Michka Popoff](https://github.com/iMichka), [Mike McQuaid](https://github.com/MikeMcQuaid), [Patrick Linnane](https://github.com/p-linnane) and [Vanessa Gennarelli](https://github.com/mozzadrella). -Homebrew's [Technical Steering Committee](https://docs.brew.sh/Homebrew-Governance#7-technical-steering-committee) is [Bo Anderson](https://github.com/Bo98), [FX Coudert](https://github.com/fxcoudert), [Mike McQuaid](https://github.com/MikeMcQuaid) and [Rylan Polster](https://github.com/Rylan12). +Homebrew's [Technical Steering Committee](https://docs.brew.sh/Homebrew-Governance#7-technical-steering-committee) is [Bo Anderson](https://github.com/Bo98), [Issy Long](https://github.com/issyl0), [Michael Cho](https://github.com/cho-m), [Mike McQuaid](https://github.com/MikeMcQuaid) and [Ruoyu Zhong](https://github.com/ZhongRuoyu). Homebrew's maintainers are [Alexander Bayandin](https://github.com/bayandin), [Bevan Kay](https://github.com/bevanjkay), [Bo Anderson](https://github.com/Bo98), [Branch Vincent](https://github.com/branchvincent), [Caleb Xu](https://github.com/alebcay), [Carlo Cabrera](https://github.com/carlocab), [Daeho Ro](https://github.com/daeho-ro), [Douglas Eichelberger](https://github.com/dduugg), [Dustin Rodrigues](https://github.com/dtrodrigues), [Eric Knibbe](https://github.com/EricFromCanada), [FX Coudert](https://github.com/fxcoudert), [Issy Long](https://github.com/issyl0), [Justin Krehel](https://github.com/krehel), [Klaus Hipp](https://github.com/khipp), [Markus Reiter](https://github.com/reitermarkus), [Michael Cho](https://github.com/cho-m), [Michka Popoff](https://github.com/iMichka), [Mike McQuaid](https://github.com/MikeMcQuaid), [Nanda H Krishna](https://github.com/nandahkrishna), [Patrick Linnane](https://github.com/p-linnane), [Rui Chen](https://github.com/chenrui333), [Ruoyu Zhong](https://github.com/ZhongRuoyu), [Rylan Polster](https://github.com/Rylan12), [Sam Ford](https://github.com/samford), [Sean Molenaar](https://github.com/SMillerDev), [Štefan Baebler](https://github.com/stefanb), [Thierry Moisan](https://github.com/Moisan), [Timothy Sutton](https://github.com/timsutton) and [William Woodruff](https://github.com/woodruffw). diff --git a/docs/Manpage.md b/docs/Manpage.md index bce11be419..09eb8c5b9f 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -4443,8 +4443,8 @@ Homebrew's Project Leader is Mike McQuaid. Homebrew's Project Leadership Committee is Colin Dean, Michka Popoff, Mike McQuaid, Patrick Linnane and Vanessa Gennarelli. -Homebrew's Technical Steering Committee is Bo Anderson, FX Coudert, Mike McQuaid -and Rylan Polster. +Homebrew's Technical Steering Committee is Bo Anderson, Issy Long, Michael Cho, +Mike McQuaid and Ruoyu Zhong. Homebrew's maintainers are Alexander Bayandin, Bevan Kay, Bo Anderson, Branch Vincent, Caleb Xu, Carlo Cabrera, Daeho Ro, Douglas Eichelberger, Dustin diff --git a/manpages/brew.1 b/manpages/brew.1 index 70c81844ec..05cd33ae03 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -2922,7 +2922,7 @@ Homebrew\[u2019]s Project Leader is Mike McQuaid\. .P Homebrew\[u2019]s Project Leadership Committee is Colin Dean, Michka Popoff, Mike McQuaid, Patrick Linnane and Vanessa Gennarelli\. .P -Homebrew\[u2019]s Technical Steering Committee is Bo Anderson, FX Coudert, Mike McQuaid and Rylan Polster\. +Homebrew\[u2019]s Technical Steering Committee is Bo Anderson, Issy Long, Michael Cho, Mike McQuaid and Ruoyu Zhong\. .P Homebrew\[u2019]s maintainers are Alexander Bayandin, Bevan Kay, Bo Anderson, Branch Vincent, Caleb Xu, Carlo Cabrera, Daeho Ro, Douglas Eichelberger, Dustin Rodrigues, Eric Knibbe, FX Coudert, Issy Long, Justin Krehel, Klaus Hipp, Markus Reiter, Michael Cho, Michka Popoff, Mike McQuaid, Nanda H Krishna, Patrick Linnane, Rui Chen, Ruoyu Zhong, Rylan Polster, Sam Ford, Sean Molenaar, Štefan Baebler, Thierry Moisan, Timothy Sutton and William Woodruff\. .P From 6527fc1bf354f47b11484964aa616779682fff0b Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 14:17:37 +0100 Subject: [PATCH 35/66] dependabot: use more groups. - update all dependabot types once a week on Friday so they can make it into the new release on (usually) Monday - use dependabot groups for all changes so we can merge them all at once - use the `directories` option to DRY things up --- .github/dependabot.yml | 80 ++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 725bc3c373..e28c5eb3df 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,68 +5,86 @@ updates: directory: / schedule: interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all - # The actions in triage-issues.yml are updated in the Homebrew/.github repo - ignore: - - dependency-name: actions/stale groups: - artifacts: + github-actions: patterns: - - actions/*-artifact - open-pull-requests-limit: 10 + - "*" - package-ecosystem: bundler - directory: /Library/Homebrew + directories: + - / + - /Library/Homebrew schedule: - interval: daily + interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all groups: - rspec: + bundler: patterns: - - "rspec*" - sorbet: - patterns: - - "sorbet*" - open-pull-requests-limit: 10 + - "*" - package-ecosystem: npm directory: / schedule: - interval: daily + interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all - open-pull-requests-limit: 10 + groups: + npm: + patterns: + - "*" - package-ecosystem: docker directory: / schedule: - interval: daily + interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all - open-pull-requests-limit: 10 + groups: + docker: + patterns: + - "*" - package-ecosystem: devcontainers directory: / schedule: - interval: daily + interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all - open-pull-requests-limit: 10 + groups: + devcontainers: + patterns: + - "*" - package-ecosystem: pip - directory: / + directories: + - / + - /Library/Homebrew/formula-analytics/ schedule: - interval: daily + interval: weekly + day: "friday" + time: "08:00" + timezone: "Etc/UTC" allow: - dependency-type: all - open-pull-requests-limit: 10 - - - package-ecosystem: pip - directory: /Library/Homebrew/formula-analytics/ - schedule: - interval: daily - allow: - - dependency-type: all - open-pull-requests-limit: 10 + groups: + pip: + patterns: + - "*" From 63cdd0723ca05e8c34ede4d11fb78b827ecb4b34 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Wed, 21 May 2025 12:45:47 +0000 Subject: [PATCH 36/66] Truncate long release notes in formula PR descriptions - Some formula bumps have really long release notes which causes their bump PRs to exceed GitHub's 65k character limit for issue bodies. --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 3d7b867ee4..adfb59ab07 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -399,10 +399,14 @@ module Homebrew if github_release_data.present? pre = "pre" if github_release_data["prerelease"].present? + # maximum length of PR body is 65,536 characters so let's truncate release notes to half of that. + body = github_release_data["body"].truncate(32_768) + formula_pr_message += <<~XML
#{pre}release notes -
#{github_release_data["body"]}
+
#{body}
+

View the full release notes at #{github_release_data["html_url"]}.

XML end From 5027a9d2f264a0bfb76003b806f3ff7c2a950bdd Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Tue, 20 May 2025 16:09:23 -0400 Subject: [PATCH 37/66] cask/audit: skip audit_rosetta on Intel-only casks & OSes --- Library/Homebrew/cask/audit.rb | 7 +++++-- Library/Homebrew/requirements/macos_requirement.rb | 7 +++++++ .../test/requirements/macos_requirement_spec.rb | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb index 0dbd453b93..4f8bae5c14 100644 --- a/Library/Homebrew/cask/audit.rb +++ b/Library/Homebrew/cask/audit.rb @@ -606,7 +606,10 @@ module Cask def audit_rosetta return if (url = cask.url).nil? return unless online? + # Rosetta 2 is only for ARM-capable macOS versions, which are Big Sur (11.x) and later return if Homebrew::SimulateSystem.current_arch != :arm + return if MacOSVersion::SYMBOLS.fetch(Homebrew::SimulateSystem.current_os, "10") < "11" + return if cask.depends_on.macos&.maximum_version.to_s < "11" odebug "Auditing Rosetta 2 requirement" @@ -640,7 +643,7 @@ module Cask # binary stanza can contain shell scripts, so we just continue if lipo fails. next unless result.success? - odebug result.merged_output + odebug "Architectures: #{result.merged_output}" unless /arm64|x86_64/.match?(result.merged_output) add_error "Artifacts architecture is no longer supported by macOS!", @@ -652,7 +655,7 @@ module Cask mentions_rosetta = cask.caveats.include?("requires Rosetta 2") if supports_arm && mentions_rosetta - add_error "Artifacts does not require Rosetta 2 but the caveats say otherwise!", + add_error "Artifacts do not require Rosetta 2 but the caveats say otherwise!", location: url.location elsif !supports_arm && !mentions_rosetta add_error "Artifacts require Rosetta 2 but this is not indicated by the caveats!", diff --git a/Library/Homebrew/requirements/macos_requirement.rb b/Library/Homebrew/requirements/macos_requirement.rb index 3189259b8a..366348b893 100644 --- a/Library/Homebrew/requirements/macos_requirement.rb +++ b/Library/Homebrew/requirements/macos_requirement.rb @@ -68,6 +68,13 @@ class MacOSRequirement < Requirement @version end + def maximum_version + return MacOSVersion.new(HOMEBREW_MACOS_NEWEST_UNSUPPORTED) if @comparator == ">=" || !version_specified? + return @version.max if @version.respond_to?(:to_ary) + + @version + end + def allows?(other) return true unless version_specified? diff --git a/Library/Homebrew/test/requirements/macos_requirement_spec.rb b/Library/Homebrew/test/requirements/macos_requirement_spec.rb index ad15adc0c5..f983abd279 100644 --- a/Library/Homebrew/test/requirements/macos_requirement_spec.rb +++ b/Library/Homebrew/test/requirements/macos_requirement_spec.rb @@ -6,6 +6,7 @@ RSpec.describe MacOSRequirement do subject(:requirement) { described_class.new } let(:macos_oldest_allowed) { MacOSVersion.new(HOMEBREW_MACOS_OLDEST_ALLOWED) } + let(:macos_newest_allowed) { MacOSVersion.new(HOMEBREW_MACOS_NEWEST_UNSUPPORTED) } let(:big_sur_major) { MacOSVersion.new("11.0") } describe "#satisfied?" do @@ -37,6 +38,19 @@ RSpec.describe MacOSRequirement do expect(range_requirement.minimum_version).to eq big_sur_major end + specify "#maximum_version" do + no_requirement = described_class.new + max_requirement = described_class.new([:big_sur], comparator: "<=") + min_requirement = described_class.new([:big_sur], comparator: ">=") + exact_requirement = described_class.new([:big_sur], comparator: "==") + range_requirement = described_class.new([[:catalina, :big_sur]], comparator: "==") + expect(no_requirement.maximum_version).to eq macos_newest_allowed + expect(max_requirement.maximum_version).to eq big_sur_major + expect(min_requirement.maximum_version).to eq macos_newest_allowed + expect(exact_requirement.maximum_version).to eq big_sur_major + expect(range_requirement.maximum_version).to eq big_sur_major + end + specify "#allows?" do no_requirement = described_class.new max_requirement = described_class.new([:mojave], comparator: "<=") From 3dad44c9f35c027aea06cb809a7f80decff787a6 Mon Sep 17 00:00:00 2001 From: botantony Date: Fri, 16 May 2025 10:13:40 +0200 Subject: [PATCH 38/66] uninstall: exclude configurational filess that belong to other formulae Signed-off-by: botantony --- Library/Homebrew/uninstall.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/uninstall.rb b/Library/Homebrew/uninstall.rb index ba03abc04f..206bb6cdbc 100644 --- a/Library/Homebrew/uninstall.rb +++ b/Library/Homebrew/uninstall.rb @@ -67,7 +67,18 @@ module Homebrew end unversioned_name = f.name.gsub(/@.+$/, "") - maybe_paths = Dir.glob("#{f.etc}/*#{unversioned_name}*") + maybe_paths = Dir.glob("#{f.etc}/#{unversioned_name}*") + excluded_names = Homebrew::API::Formula.all_formulae.keys + maybe_paths = maybe_paths.reject do |path| + # Remove extension only if a file + # (f.e. directory with name "openssl@1.1" will be trimmed to "openssl@1") + filename = if File.directory?(path) + File.basename(path) + else + File.basename(path, ".*") + end + excluded_names.include?(filename) + end maybe_paths -= paths if paths.present? if maybe_paths.present? puts From 83db7a31ecd19b11a540e4cf97ea902a0b3fbabb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 15:29:12 +0000 Subject: [PATCH 39/66] build(deps): bump the github-actions group with 2 updates Bumps the github-actions group with 2 updates: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [actions/stale](https://github.com/actions/stale). Updates `ruby/setup-ruby` from 1.242.0 to 1.244.0 - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](https://github.com/ruby/setup-ruby/compare/cb0fda56a307b8c78d38320cd40d9eb22a3bf04e...13e7a03dc3ac6c3798f4570bfead2aed4d96abfb) Updates `actions/stale` from 9.0.0 to 9.1.0 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/28ca1036281a5e5922ead5184a1bbf96e5fc984e...5bef64f19d7facfb25b37b414482c7164d639639) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.244.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: actions/stale dependency-version: 9.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/docs.yml | 2 +- .github/workflows/rubydoc.yml | 2 +- .github/workflows/stale-issues.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fbf0b15eab..5d88cf7e65 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -52,7 +52,7 @@ jobs: run: vale docs/ - name: Install Ruby - uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 + uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 with: bundler-cache: true working-directory: docs diff --git a/.github/workflows/rubydoc.yml b/.github/workflows/rubydoc.yml index 14cd028923..2c0399ed56 100644 --- a/.github/workflows/rubydoc.yml +++ b/.github/workflows/rubydoc.yml @@ -42,7 +42,7 @@ jobs: persist-credentials: false - name: Install Ruby - uses: ruby/setup-ruby@cb0fda56a307b8c78d38320cd40d9eb22a3bf04e # v1.242.0 + uses: ruby/setup-ruby@13e7a03dc3ac6c3798f4570bfead2aed4d96abfb # v1.244.0 with: bundler-cache: true working-directory: rubydoc diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml index 608d2e65e9..c4bfc33e0e 100644 --- a/.github/workflows/stale-issues.yml +++ b/.github/workflows/stale-issues.yml @@ -38,7 +38,7 @@ jobs: pull-requests: write steps: - name: Mark/Close Stale Issues and Pull Requests - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 + uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 21 @@ -68,7 +68,7 @@ jobs: pull-requests: write steps: - name: Mark/Close Stale `bump-formula-pr` and `bump-cask-pr` Pull Requests - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 + uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 2 From e8e8fcea027c5939c1b23bfaffc8e49edfa486d8 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 16:31:30 +0100 Subject: [PATCH 40/66] bundle/commands/exec: fix exit code handling. In some `brew tests` runs, `$CHILD_STATUS` can be `nil`. Let's handle this and avoid these flaky tests. --- Library/Homebrew/bundle/commands/exec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/bundle/commands/exec.rb b/Library/Homebrew/bundle/commands/exec.rb index 543d84114b..103706dd76 100644 --- a/Library/Homebrew/bundle/commands/exec.rb +++ b/Library/Homebrew/bundle/commands/exec.rb @@ -178,7 +178,9 @@ module Homebrew exit_code = 0 run_services(@dsl.entries) do Kernel.system(*args) - exit_code = $CHILD_STATUS.exitstatus + if (system_exit_code = $CHILD_STATUS&.exitstatus) + exit_code = system_exit_code + end end exit!(exit_code) else From 2f10b1cd6ee1ddfc976807bf881c23fc8c5b4579 Mon Sep 17 00:00:00 2001 From: Anton Melnikov Date: Wed, 21 May 2025 17:37:50 +0200 Subject: [PATCH 41/66] uninstall: style suggestions Co-authored-by: Mike McQuaid --- Library/Homebrew/uninstall.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/uninstall.rb b/Library/Homebrew/uninstall.rb index 206bb6cdbc..c8d0e59ae8 100644 --- a/Library/Homebrew/uninstall.rb +++ b/Library/Homebrew/uninstall.rb @@ -72,12 +72,12 @@ module Homebrew maybe_paths = maybe_paths.reject do |path| # Remove extension only if a file # (f.e. directory with name "openssl@1.1" will be trimmed to "openssl@1") - filename = if File.directory?(path) + basename = if File.directory?(path) File.basename(path) - else - File.basename(path, ".*") - end - excluded_names.include?(filename) + else + File.basename(path, ".*") + end + excluded_names.include?(basename) end maybe_paths -= paths if paths.present? if maybe_paths.present? From 4aa7f839543d36873348d8b5ab0011a32fbd86d9 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 17:02:18 +0100 Subject: [PATCH 42/66] dev-cmd/bump-formula-pr: use `Formatter.truncate`. Add new `Formatter.truncate` method, tests and use it. --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 2 +- Library/Homebrew/test/formatter_spec.rb | 14 ++++++++++++++ Library/Homebrew/utils/formatter.rb | 13 +++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index adfb59ab07..c3a0646c15 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -400,7 +400,7 @@ module Homebrew if github_release_data.present? pre = "pre" if github_release_data["prerelease"].present? # maximum length of PR body is 65,536 characters so let's truncate release notes to half of that. - body = github_release_data["body"].truncate(32_768) + body = Formatter.truncate(github_release_data["body"], max: 32_768) formula_pr_message += <<~XML
diff --git a/Library/Homebrew/test/formatter_spec.rb b/Library/Homebrew/test/formatter_spec.rb index e02451a594..ba866ee8f5 100644 --- a/Library/Homebrew/test/formatter_spec.rb +++ b/Library/Homebrew/test/formatter_spec.rb @@ -110,4 +110,18 @@ RSpec.describe Formatter do expect(described_class.format_help_text(text, width: 80)).to eq expected end end + + describe "::truncate" do + it "returns the original string if it's shorter than max length" do + expect(described_class.truncate("short", max: 10)).to eq("short") + end + + it "truncates strings longer than max length" do + expect(described_class.truncate("this is a long string", max: 10)).to eq("this is...") + end + + it "uses custom omission string" do + expect(described_class.truncate("this is a long string", max: 10, omission: " [...]")).to eq("this [...]") + end + end end diff --git a/Library/Homebrew/utils/formatter.rb b/Library/Homebrew/utils/formatter.rb index 9815425204..3e7428c80e 100644 --- a/Library/Homebrew/utils/formatter.rb +++ b/Library/Homebrew/utils/formatter.rb @@ -54,6 +54,19 @@ module Formatter label(label, string, :red) end + # Truncate a string to a specific length. + # + # @api internal + sig { params(string: String, max: Integer, omission: String).returns(String) } + def self.truncate(string, max: 30, omission: "...") + return string if string.length <= max + + length_with_room_for_omission = max - omission.length + truncated = string[0, length_with_room_for_omission] + + "#{truncated}#{omission}" + end + # Wraps text to fit within a given number of columns using regular expressions that: # # 1. convert hard-wrapped paragraphs to a single line From e5f844ec86b8a03e8c44fcbb36b0dcdf5982da05 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 May 2025 17:06:38 +0100 Subject: [PATCH 43/66] docs/Rakefile: fix/ignore more broken URLs. --- docs/Rakefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Rakefile b/docs/Rakefile index 9d58bcb719..5411ccfa0a 100644 --- a/docs/Rakefile +++ b/docs/Rakefile @@ -34,8 +34,9 @@ task test: :build do ], ignore_urls: [ "/", - %r{https://formulae.brew.sh"}, + %r{https://formulae.brew.sh}, %r{https://github.com/}, + %r{https://homebrew.1password.com/}, "https://legacy.python.org/dev/peps/pep-0453/#recommendations-for-downstream-distributors", ], cache: { From ac2d167ffc0498bcd954d3f2eb8ac19d9be0e5dd Mon Sep 17 00:00:00 2001 From: botantony Date: Wed, 21 May 2025 23:23:29 +0200 Subject: [PATCH 44/66] cask/dsl: set `no_autobump!` if livecheck uses `:extract_plist` Signed-off-by: botantony --- Library/Homebrew/cask/dsl.rb | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Library/Homebrew/cask/dsl.rb b/Library/Homebrew/cask/dsl.rb index 2387eabb30..ca35eebe39 100644 --- a/Library/Homebrew/cask/dsl.rb +++ b/Library/Homebrew/cask/dsl.rb @@ -161,8 +161,6 @@ module Cask @token = T.let(cask.token, String) @url = T.let(nil, T.nilable(URL)) @version = T.let(nil, T.nilable(DSL::Version)) - - set_no_autobump! end sig { returns(T::Boolean) } @@ -177,13 +175,6 @@ module Cask sig { returns(T::Boolean) } def livecheck_defined? = @livecheck_defined - sig { void } - def set_no_autobump! - return if @livecheck.strategy != :extract_plist - - no_autobump! because: :extract_plist - end - sig { returns(T::Boolean) } def on_system_blocks_exist? = @on_system_blocks_exist @@ -547,6 +538,8 @@ module Cask @livecheck_defined = true @livecheck.instance_eval(&block) + no_autobump! because: :extract_plist if @livecheck.strategy == :extract_plist + @livecheck end # Whether the cask contains a `livecheck` block. This is a legacy alias From 6a07851c46c5303d6fc986b2fbca8a4ade672365 Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Thu, 22 May 2025 10:40:58 -0400 Subject: [PATCH 45/66] docs: localize internal URLs --- .gitignore | 1 + docs/.mdl_ruleset.rb | 14 ++++++++++++++ docs/Acceptable-Casks.md | 6 +++--- docs/Brew-Bundle-and-Brewfile.md | 2 +- docs/Common-Issues.md | 8 ++++---- docs/FAQ.md | 2 +- docs/Formula-Cookbook.md | 4 ++-- docs/Homebrew-and-Python.md | 2 +- docs/Homebrew-on-Linux.md | 2 +- docs/How-To-Open-a-Homebrew-Pull-Request.md | 8 ++++---- docs/Installation.md | 6 +++--- docs/New-Maintainer-Checklist.md | 6 +++--- docs/Prose-Style-Guidelines.md | 6 ++++-- docs/Tips-and-Tricks.md | 2 +- docs/vale-styles/Homebrew/README.md | 4 ++-- 15 files changed, 45 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index bb824a889e..4d250a0682 100644 --- a/.gitignore +++ b/.gitignore @@ -172,6 +172,7 @@ # Ignore generated documentation site /docs/_site /docs/.jekyll-metadata +/docs/tmp/.htmlproofer /docs/vendor /docs/Gemfile.lock diff --git a/docs/.mdl_ruleset.rb b/docs/.mdl_ruleset.rb index 7cf80606d7..fab331a825 100644 --- a/docs/.mdl_ruleset.rb +++ b/docs/.mdl_ruleset.rb @@ -8,3 +8,17 @@ rule "HB034", "Bare unstyled URL used" do doc.matching_text_element_lines(%r{(?<=\s)https?://}) end end +rule "HB100", "Full URL for internal link used" do + tags :links, :url + aliases "no-full-urls-for-internal-links" + check do |doc| + doc.matching_lines(%r{\]\(https://docs.brew.sh/.+?\)}) + end +end +rule "HB101", "File extension missing from internal link" do + tags :links, :url + aliases "file-extension-required-for-internal-links" + check do |doc| + doc.matching_lines(/\]\((?!#|\w+:)(?>[^#.)]+)(?!\.\w+)/) + end +end diff --git a/docs/Acceptable-Casks.md b/docs/Acceptable-Casks.md index 2146d0c2e3..5813f17c49 100644 --- a/docs/Acceptable-Casks.md +++ b/docs/Acceptable-Casks.md @@ -36,7 +36,7 @@ These versions also live in the main repository at [Homebrew/homebrew-cask](http ### Regional and Localized -When an app exists in more than one language or has different regional editions, [the `language` stanza should be used to switch between languages or regions](https://docs.brew.sh/Cask-Cookbook#stanza-language). +When an app exists in more than one language or has different regional editions, [the `language` stanza should be used to switch between languages or regions](Cask-Cookbook.md#stanza-language). ### Trial and Freemium versions @@ -111,7 +111,7 @@ Common reasons to reject a cask entirely: * An app from a code repository that is not notable enough (under 30 forks, 30 watchers, 75 stars). * [Electronic Identification (eID) software](https://github.com/Homebrew/homebrew-cask/issues/59021). * App requires [SIP to be disabled](https://github.com/Homebrew/homebrew-cask/pull/41890) to be installed and/or used. -* App installer is a `pkg` that requires [`allow_untrusted: true`](https://docs.brew.sh/Cask-Cookbook#pkg-allow_untrusted). +* App installer is a `pkg` that requires [`allow_untrusted: true`](Cask-Cookbook.md#pkg-allow_untrusted). * App is a trial version, and the only way to acquire the full version is through the Mac App Store. * Similarly (and trickier to spot), the app has moved to the Mac App Store but still provides old versions via direct download. We reject these in all official repositories so users don’t get stuck using an old version, wrongly thinking they’re using the most up-to-date one (which, amongst other things, might be a security risk). * App is unmaintained, i.e. no releases in the last year, or [explicitly discontinued](https://github.com/Homebrew/homebrew-cask/pull/22699). @@ -120,7 +120,7 @@ Common reasons to reject a cask entirely: * Or if the Cask has a download URL that is both behind a login/registration form and from a host that differs from the homepage. * Cask is unreasonably difficult to maintain. Examples have included [Audacity](https://github.com/Homebrew/homebrew-cask/pull/27517) and [older Java development casks](https://github.com/Homebrew/homebrew-cask/issues/57387). * Cask has been rejected before due to an issue we cannot fix, and the new submission doesn’t fix that. An example would be the [first submission of `soapui`](https://github.com/Homebrew/homebrew-cask/pull/4939), whose installation problems were not fixed in the two [subsequent](https://github.com/Homebrew/homebrew-cask/pull/9969) [submissions](https://github.com/Homebrew/homebrew-cask/pull/10606). -* Cask is a duplicate. These submissions mostly occur when the [token reference](https://docs.brew.sh/Cask-Cookbook#token-reference) was not followed. +* Cask is a duplicate. These submissions mostly occur when the [token reference](Cask-Cookbook.md#token-reference) was not followed. * The author has [specifically asked us not to include it](https://github.com/Homebrew/homebrew-cask/pull/5342). * App is both open-source and CLI-only (i.e. it only uses the `binary` artifact). In that case, and [in the spirit of deduplication](https://github.com/Homebrew/homebrew-cask/issues/15603), submit it first to [homebrew/core](https://github.com/Homebrew/homebrew-core) as a formula that builds from source. If it is rejected, you may then try again as a cask (link to the issue from your pull request so we can see the discussion and reasoning for rejection). * App is open-source and has a GUI but no compiled versions (or only old ones) are provided. It’s better to have them in [homebrew/core](https://github.com/Homebrew/homebrew-core) so users don’t get perpetually outdated versions. See [`gedit`](https://github.com/Homebrew/homebrew-cask/pull/23360) for example. diff --git a/docs/Brew-Bundle-and-Brewfile.md b/docs/Brew-Bundle-and-Brewfile.md index 27c7ead3fd..27894a7bcb 100644 --- a/docs/Brew-Bundle-and-Brewfile.md +++ b/docs/Brew-Bundle-and-Brewfile.md @@ -10,7 +10,7 @@ It uses `Brewfile`s to provide a declarative interface for installing/upgrading Rather than specifying the `brew` commands you wish to run, you can specify the state you wish to reach. -See also the [`brew bundle` section of `man brew`](https://docs.brew.sh/Manpage#bundle-subcommand) or `brew bundle --help`. +See also the [`brew bundle` section of `man brew`](Manpage.md#bundle-subcommand) or `brew bundle --help`. ## Basic Usage diff --git a/docs/Common-Issues.md b/docs/Common-Issues.md index 30d29ae5de..257555e8e1 100644 --- a/docs/Common-Issues.md +++ b/docs/Common-Issues.md @@ -229,7 +229,7 @@ Help us by [submitting a fix](https://github.com/Homebrew/homebrew-cask/blob/HEA ### Cask - source is not there -First, you need to identify which artifact is not being handled correctly anymore. It’s explicit in the error message: if it says `It seems the App source…'` then the problem is with the [`app`](https://docs.brew.sh/Cask-Cookbook#stanza-app) stanza. This pattern is the same across [all artifacts](https://docs.brew.sh/Cask-Cookbook#at-least-one-artifact-stanza-is-also-required). +First, you need to identify which artifact is not being handled correctly anymore. It’s explicit in the error message: if it says `It seems the App source…'` then the problem is with the [`app`](Cask-Cookbook.md#stanza-app) stanza. This pattern is the same across [all artifacts](Cask-Cookbook.md#at-least-one-artifact-stanza-is-also-required). Fixing this error is typically easy, and requires only a bit of time on your part. Start by downloading the package for the cask: `brew fetch `. The last line of output will inform you of the location of the download. Navigate there and manually unpack it. As an example, let's say the structure inside the archive is as follows: @@ -246,19 +246,19 @@ Now, if we find this when looking at the cask with `brew cat `: The cask expects `SomeApp.app` to be in the top directory of the archive (see how it says simply `SomeApp.app`) but the developer has since moved it to be inside a `Files` directory. All we have to do is update that line of the cask to follow the new structure: `app "Files/SomeApp.app"`. -Note that occasionally the app’s name changes completely (from `SomeApp.app` to `OtherApp.app`, let's say). In these instances, the filename of the cask itself, as well as its token, must also change. Consult the [`token reference`](https://docs.brew.sh/Cask-Cookbook#token-reference) for complete instructions on the new name. +Note that occasionally the app’s name changes completely (from `SomeApp.app` to `OtherApp.app`, let's say). In these instances, the filename of the cask itself, as well as its token, must also change. Consult the [`token reference`](Cask-Cookbook.md#token-reference) for complete instructions on the new name. Help us by [submitting a fix](https://github.com/Homebrew/homebrew-cask/blob/HEAD/CONTRIBUTING.md#updating-a-cask). If you get stumped, [open an issue](https://github.com/Homebrew/homebrew-cask/issues/new?template=01_bug_report.md) explaining your steps so far and where you’re having trouble. ### Cask - wrong number of arguments -Make sure the issue really lies with your macOS version. To do so, try to install the software manually. If it is incompatible with your macOS version, it will tell you. In that case, there is nothing we can do to help you install the software, but we can add a [`depends_on macos:`](https://docs.brew.sh/Cask-Cookbook#depends_on-macos) stanza to prevent the cask from being installed on incompatible macOS versions. +Make sure the issue really lies with your macOS version. To do so, try to install the software manually. If it is incompatible with your macOS version, it will tell you. In that case, there is nothing we can do to help you install the software, but we can add a [`depends_on macos:`](Cask-Cookbook.md#depends_on-macos) stanza to prevent the cask from being installed on incompatible macOS versions. Help us by [submitting a fix](https://github.com/Homebrew/homebrew-cask/blob/HEAD/CONTRIBUTING.md#updating-a-cask). If you get stumped, [open an issue](https://github.com/Homebrew/homebrew-cask/issues/new?template=01_bug_report.md) explaining your steps so far and where you’re having trouble. ## Other local issues -If your Homebrew installation gets messed up (and fixing the issues found by `brew doctor` doesn't solve the problem), reinstalling Homebrew may help to reset to a normal state. To easily reinstall Homebrew, use `brew bundle` to automatically restore your installed formulae and casks. To do so, run `brew bundle dump`, [uninstall](https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew), [reinstall](https://docs.brew.sh/Installation) and run `brew bundle install`. +If your Homebrew installation gets messed up (and fixing the issues found by `brew doctor` doesn't solve the problem), reinstalling Homebrew may help to reset to a normal state. To easily reinstall Homebrew, use `brew bundle` to automatically restore your installed formulae and casks. To do so, run `brew bundle dump`, [uninstall](FAQ.md#how-do-i-uninstall-homebrew), [reinstall](Installation.md) and run `brew bundle install`. ## Possible `curl` issues diff --git a/docs/FAQ.md b/docs/FAQ.md index 7ea38280ca..6dca0305e5 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -222,7 +222,7 @@ There are a few ideas to fix this problem: So we let software be. Anything installed with Homebrew Cask should behave the same as if it were installed manually. But since we also want to support software that doesn’t self-upgrade, we add [`auto_updates true`](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/a/alfred.rb#L18) to casks for software that does, which excludes them from `brew upgrade`. -Casks which use `version :latest` are also excluded, because we have no way to track their installed version. It helps to ask the developers of such software to provide versioned releases (i.e. include the version in the path of the download `url`). +Casks which use [`version :latest`](Cask-Cookbook.md#special-value-latest) are also excluded, because we have no way to track their installed version. It helps to ask the developers of such software to provide versioned releases (i.e. include the version in the path of the download `url`). If you still want to force software to be upgraded via Homebrew Cask, you can reference it specifically in the `upgrade` command: diff --git a/docs/Formula-Cookbook.md b/docs/Formula-Cookbook.md index 94d1285545..f26de4266e 100644 --- a/docs/Formula-Cookbook.md +++ b/docs/Formula-Cookbook.md @@ -43,7 +43,7 @@ Packages are installed according to their formulae. Read over a simple one, e.g. Make sure you run `brew update` before you start. This ensures your Homebrew installation is a Git repository. -To create or edit formulae locally, you'll need to first [tap `homebrew/core`](https://docs.brew.sh/FAQ#can-i-edit-formulae-myself) if you haven't previously. This clones the Homebrew/homebrew-core Git repository to `$(brew --repository homebrew/core)`. As you're developing, you'll also need to set `HOMEBREW_NO_INSTALL_FROM_API=1` in your shell environment or before any `install`, `reinstall` or `upgrade` commands to force `brew` to use the local repository instead of the API. +To create or edit formulae locally, you'll need to first [tap `homebrew/core`](FAQ.md#can-i-edit-formulae-myself) if you haven't previously. This clones the Homebrew/homebrew-core Git repository to `$(brew --repository homebrew/core)`. As you're developing, you'll also need to set `HOMEBREW_NO_INSTALL_FROM_API=1` in your shell environment or before any `install`, `reinstall` or `upgrade` commands to force `brew` to use the local repository instead of the API. Before submitting a new formula make sure your package: @@ -433,7 +433,7 @@ If you have already forked Homebrew on GitHub, then you can manually push (just git push https://github.com/myname/homebrew-core/ ``` -Now, [open a pull request](https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request) for your changes. +Now, [open a pull request](How-To-Open-a-Homebrew-Pull-Request.md) for your changes. * One formula per commit; one commit per formula. * Keep merge commits out of the pull request. diff --git a/docs/Homebrew-and-Python.md b/docs/Homebrew-and-Python.md index d8283b3ccc..525d92fd68 100644 --- a/docs/Homebrew-and-Python.md +++ b/docs/Homebrew-and-Python.md @@ -11,7 +11,7 @@ Homebrew will install the necessary Python 3 version that is needed to make your ## Python 3 Homebrew provides formulae for the newest and maintained releases of Python 3 (`python@3.y`) (). -We keep older `python@3.y` versions according to our [versioned formulae guidelines](https://docs.brew.sh/Versions). +We keep older `python@3.y` versions according to our [versioned formulae guidelines](Versions.md). **Important:** Python may be upgraded to a newer version at any time. Consider using a version manager such as `pyenv` if you require stability of minor or patch versions for virtual environments. diff --git a/docs/Homebrew-on-Linux.md b/docs/Homebrew-on-Linux.md index 9c6bae5452..f10dff9693 100644 --- a/docs/Homebrew-on-Linux.md +++ b/docs/Homebrew-on-Linux.md @@ -76,7 +76,7 @@ To install build tools, paste at a terminal prompt: ### ARM32 (Tier 3 Support) -Homebrew can run on 32-bit ARM (e.g. Raspberry Pi and others), but as they lack bottles (binary packages) they are a [Tier 3 supported platform](https://docs.brew.sh/Support-Tiers#tier-3) +Homebrew can run on 32-bit ARM systems (e.g. Raspberry Pi and others), but as they lack bottles (binary packages) they are a [Tier 3 supported platform](Support-Tiers.md#tier-3). You may need to install your own Ruby using your system package manager, a PPA, or `rbenv/ruby-build` as we don't distribute a Homebrew Portable Ruby for ARM32. diff --git a/docs/How-To-Open-a-Homebrew-Pull-Request.md b/docs/How-To-Open-a-Homebrew-Pull-Request.md index 8257319ac7..8b0ca8a04b 100644 --- a/docs/How-To-Open-a-Homebrew-Pull-Request.md +++ b/docs/How-To-Open-a-Homebrew-Pull-Request.md @@ -10,11 +10,11 @@ The type of change you want to make influences which of Homebrew's main reposito ## Submit a new version of an existing formula -1. Use [`brew bump-formula-pr`](Manpage#bump-formula-pr-options-formula) to do everything (i.e. forking, committing, pushing) with a single command. Run `brew bump-formula-pr --help` to learn more. +1. Use [`brew bump-formula-pr`](Manpage.md#bump-formula-pr-options-formula) to do everything (i.e. forking, committing, pushing) with a single command. Run `brew bump-formula-pr --help` to learn more. ## Submit a new version of an existing cask -1. Use [`brew bump-cask-pr`](Manpage#bump-cask-pr-options-cask) to do everything (i.e. forking, committing, pushing) with a single command. Run `brew bump-cask-pr --help` to learn more. +1. Use [`brew bump-cask-pr`](Manpage.md#bump-cask-pr-options-cask) to do everything (i.e. forking, committing, pushing) with a single command. Run `brew bump-cask-pr --help` to learn more. ## Set up your own fork of the Homebrew repository @@ -38,7 +38,7 @@ The type of change you want to make influences which of Homebrew's main reposito ### Formulae-related pull request -Before creating a new formula, please read [Acceptable Formulae](https://docs.brew.sh/Acceptable-Formulae). +Before creating a new formula, please read [Acceptable Formulae](Acceptable-Formulae.md). 1. [Fork the Homebrew/homebrew-core repository on GitHub](https://github.com/Homebrew/homebrew-core/fork). * This creates a personal remote repository that you can push to. This is needed because only Homebrew maintainers have push access to the main repositories. @@ -64,7 +64,7 @@ Before creating a new formula, please read [Acceptable Formulae](https://docs.br ### Cask-related pull request -Before creating a new cask, please read [Acceptable Casks](https://docs.brew.sh/Acceptable-Casks). +Before creating a new cask, please read [Acceptable Casks](Acceptable-Casks.md). 1. [Fork the Homebrew/homebrew-cask repository on GitHub](https://github.com/Homebrew/homebrew-cask/fork). * This creates a personal remote repository that you can push to. This is needed because only Homebrew maintainers have push access to the main repositories. diff --git a/docs/Installation.md b/docs/Installation.md index fc2412b421..618925e1bd 100644 --- a/docs/Installation.md +++ b/docs/Installation.md @@ -104,12 +104,12 @@ eval "$(/bin/brew shellenv)" ``` Replace `` with the directory where Homebrew is installed on your system. -You can find Homebrew's default install location [in this FAQ entry](https://docs.brew.sh/FAQ#why-should-i-install-homebrew-in-the-default-location). +You can find Homebrew's default install location in [this FAQ entry](FAQ.md#why-should-i-install-homebrew-in-the-default-location). -For more insight, re-run the installer or inspect [the installer's source](https://github.com/Homebrew/install/blob/deacfa6a6e62e5f4002baf9e1fac7a96e9aa5d41/install.sh#L1072-L1088) +For more insight, re-run the installer or inspect [the installer's source](https://github.com/Homebrew/install/blob/956abfa01f0d1dba285e6d3da86587ed428f19fe/install.sh#L1075-L1091) to see how the installer constructs the path it recommends. -See [Tips and Tricks > Loading Homebrew from the same dotfiles on different operating systems](Tips-and-Tricks.md#loading-homebrew-from-the-same-dotfiles-on-different-operating-systems) +See [this tip in Tips and Tricks](Tips-and-Tricks.md#load-homebrew-from-the-same-dotfiles-on-different-operating-systems) for another way to handle this across multiple operating systems. ## Uninstallation diff --git a/docs/New-Maintainer-Checklist.md b/docs/New-Maintainer-Checklist.md index 1661901b9c..80ec6acd8a 100644 --- a/docs/New-Maintainer-Checklist.md +++ b/docs/New-Maintainer-Checklist.md @@ -82,7 +82,7 @@ Now sit back, relax and let the new maintainers handle more of our contributions ## PLC -If a maintainer or member is elected to the Homebrew's [Project Leadership Committee](https://docs.brew.sh/Homebrew-Governance#4-project-leadership-committee): +If a maintainer or member is elected to the Homebrew's [Project Leadership Committee](Homebrew-Governance.md#4-project-leadership-committee): - Invite them to the [**@Homebrew/plc** team](https://github.com/orgs/Homebrew/teams/plc/members) - Make them [billing managers](https://github.com/organizations/Homebrew/settings/billing) and [moderators](https://github.com/organizations/Homebrew/settings/moderators) on the Homebrew GitHub organisation @@ -92,7 +92,7 @@ When they cease to be a PLC member, revoke or downgrade their access to all of t ## TSC -If a maintainer is elected to the Homebrew's [Technical Steering Committee](https://docs.brew.sh/Homebrew-Governance#7-technical-steering-committee): +If a maintainer is elected to the Homebrew's [Technical Steering Committee](Homebrew-Governance.md#7-technical-steering-committee): - Invite them to the [**@Homebrew/tsc** team](https://github.com/orgs/Homebrew/teams/tsc/members) - Make them [billing managers](https://github.com/organizations/Homebrew/settings/billing) and [moderators](https://github.com/organizations/Homebrew/settings/moderators) on the Homebrew GitHub organisation @@ -111,7 +111,7 @@ When they cease to be an owner, revoke or downgrade their access to all of the a ## Members -People who are either not eligible or willing to be Homebrew maintainers but have shown continued involvement in the Homebrew community may be admitted by a majority vote of the [Project Leadership Committee](https://docs.brew.sh/Homebrew-Governance#4-project-leadership-committee). +People who are either not eligible or willing to be Homebrew maintainers but have shown continued involvement in the Homebrew community may be admitted by a majority vote of the [Project Leadership Committee](Homebrew-Governance.md#4-project-leadership-committee). When admitted as members: diff --git a/docs/Prose-Style-Guidelines.md b/docs/Prose-Style-Guidelines.md index ad64206f5a..c5e2907884 100644 --- a/docs/Prose-Style-Guidelines.md +++ b/docs/Prose-Style-Guidelines.md @@ -1,5 +1,5 @@ --- -last_review_date: "2025-02-08" +last_review_date: 2025-05-22 --- # Prose Style Guidelines @@ -23,7 +23,7 @@ Homebrew's audience includes users with a wide range of education and experience We strive for "correct" but not "fancy" usage. Think newspaper article, not academic paper. -This is a set of guidelines to be applied using human judgement, not a set of hard and fast rules. It is like [Garner's Modern American Usage](https://en.wikipedia.org/wiki/Garner's_Modern_American_Usage). It is less like the [Ruby Style Guide](https://github.com/rubocop-hq/ruby-style-guide#the-ruby-style-guide). All guidelines here are open to interpretation and discussion. 100% conformance to these guidelines is *not* a goal. +This is a set of guidelines to be applied using human judgement, not a set of hard and fast rules. It is more like [Garner's Modern American Usage](https://en.wikipedia.org/wiki/Garner's_Modern_American_Usage) and less like the [Ruby Style Guide](https://github.com/rubocop-hq/ruby-style-guide#the-ruby-style-guide). All guidelines here are open to interpretation and discussion. 100% conformance to these guidelines is *not* a goal. The intent of this document is to help authors make decisions about clarity, style, and consistency. It is not to help settle arguments about who knows English better. Don't use this document to be a jerk. @@ -53,6 +53,8 @@ We prefer: * Use a subordinate list item instead of dropping a multi-sentence paragraph-long item into a list of sentence fragments * Prefer Markdown over other markup formats unless their specific features are needed * GitHub Flavoured Markdown. GitHub's implementation is the standard, period. +* Link to other documentation pages with relative links to the Markdown filename rather than the full URL + * e.g. `FAQ.md` instead of `https://docs.brew.sh/FAQ` ### Typographical conventions diff --git a/docs/Tips-and-Tricks.md b/docs/Tips-and-Tricks.md index 198f1b914f..b3aedef367 100644 --- a/docs/Tips-and-Tricks.md +++ b/docs/Tips-and-Tricks.md @@ -143,7 +143,7 @@ export HOMEBREW_ARTIFACT_DOMAIN_NO_FALLBACK=1 export HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN="$(printf 'anonymous:' | base64)" ``` -## Loading Homebrew from the same dotfiles on different operating systems +## Load Homebrew from the same dotfiles on different operating systems Some users may want to use the same shell initialization files on macOS and Linux. Use this to detect the likely Homebrew installation directory and load Homebrew when it's found. diff --git a/docs/vale-styles/Homebrew/README.md b/docs/vale-styles/Homebrew/README.md index 1b087e5b53..12de474ec9 100644 --- a/docs/vale-styles/Homebrew/README.md +++ b/docs/vale-styles/Homebrew/README.md @@ -1,7 +1,7 @@ --- -last_review_date: "1970-01-01" +last_review_date: 2025-05-22 --- # Vale Styles -Based on Homebrew's [Prose Style Guidelines](http://docs.brew.sh/Prose-Style-Guidelines.html). +Based on Homebrew's [Prose Style Guidelines](/docs/Prose-Style-Guidelines.md). From 2457fb123fd2b6d29193eeb32e19276bdecc03e4 Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Thu, 22 May 2025 10:08:04 -0400 Subject: [PATCH 46/66] docs/Typechecking review --- docs/Typechecking.md | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/docs/Typechecking.md b/docs/Typechecking.md index a7599ea936..216b79f396 100644 --- a/docs/Typechecking.md +++ b/docs/Typechecking.md @@ -1,12 +1,12 @@ --- -last_review_date: "2025-02-08" +last_review_date: 2025-05-22 --- # Type Checking With Sorbet -The majority of the code in Homebrew is written in Ruby which is a dynamic language. To avail the benefits of static type checking, we have set up Sorbet in our codebase which provides the benefits of static type checking to dynamic languages like Ruby. +The majority of the code in Homebrew is written in Ruby which is a dynamic language. To avail the benefits of static type checking, we have set up [Sorbet](https://sorbet.org/) in our codebase which provides the benefits of static type checking to dynamic languages like Ruby. -The [Sorbet Documentation] is a good place to get started if you want to dive deeper into Sorbet and its abilities. +The [Sorbet Documentation](https://sorbet.org/docs/overview) is a good place to get started if you want to dive deeper into Sorbet and its abilities. ## Sorbet in the Homebrew Codebase @@ -34,45 +34,41 @@ For more information on how to express more complex types, refer to the official ### Ruby interface files (`.rbi`) -[RBI files](https://sorbet.org/docs/rbi) help Sorbet learn about constants, ancestors and methods defined in ways it doesn’t understand natively. We can also create an RBI file to help Sorbet understand dynamic definitions. Some of these files are autogenerated (see the next section) and some are manually written ([example]). +[RBI files](https://sorbet.org/docs/rbi) help Sorbet learn about constants, ancestors and methods defined in ways it doesn't understand natively. We can also create an RBI file to help Sorbet understand dynamic definitions. Some of these files are automatically generated (see the next section) and some are manually written, e.g. [`extend/on_system.rbi`](https://github.com/Homebrew/brew/blob/975fe8a83fd57a8d8e790ec6fb10c2f13f705d02/Library/Homebrew/extend/on_system.rbi). -There are also a very small number of files that Homebrew loads before sorbet-runtime, such as `utils/gems.rb`. Those files cannot have type signatures alongside the code itself, so RBI files are used there instead to retain static type checking. - -[example]: https://github.com/Homebrew/brew/blob/9d4000b15cb6ffa8c11f49372f7016d05aaa0851/Library/Homebrew/extend/ENV.rbi +There are also a very small number of files that Homebrew loads before `sorbet-runtime`, such as `utils/gems.rb`. Those files cannot have type signatures alongside the code itself, so RBI files are used there instead to retain static type checking. ### The [`Library/Homebrew/sorbet`] directory [`Library/Homebrew/sorbet`]: https://github.com/Homebrew/brew/tree/master/Library/Homebrew/sorbet -- The `rbi` directory contains all Ruby Interface (`.rbi`) files auto-generated by running `brew typecheck --update`: +The `rbi` directory contains all Ruby Interface (`.rbi`) files auto-generated by running `brew typecheck --update`: - - `gems`: RBI files for all gems are generated using [Tapioca](https://github.com/Shopify/tapioca#tapioca). - - `dsl`: RBI files autogenerated by our [Tapioca compilers](https://github.com/Homebrew/brew/tree/master/Library/Homebrew/sorbet/tapioca/compilers). - - `upstream.rbi`: This file is not auto-generated and is a manually written file that contains temporary workarounds for upstream Sorbet issues. This file is typically empty. +- `gems`: RBI files for all gems are generated using [Tapioca](https://github.com/Shopify/tapioca#tapioca). +- `dsl`: RBI files auto-generated by our [Tapioca compilers](https://github.com/Homebrew/brew/tree/master/Library/Homebrew/sorbet/tapioca/compilers). +- `upstream.rbi`: This file is manually written and contains temporary workarounds for upstream Sorbet issues. It is typically empty. -- The `config` file is a newline-separated list of arguments to pass to `srb tc`, the same as if they’d been passed on the command line. Arguments in the config file are always passed first, followed by arguments provided on the command line. We use it to ignore Gem directories which we do not wish to type check. +The `tapioca` directory contains configuration files and compilers for Tapioca, allowing Sorbet to type check the dynamically generated components of the codebase. -- Every Ruby file in the codebase has a magic `# typed: ` comment at the top, where `` is one of [Sorbet's strictness levels], usually `false`, `true` or `strict`. The `false` files only report errors related to the syntax, constant resolution and correctness of the method signatures, but no type errors. Our long-term goal is to move all `false` files to `true` and start reporting type errors on those files as well. Therefore, when adding new files, you should ideally mark it with `# typed: true` and work out any resulting type errors. - -[Sorbet's strictness levels]: https://sorbet.org/docs/static#file-level-granularity-strictness-levels +The `config` file is a newline-separated list of arguments to pass to `srb tc`, the same as if they'd been passed on the command line. Arguments in the config file are always passed first, followed by arguments provided on the command line. We use it to ignore e.g. gem directories which we do not wish to type check. ## Using `brew typecheck` -When run without any arguments, `brew typecheck`, will run considering the strictness levels set in each of the individual Ruby files in the core Homebrew codebase. However, when it is run on a specific file or directory, more errors may show up since Sorbet cannot resolve constants defined outside the scope of the specified file. These problems can be solved with RBI files. Currently `brew typecheck` provides `--quiet`, `--file`, `--dir` and `--ignore` options but you can explore more options with `srb tc --help` and pass them with `srb tc`. +Every Ruby file in the codebase has a magic `# typed: ` comment at the top, where `` is one of [Sorbet's strictness levels](https://sorbet.org/docs/static#file-level-granularity-strictness-levels), usually `false`, `true` or `strict`. The `false` files only report errors related to the syntax, constant resolution and correctness of the method signatures, but no type errors. Our long-term goal is to move all `false` files to `true` and start reporting type errors on those files as well. Therefore, when adding new files, you should ideally mark it with `# typed: true` and work out any resulting type errors. + +When run without any arguments, `brew typecheck` will run considering the strictness levels set in each of the individual Ruby files in the core Homebrew codebase. However, when run on a specific file or directory, more errors may show up since Sorbet cannot resolve constants defined outside the scope of the specified file. These problems can be solved with RBI files. Currently `brew typecheck` provides `--quiet`, `--file`, `--dir` and `--ignore` options, but you can explore more options with `srb tc --help` and pass them with `srb tc`. ## Resolving Type Errors -Sorbet reports type errors along with an error reference code, which can be used to look up more information on how to debug the error, or what causes the error in the [Sorbet Documentation]. Here is how to debug some common type errors: +Sorbet reports type errors along with an error reference code, which can be used to look up more information on how to debug the error, or what causes the error in the [Sorbet Documentation](https://sorbet.org/docs/overview). Here's how to debug some common type errors: - Using `T.reveal_type`: in files which are `true` or higher, by wrapping a variable or method call in `T.reveal_type`, Sorbet will show us what type it thinks that variable has in the output of `srb tc`. This is particularly useful when writing [method signatures](https://sorbet.org/docs/sigs) and debugging. Make sure to remove this line from your code before committing your changes, since this is just a debugging tool. - One of the most frequent errors that we've encountered is `7003: Method does not exist.` Since Ruby is a very dynamic language, methods can be defined in ways Sorbet cannot see statically. In such cases, check if the method exists at runtime; if not, then Sorbet has caught a future bug! But, it is also possible that even though a method exists at runtime, Sorbet cannot see it. In such cases, we use [`.rbi` files](#ruby-interface-files-rbi). -- Since Sorbet does not automatically assume that Kernel is to be included in Modules, we may encounter many errors while trying to use methods like `puts`, `ohai`, `odebug` etc. There are generally two approaches to fixing this: +- Since Sorbet does not automatically assume that `Kernel` is to be included in modules, we may encounter many errors while trying to use methods like `puts`, `ohai`, `odebug` etc. There are generally two approaches to fixing this: - - If you are using `module_function` but never run `include ModuleName` anywhere, remove the `module_definition` and convert all methods to class methods (prepend the name with `self.`) - - If you do include the module elsewhere, add a `requires_ancestor` to the module defining what types of classes this module can be included in. This may be as simple as a `requires_ancestor { Kernel }`, which most classes are a descendant from. + - If you are using `module_function` but never run `include ModuleName` anywhere, remove the `module_definition` and convert all methods to class methods (prepend the name with `self.`). + - If you do include the module elsewhere, add a `requires_ancestor` to the module defining what types of classes this module can be included in. This may be as simple as a `requires_ancestor { Kernel }`, which most classes are descended from. - The tips above are very generic and apply to lots of cases. For some common gotchas when using Sorbet, refer to the [Sorbet Error Reference](https://sorbet.org/docs/error-reference) and [FAQ](https://sorbet.org/docs/faq). - -[Sorbet Documentation]: https://sorbet.org/docs/overview From 418a771d1239a595d7e0f1bd7c2b6855cd7334dd Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Fri, 23 May 2025 06:16:22 +0100 Subject: [PATCH 47/66] bundle: add support for selective cleanup --- Library/Homebrew/bundle/commands/cleanup.rb | 11 +++---- Library/Homebrew/cmd/bundle.rb | 16 ++++++---- .../test/bundle/commands/cleanup_spec.rb | 30 +++++++++++++++++++ completions/fish/brew.fish | 8 ++--- completions/zsh/_brew | 8 ++--- docs/Manpage.md | 8 ++--- manpages/brew.1 | 8 ++--- 7 files changed, 63 insertions(+), 26 deletions(-) diff --git a/Library/Homebrew/bundle/commands/cleanup.rb b/Library/Homebrew/bundle/commands/cleanup.rb index a42f07d980..7a6da0c6c3 100644 --- a/Library/Homebrew/bundle/commands/cleanup.rb +++ b/Library/Homebrew/bundle/commands/cleanup.rb @@ -25,13 +25,14 @@ module Homebrew Homebrew::Bundle::BrewServices.reset! end - def self.run(global: false, file: nil, force: false, zap: false, dsl: nil) + def self.run(global: false, file: nil, force: false, zap: false, dsl: nil, + brews: true, casks: true, taps: true, vscode: true) @dsl ||= dsl - casks = casks_to_uninstall(global:, file:) - formulae = formulae_to_uninstall(global:, file:) - taps = taps_to_untap(global:, file:) - vscode_extensions = vscode_extensions_to_uninstall(global:, file:) + casks = casks ? casks_to_uninstall(global:, file:) : [] + formulae = brews ? formulae_to_uninstall(global:, file:) : [] + taps = taps ? taps_to_untap(global:, file:) : [] + vscode_extensions = vscode ? vscode_extensions_to_uninstall(global:, file:) : [] if force if casks.any? args = zap ? ["--zap"] : [] diff --git a/Library/Homebrew/cmd/bundle.rb b/Library/Homebrew/cmd/bundle.rb index 84e6b3ab23..4dfb7a60f0 100755 --- a/Library/Homebrew/cmd/bundle.rb +++ b/Library/Homebrew/cmd/bundle.rb @@ -102,17 +102,17 @@ module Homebrew switch "--all", description: "`list` all dependencies." switch "--formula", "--brews", - description: "`list` or `dump` Homebrew formula dependencies." + description: "`list`, `dump` or `cleanup` Homebrew formula dependencies." switch "--cask", "--casks", - description: "`list` or `dump` Homebrew cask dependencies." + description: "`list`, `dump` or `cleanup` Homebrew cask dependencies." switch "--tap", "--taps", - description: "`list` or `dump` Homebrew tap dependencies." + description: "`list`, `dump` or `cleanup` Homebrew tap dependencies." switch "--mas", description: "`list` or `dump` Mac App Store dependencies." switch "--whalebrew", description: "`list` or `dump` Whalebrew dependencies." switch "--vscode", - description: "`list` or `dump` VSCode (and forks/variants) extensions." + description: "`list`, `dump` or `cleanup` VSCode (and forks/variants) extensions." switch "--no-vscode", env: :bundle_dump_no_vscode, description: "`dump` without VSCode (and forks/variants) extensions. " \ @@ -226,7 +226,13 @@ module Homebrew exec_editor(Homebrew::Bundle::Brewfile.path(global:, file:)) when "cleanup" require "bundle/commands/cleanup" - Homebrew::Bundle::Commands::Cleanup.run(global:, file:, force:, zap:) + Homebrew::Bundle::Commands::Cleanup.run( + global:, file:, force:, zap:, + brews: args.brews? || no_type_args, + casks: args.casks? || no_type_args, + taps: args.taps? || no_type_args, + vscode: args.vscode? || no_type_args + ) when "check" require "bundle/commands/check" Homebrew::Bundle::Commands::Check.run(global:, file:, no_upgrade:, verbose:) diff --git a/Library/Homebrew/test/bundle/commands/cleanup_spec.rb b/Library/Homebrew/test/bundle/commands/cleanup_spec.rb index d234f07b1e..e85f78ddc7 100644 --- a/Library/Homebrew/test/bundle/commands/cleanup_spec.rb +++ b/Library/Homebrew/test/bundle/commands/cleanup_spec.rb @@ -158,6 +158,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout end + + it "does not uninstall casks if --brews is disabled" do + expect(Kernel).not_to receive(:system) + expect(described_class).to receive(:system_output_no_stderr).and_return("") + expect { described_class.run(force: true, casks: false) }.not_to output.to_stdout + end end context "when there are casks to zap" do @@ -174,6 +180,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true, zap: true) }.to output(/Uninstalled 2 casks/).to_stdout end + + it "does not uninstall casks if --casks is disabled" do + expect(Kernel).not_to receive(:system) + expect(described_class).to receive(:system_output_no_stderr).and_return("") + expect { described_class.run(force: true, zap: true, casks: false) }.not_to output.to_stdout + end end context "when there are formulae to uninstall" do @@ -190,6 +202,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true) }.to output(/Uninstalled 2 formulae/).to_stdout end + + it "does not uninstall formulae if --casks is disabled" do + expect(Kernel).not_to receive(:system) + expect(described_class).to receive(:system_output_no_stderr).and_return("") + expect { described_class.run(force: true, brews: false) }.not_to output.to_stdout + end end context "when there are taps to untap" do @@ -206,6 +224,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do expect(described_class).to receive(:system_output_no_stderr).and_return("") described_class.run(force: true) end + + it "does not untap taps if --taps is disabled" do + expect(Kernel).not_to receive(:system) + expect(described_class).to receive(:system_output_no_stderr).and_return("") + described_class.run(force: true, taps: false) + end end context "when there are VSCode extensions to uninstall" do @@ -223,6 +247,12 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do expect(described_class).to receive(:system_output_no_stderr).and_return("") described_class.run(force: true) end + + it "does not uninstall extensions if --vscode is disabled" do + expect(Kernel).not_to receive(:system) + expect(described_class).to receive(:system_output_no_stderr).and_return("") + described_class.run(force: true, vscode: false) + end end context "when there are casks and formulae to uninstall and taps to untap but without passing `--force`" do diff --git a/completions/fish/brew.fish b/completions/fish/brew.fish index e569c1be4f..ad49769c46 100644 --- a/completions/fish/brew.fish +++ b/completions/fish/brew.fish @@ -506,14 +506,14 @@ __fish_brew_complete_sub_cmd 'bundle' 'sh' __fish_brew_complete_sub_cmd 'bundle' 'env' __fish_brew_complete_sub_cmd 'bundle' 'edit' __fish_brew_complete_arg 'bundle' -l all -d '`list` all dependencies' -__fish_brew_complete_arg 'bundle' -l cask -d '`list` or `dump` Homebrew cask dependencies' +__fish_brew_complete_arg 'bundle' -l cask -d '`list`, `dump` or `cleanup` Homebrew cask dependencies' __fish_brew_complete_arg 'bundle' -l check -d 'Check that all dependencies in the Brewfile are installed before running `exec`, `sh`, or `env`' __fish_brew_complete_arg 'bundle' -l cleanup -d '`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed' __fish_brew_complete_arg 'bundle' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'bundle' -l describe -d '`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set' __fish_brew_complete_arg 'bundle' -l file -d 'Read from or write to the `Brewfile` from this location. Use `--file=-` to pipe to stdin/stdout' __fish_brew_complete_arg 'bundle' -l force -d '`install` runs with `--force`/`--overwrite`. `dump` overwrites an existing `Brewfile`. `cleanup` actually performs its cleanup operations' -__fish_brew_complete_arg 'bundle' -l formula -d '`list` or `dump` Homebrew formula dependencies' +__fish_brew_complete_arg 'bundle' -l formula -d '`list`, `dump` or `cleanup` Homebrew formula dependencies' __fish_brew_complete_arg 'bundle' -l global -d 'Read from or write to the `Brewfile` from `$HOMEBREW_BUNDLE_FILE_GLOBAL` (if set), `${XDG_CONFIG_HOME}/homebrew/Brewfile` (if `$XDG_CONFIG_HOME` is set), `~/.homebrew/Brewfile` or `~/.Brewfile` otherwise' __fish_brew_complete_arg 'bundle' -l help -d 'Show this message' __fish_brew_complete_arg 'bundle' -l install -d 'Run `install` before continuing to other operations e.g. `exec`' @@ -523,11 +523,11 @@ __fish_brew_complete_arg 'bundle' -l no-upgrade -d '`install` does not run `brew __fish_brew_complete_arg 'bundle' -l no-vscode -d '`dump` without VSCode (and forks/variants) extensions. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_NO_VSCODE` is set' __fish_brew_complete_arg 'bundle' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'bundle' -l services -d 'Temporarily start services while running the `exec` or `sh` command. This is enabled by default if `$HOMEBREW_BUNDLE_SERVICES` is set' -__fish_brew_complete_arg 'bundle' -l tap -d '`list` or `dump` Homebrew tap dependencies' +__fish_brew_complete_arg 'bundle' -l tap -d '`list`, `dump` or `cleanup` Homebrew tap dependencies' __fish_brew_complete_arg 'bundle' -l upgrade -d '`install` runs `brew upgrade` on outdated dependencies, even if `$HOMEBREW_BUNDLE_NO_UPGRADE` is set' __fish_brew_complete_arg 'bundle' -l upgrade-formulae -d '`install` runs `brew upgrade` on any of these comma-separated formulae, even if `$HOMEBREW_BUNDLE_NO_UPGRADE` is set' __fish_brew_complete_arg 'bundle' -l verbose -d '`install` prints output from commands as they are run. `check` lists all missing dependencies' -__fish_brew_complete_arg 'bundle' -l vscode -d '`list` or `dump` VSCode (and forks/variants) extensions' +__fish_brew_complete_arg 'bundle' -l vscode -d '`list`, `dump` or `cleanup` VSCode (and forks/variants) extensions' __fish_brew_complete_arg 'bundle' -l whalebrew -d '`list` or `dump` Whalebrew dependencies' __fish_brew_complete_arg 'bundle' -l zap -d '`cleanup` casks using the `zap` command instead of `uninstall`' diff --git a/completions/zsh/_brew b/completions/zsh/_brew index bdba3d7058..3c00aa1e16 100644 --- a/completions/zsh/_brew +++ b/completions/zsh/_brew @@ -649,14 +649,14 @@ _brew_bump_unversioned_casks() { _brew_bundle() { _arguments \ '(--no-vscode)--all[`list` all dependencies]' \ - '--cask[`list` or `dump` Homebrew cask dependencies]' \ + '--cask[`list`, `dump` or `cleanup` Homebrew cask dependencies]' \ '--check[Check that all dependencies in the Brewfile are installed before running `exec`, `sh`, or `env`]' \ '--cleanup[`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed]' \ '--debug[Display any debugging information]' \ '--describe[`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set]' \ '--file[Read from or write to the `Brewfile` from this location. Use `--file=-` to pipe to stdin/stdout]' \ '--force[`install` runs with `--force`/`--overwrite`. `dump` overwrites an existing `Brewfile`. `cleanup` actually performs its cleanup operations]' \ - '--formula[`list` or `dump` Homebrew formula dependencies]' \ + '--formula[`list`, `dump` or `cleanup` Homebrew formula dependencies]' \ '--global[Read from or write to the `Brewfile` from `$HOMEBREW_BUNDLE_FILE_GLOBAL` (if set), `${XDG_CONFIG_HOME}/homebrew/Brewfile` (if `$XDG_CONFIG_HOME` is set), `~/.homebrew/Brewfile` or `~/.Brewfile` otherwise]' \ '--help[Show this message]' \ '(--upgrade)--install[Run `install` before continuing to other operations e.g. `exec`]' \ @@ -666,11 +666,11 @@ _brew_bundle() { '(--all --vscode)--no-vscode[`dump` without VSCode (and forks/variants) extensions. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_NO_VSCODE` is set]' \ '--quiet[Make some output more quiet]' \ '--services[Temporarily start services while running the `exec` or `sh` command. This is enabled by default if `$HOMEBREW_BUNDLE_SERVICES` is set]' \ - '--tap[`list` or `dump` Homebrew tap dependencies]' \ + '--tap[`list`, `dump` or `cleanup` Homebrew tap dependencies]' \ '(--install)--upgrade[`install` runs `brew upgrade` on outdated dependencies, even if `$HOMEBREW_BUNDLE_NO_UPGRADE` is set]' \ '--upgrade-formulae[`install` runs `brew upgrade` on any of these comma-separated formulae, even if `$HOMEBREW_BUNDLE_NO_UPGRADE` is set]' \ '--verbose[`install` prints output from commands as they are run. `check` lists all missing dependencies]' \ - '(--no-vscode)--vscode[`list` or `dump` VSCode (and forks/variants) extensions]' \ + '(--no-vscode)--vscode[`list`, `dump` or `cleanup` VSCode (and forks/variants) extensions]' \ '--whalebrew[`list` or `dump` Whalebrew dependencies]' \ '--zap[`cleanup` casks using the `zap` command instead of `uninstall`]' \ - subcommand \ diff --git a/docs/Manpage.md b/docs/Manpage.md index 09eb8c5b9f..50734eddaa 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -278,15 +278,15 @@ flags which will help with finding keg-only dependencies like `openssl`, `--formula` -: `list` or `dump` Homebrew formula dependencies. +: `list`, `dump` or `cleanup` Homebrew formula dependencies. `--cask` -: `list` or `dump` Homebrew cask dependencies. +: `list`, `dump` or `cleanup` Homebrew cask dependencies. `--tap` -: `list` or `dump` Homebrew tap dependencies. +: `list`, `dump` or `cleanup` Homebrew tap dependencies. `--mas` @@ -298,7 +298,7 @@ flags which will help with finding keg-only dependencies like `openssl`, `--vscode` -: `list` or `dump` VSCode (and forks/variants) extensions. +: `list`, `dump` or `cleanup` VSCode (and forks/variants) extensions. `--no-vscode` diff --git a/manpages/brew.1 b/manpages/brew.1 index 05cd33ae03..c9d84fcd31 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -169,13 +169,13 @@ Temporarily start services while running the \fBexec\fP or \fBsh\fP command\. Th \fBlist\fP all dependencies\. .TP \fB\-\-formula\fP -\fBlist\fP or \fBdump\fP Homebrew formula dependencies\. +\fBlist\fP, \fBdump\fP or \fBcleanup\fP Homebrew formula dependencies\. .TP \fB\-\-cask\fP -\fBlist\fP or \fBdump\fP Homebrew cask dependencies\. +\fBlist\fP, \fBdump\fP or \fBcleanup\fP Homebrew cask dependencies\. .TP \fB\-\-tap\fP -\fBlist\fP or \fBdump\fP Homebrew tap dependencies\. +\fBlist\fP, \fBdump\fP or \fBcleanup\fP Homebrew tap dependencies\. .TP \fB\-\-mas\fP \fBlist\fP or \fBdump\fP Mac App Store dependencies\. @@ -184,7 +184,7 @@ Temporarily start services while running the \fBexec\fP or \fBsh\fP command\. Th \fBlist\fP or \fBdump\fP Whalebrew dependencies\. .TP \fB\-\-vscode\fP -\fBlist\fP or \fBdump\fP VSCode (and forks/variants) extensions\. +\fBlist\fP, \fBdump\fP or \fBcleanup\fP VSCode (and forks/variants) extensions\. .TP \fB\-\-no\-vscode\fP \fBdump\fP without VSCode (and forks/variants) extensions\. This is enabled by default if \fB$HOMEBREW_BUNDLE_DUMP_NO_VSCODE\fP is set\. From 90323ffc3c7adcf7434bfaf30b9a9b8ea4d99c38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 08:38:21 +0000 Subject: [PATCH 48/66] build(deps): bump codecov/test-results-action Bumps the github-actions group with 1 update: [codecov/test-results-action](https://github.com/codecov/test-results-action). Updates `codecov/test-results-action` from 1.1.0 to 1.1.1 - [Release notes](https://github.com/codecov/test-results-action/releases) - [Commits](https://github.com/codecov/test-results-action/compare/f2dba722c67b86c6caa034178c6e4d35335f6706...47f89e9acb64b76debcd5ea40642d25a4adced9f) --- updated-dependencies: - dependency-name: codecov/test-results-action dependency-version: 1.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1a0275205a..5742f294cb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -335,7 +335,7 @@ jobs: filenames=$(find Library/Homebrew/test/junit -name 'rspec*.xml' -print | tr '\n' ',') echo "filenames=${filenames%,}" >> "$GITHUB_OUTPUT" - - uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706 # v1.1.0 + - uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1 with: working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }} files: ${{ steps.junit_xml.outputs.filenames }} From 5ee4e609acf1011d82e4ddac3420b2769fb3f4cc Mon Sep 17 00:00:00 2001 From: Patrick Linnane Date: Fri, 23 May 2025 20:58:02 -0700 Subject: [PATCH 49/66] formula_creator: Update Ruby template Signed-off-by: Patrick Linnane --- Library/Homebrew/formula_creator.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 6bd6b0fdde..2abb3fba64 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -216,11 +216,14 @@ module Homebrew <% elsif @mode == :python %> virtualenv_install_with_resources <% elsif @mode == :ruby %> + ENV["BUNDLE_VERSION"] = "system" # Avoid installing Bundler into the keg ENV["GEM_HOME"] = libexec - system "bundle", "install", "-without", "development", "test" + system "bundle", "config", "set", "without", "development", "test" + system "bundle", "install" system "gem", "build", "\#{name}.gemspec" system "gem", "install", "\#{name}-\#{version}.gem" + bin.install libexec/"bin/\#{name}" bin.env_script_all_files(libexec/"bin", GEM_HOME: ENV["GEM_HOME"]) <% elsif @mode == :rust %> From 97acfb94ce03f067fdaf1dd8683bc1dfb5069847 Mon Sep 17 00:00:00 2001 From: Gibson Fahnestock Date: Fri, 23 May 2025 16:47:06 +0100 Subject: [PATCH 50/66] bump-pr: respect --write-only flag and skip git operations The flag used to work well, but at some point started to run more and more git actions. We use this to update formula and casks in other homebrew taps, and it works well except for this issue. --- Library/Homebrew/dev-cmd/bump-cask-pr.rb | 11 ++++++----- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 10 ++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-cask-pr.rb b/Library/Homebrew/dev-cmd/bump-cask-pr.rb index bcf3cb866a..72e20c132e 100644 --- a/Library/Homebrew/dev-cmd/bump-cask-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-cask-pr.rb @@ -49,7 +49,6 @@ module Homebrew description: "Use the specified GitHub organization for forking." conflicts "--dry-run", "--write" - conflicts "--no-audit", "--online" conflicts "--version=", "--version-arm=" conflicts "--version=", "--version-intel=" @@ -85,7 +84,9 @@ module Homebrew method or 'livecheck' block with 'skip'.) EOS - odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(cask.tap) + if !args.write_only? && GitHub.too_many_open_prs?(cask.tap) + odie "You have too many PRs open: close or merge some first!" + end new_version = BumpVersionParser.new( general: args.version, @@ -113,7 +114,7 @@ module Homebrew raise UsageError, "No `--version`, `--url` or `--sha256` argument specified!" end - check_pull_requests(cask, new_version:) + check_pull_requests(cask, new_version:) unless args.write_only? replacement_pairs ||= [] branch_name = "bump-#{cask.token}" @@ -136,7 +137,7 @@ module Homebrew end if new_version.present? - # For simplicity, our naming defers to the arm version if we multiple architectures are specified + # For simplicity, our naming defers to the arm version if multiple architectures are specified branch_version = new_version.arm || new_version.general if branch_version.is_a?(Cask::DSL::Version) commit_version = shortened_version(branch_version, cask:) @@ -171,7 +172,7 @@ module Homebrew pr_title: commit_message, } - GitHub.create_bump_pr(pr_info, args:) + GitHub.create_bump_pr(pr_info, args:) unless args.write_only? end private diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index c3a0646c15..b072eecf30 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -121,7 +121,9 @@ module Homebrew method or 'livecheck' block with 'skip'.) EOS - odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(tap) + if !args.write_only? && GitHub.too_many_open_prs?(tap) + odie "You have too many PRs open: close or merge some first!" + end formula_spec = formula.stable odie "#{formula}: no stable specification found!" if formula_spec.blank? @@ -135,7 +137,7 @@ module Homebrew remote_branch = tap.git_repository.origin_branch_name previous_branch = "-" - check_pull_requests(formula, tap_remote_repo, state: "open") + check_pull_requests(formula, tap_remote_repo, state: "open") unless args.write_only? all_formulae = [] if args.bump_synced.present? @@ -434,7 +436,7 @@ module Homebrew # If `brew audit` fails, revert the changes made to any formula. commits.each do |revert| revert_formula = Formula[revert[:formula_name]] - revert_formula.path.atomic_write(revert[:old_contents]) unless args.dry_run? + revert_formula.path.atomic_write(revert[:old_contents]) unless args.dry_run? || args.write_only? revert_alias_rename = revert[:additional_files] if revert_alias_rename && (source = revert_alias_rename.first) && (destination = revert_alias_rename.last) FileUtils.mv source, destination @@ -471,7 +473,7 @@ module Homebrew tap_remote_repo:, pr_message:, } - GitHub.create_bump_pr(pr_info, args:) + GitHub.create_bump_pr(pr_info, args:) unless args.write_only? end private From e76a02eadd04346cd809ab3d9e1c48ed44b1889a Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Sat, 24 May 2025 17:03:40 +0200 Subject: [PATCH 51/66] feat: add clarification of macOS patches in Support-Tiers --- docs/Support-Tiers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Support-Tiers.md b/docs/Support-Tiers.md index 2f5baf9193..bf7502a776 100644 --- a/docs/Support-Tiers.md +++ b/docs/Support-Tiers.md @@ -22,7 +22,7 @@ A Tier 1 supported configuration is one in which: For Tier 1 support, Homebrew on macOS must be all of: - running on official Apple hardware (e.g. not a "Hackintosh" or VM) -- running a version of macOS supported by Apple on that hardware +- running the latest patch of a version of macOS supported by Apple on that hardware - running a version of macOS with Homebrew CI coverage (i.e. the latest stable or prerelease version, two preceding versions) - installed in the default prefix (i.e. `/opt/homebrew` on Apple Silicon, `/usr/local` on Intel x86_64) - running on a supported architecture (i.e. Apple Silicon or Intel x86_64) From 24cd62140dceab61fd3212251f959a08b429801e Mon Sep 17 00:00:00 2001 From: Daeho Ro <40587651+daeho-ro@users.noreply.github.com> Date: Sun, 25 May 2025 00:15:26 +0900 Subject: [PATCH 52/66] feat: add _ to powershell completion filename --- Library/Homebrew/formula.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index f1fc47661e..c07a6f6292 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2126,7 +2126,7 @@ class Formula bash: bash_completion/base_name, zsh: zsh_completion/"_#{base_name}", fish: fish_completion/"#{base_name}.fish", - pwsh: pwsh_completion/"#{base_name}.ps1", + pwsh: pwsh_completion/"_#{base_name}.ps1", } shells.each do |shell| From 3f15e0eef04bb08c3acfd0edec7aabb548f282be Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 26 May 2025 08:40:14 +0100 Subject: [PATCH 53/66] dev-cmd/bump-formula-pr: fix style. --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index b072eecf30..8c417a4f63 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -436,7 +436,7 @@ module Homebrew # If `brew audit` fails, revert the changes made to any formula. commits.each do |revert| revert_formula = Formula[revert[:formula_name]] - revert_formula.path.atomic_write(revert[:old_contents]) unless args.dry_run? || args.write_only? + revert_formula.path.atomic_write(revert[:old_contents]) if !args.dry_run? && !args.write_only? revert_alias_rename = revert[:additional_files] if revert_alias_rename && (source = revert_alias_rename.first) && (destination = revert_alias_rename.last) FileUtils.mv source, destination From 81ea767ea3486943c692695a5ed4e6ec9c99802c Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Mon, 19 May 2025 13:58:32 +0200 Subject: [PATCH 54/66] Update Library/Homebrew/extend/pathname.rb --- Library/Homebrew/extend/pathname.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 8dee212499..01912337ad 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -423,7 +423,7 @@ class Pathname script_name: T.any(String, Pathname), java_opts: String, java_version: T.nilable(String), - java_version: Hash[Symbol, String], + env: T::Hash[Symbol, String], ).returns(Integer) } def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil, env: {}) From 1035024b834007f3177842ea0d5b6f206a14c6a2 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 26 May 2025 17:19:48 +0100 Subject: [PATCH 55/66] Revert "feat: allow env for write_jar_script" --- Library/Homebrew/extend/pathname.rb | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index 01912337ad..91337f81d1 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -423,18 +423,15 @@ class Pathname script_name: T.any(String, Pathname), java_opts: String, java_version: T.nilable(String), - env: T::Hash[Symbol, String], ).returns(Integer) } - def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil, env: {}) - env.merge!(Language::Java.overridable_java_home_env(java_version)) - env_export = +"" - env.each { |key, value| env_export << "#{key}=\"#{value}\" " } + def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil) mkpath - (self/script_name).write <<~SH + (self/script_name).write <<~EOS #!/bin/bash - #{env_export}exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@" - SH + export JAVA_HOME="#{Language::Java.overridable_java_home_env(java_version)[:JAVA_HOME]}" + exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@" + EOS end def install_metafiles(from = Pathname.pwd) From 2131d702651b1e0f5f0c9dee59aaaae440364ae1 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 27 May 2025 11:46:56 +0100 Subject: [PATCH 56/66] workflows/pkg-installer: fix release upload. - Get the release tag from the installer path. - Remove unnecessary `gh` installation. - Remove failing test that I can't fix. --- .github/workflows/pkg-installer.yml | 10 ++++------ Library/Homebrew/test/utils/github_spec.rb | 8 -------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pkg-installer.yml b/.github/workflows/pkg-installer.yml index 2b23ea501a..adb7f99c4c 100644 --- a/.github/workflows/pkg-installer.yml +++ b/.github/workflows/pkg-installer.yml @@ -230,17 +230,15 @@ jobs: --password "${PKG_APPLE_ID_APP_SPECIFIC_PASSWORD}" --wait - - name: Install gh - run: brew install gh - - name: Upload installer to GitHub release if: github.event_name == 'release' env: GH_TOKEN: ${{ github.token }} INSTALLER_PATH: ${{ needs.build.outputs.installer_path }} - run: gh release upload --repo Homebrew/brew - "${GITHUB_REF//refs\/tags\//}" - "${INSTALLER_PATH}" + run: | + VERSION="${INSTALLER_PATH#Homebrew-}" + VERSION="${VERSION%.pkg}" + gh release upload --repo Homebrew/brew "${VERSION}" "${INSTALLER_PATH}" issue: needs: [build, test, upload] diff --git a/Library/Homebrew/test/utils/github_spec.rb b/Library/Homebrew/test/utils/github_spec.rb index e07f093e7c..d4b6ca2ac6 100644 --- a/Library/Homebrew/test/utils/github_spec.rb +++ b/Library/Homebrew/test/utils/github_spec.rb @@ -71,14 +71,6 @@ RSpec.describe GitHub do ) expect(urls).to eq(["https://api.github.com/repos/Homebrew/homebrew-core/actions/artifacts/1969725476/zip"]) end - - it "supports pattern matching" do - urls = described_class.get_artifact_urls( - described_class.get_workflow_run("Homebrew", "brew", "17068", - workflow_id: "pkg-installer.yml", artifact_pattern: "Homebrew-*.pkg"), - ) - expect(urls).to eq(["https://api.github.com/repos/Homebrew/brew/actions/artifacts/1405050842/zip"]) - end end describe "::pull_request_commits", :needs_network do From 214074cf02d6de13a2881e9e24a228ca1de556b7 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 27 May 2025 08:31:21 +0100 Subject: [PATCH 57/66] docs/Support-Tiers: tweak wording, add CODEOWNERS. Let's improve the wording of the Support Tiers document and add it to a (new) CODEOWNERS file to ensure that I or the TSC review changes. --- .gitignore | 1 + CODEOWNERS | 11 +++++++++++ docs/Support-Tiers.md | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 CODEOWNERS diff --git a/.gitignore b/.gitignore index 4d250a0682..ca100463a9 100644 --- a/.gitignore +++ b/.gitignore @@ -164,6 +164,7 @@ !/completions !/docs !/manpages +!/CODEOWNERS # Unignore our packaging files !/package diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000000..b76c645caf --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,11 @@ +# Note that the naming of this file is incorrect for our case: these people do not "own" the provided files but are +# people with write-access to this repository who wish to approve changes to these files. +# +# Their review is required to merge PRs that change these files. +# +# To be explicit: we will never accept changes to this file adding people from outside the Homebrew GitHub +# organisation. If you are not a Homebrew maintainer: you do not personally "own" or "maintain" any files. +# +# Note: @Homebrew/plc does not have write-access to this repository, and therefore cannot be listed in this file. + +docs/Support-Tiers.md @Homebrew/tsc @MikeMcQuaid diff --git a/docs/Support-Tiers.md b/docs/Support-Tiers.md index bf7502a776..5a98f0c72e 100644 --- a/docs/Support-Tiers.md +++ b/docs/Support-Tiers.md @@ -22,7 +22,7 @@ A Tier 1 supported configuration is one in which: For Tier 1 support, Homebrew on macOS must be all of: - running on official Apple hardware (e.g. not a "Hackintosh" or VM) -- running the latest patch of a version of macOS supported by Apple on that hardware +- running the latest patch release of a macOS version supported by Apple on that hardware - running a version of macOS with Homebrew CI coverage (i.e. the latest stable or prerelease version, two preceding versions) - installed in the default prefix (i.e. `/opt/homebrew` on Apple Silicon, `/usr/local` on Intel x86_64) - running on a supported architecture (i.e. Apple Silicon or Intel x86_64) From 9d949f3f2f75c54cf26bcd6cd482328b60156977 Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Tue, 27 May 2025 08:04:53 +0000 Subject: [PATCH 58/66] stale-issues.yml: update to match main configuration --- .github/workflows/stale-issues.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml index c4bfc33e0e..608d2e65e9 100644 --- a/.github/workflows/stale-issues.yml +++ b/.github/workflows/stale-issues.yml @@ -38,7 +38,7 @@ jobs: pull-requests: write steps: - name: Mark/Close Stale Issues and Pull Requests - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 21 @@ -68,7 +68,7 @@ jobs: pull-requests: write steps: - name: Mark/Close Stale `bump-formula-pr` and `bump-cask-pr` Pull Requests - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 + uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 2 From 8fe9691b131a9eb07b0fcd6095dcd9360d5f5e56 Mon Sep 17 00:00:00 2001 From: BrewTestBot <1589480+BrewTestBot@users.noreply.github.com> Date: Tue, 27 May 2025 00:08:43 +0000 Subject: [PATCH 59/66] Update manpage and completions. Autogenerated by the [sponsors-maintainers-man-completions](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/sponsors-maintainers-man-completions.yml) workflow. --- completions/zsh/_brew | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/completions/zsh/_brew b/completions/zsh/_brew index 3c00aa1e16..a93a909464 100644 --- a/completions/zsh/_brew +++ b/completions/zsh/_brew @@ -566,7 +566,7 @@ _brew_bump_cask_pr() { '--fork-org[Use the specified GitHub organization for forking]' \ '--help[Show this message]' \ '--message[Prepend message to the default pull request message]' \ - '(--online)--no-audit[Don'\''t run `brew audit` before opening the PR]' \ + '--no-audit[Don'\''t run `brew audit` before opening the PR]' \ '--no-browse[Print the pull request URL instead of opening in a browser]' \ '--no-fork[Don'\''t try to fork the repository]' \ '--no-style[Don'\''t run `brew style --fix` before opening the PR]' \ From 9e059952994a427916c665ccc78dc5b03938e6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 27 May 2025 14:54:57 +0000 Subject: [PATCH 60/66] move `git fetch` before getting `origin_branch_name` --- Library/Homebrew/tap.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 1b487f52fa..395fce2b59 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -590,14 +590,15 @@ class Tap end return unless remote - current_upstream_head = T.must(git_repository.origin_branch_name) - return if requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head) - args = %w[fetch] args << "--quiet" if quiet args << "origin" args << "+refs/heads/*:refs/remotes/origin/*" safe_system "git", "-C", path, *args + + current_upstream_head = T.must(git_repository.origin_branch_name) + return if requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head) + git_repository.set_head_origin_auto new_upstream_head = T.must(git_repository.origin_branch_name) From 24d9524bbdf65da3f53b132bcb9b1bc9c71ff62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 27 May 2025 16:01:35 +0000 Subject: [PATCH 61/66] remove `T.must` to avoid full fetch --- Library/Homebrew/tap.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 395fce2b59..3f0760e43f 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -590,17 +590,18 @@ class Tap end return unless remote + current_upstream_head = git_repository.origin_branch_name + return if current_upstream_head.present? && requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head) + args = %w[fetch] args << "--quiet" if quiet args << "origin" args << "+refs/heads/*:refs/remotes/origin/*" safe_system "git", "-C", path, *args - - current_upstream_head = T.must(git_repository.origin_branch_name) - return if requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head) - git_repository.set_head_origin_auto + current_upstream_head = git_repository.origin_branch_name if current_upstream_head.nil? + new_upstream_head = T.must(git_repository.origin_branch_name) return if new_upstream_head == current_upstream_head From 0480411c6fbf858c704f94fc9ddaa5196ee6a40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 27 May 2025 16:35:50 +0000 Subject: [PATCH 62/66] use conditional assignment operator Co-authored-by: Bo Anderson --- Library/Homebrew/tap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 3f0760e43f..1e577fe688 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -600,7 +600,7 @@ class Tap safe_system "git", "-C", path, *args git_repository.set_head_origin_auto - current_upstream_head = git_repository.origin_branch_name if current_upstream_head.nil? + current_upstream_head ||= git_repository.origin_branch_name new_upstream_head = T.must(git_repository.origin_branch_name) return if new_upstream_head == current_upstream_head From 7476f09672ba150d22c2816aaee0590f31ac01b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 27 May 2025 16:43:54 +0000 Subject: [PATCH 63/66] format --- Library/Homebrew/tap.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 1e577fe688..ab1749bc2c 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -591,7 +591,8 @@ class Tap return unless remote current_upstream_head = git_repository.origin_branch_name - return if current_upstream_head.present? && requested_remote.blank? && git_repository.origin_has_branch?(current_upstream_head) + return if current_upstream_head.present? && requested_remote.blank? && + git_repository.origin_has_branch?(current_upstream_head) args = %w[fetch] args << "--quiet" if quiet From 972414cec7a2b3fa8fe36df5bcafd621f8b076ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Oddsson?= Date: Tue, 27 May 2025 16:55:00 +0000 Subject: [PATCH 64/66] add a `T.must` after fetching tap --- Library/Homebrew/tap.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index ab1749bc2c..bf83e7ee29 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -601,7 +601,7 @@ class Tap safe_system "git", "-C", path, *args git_repository.set_head_origin_auto - current_upstream_head ||= git_repository.origin_branch_name + current_upstream_head ||= T.must(git_repository.origin_branch_name) new_upstream_head = T.must(git_repository.origin_branch_name) return if new_upstream_head == current_upstream_head From 9425734b4ff02794d3008518354a97f4adbf0e30 Mon Sep 17 00:00:00 2001 From: botantony Date: Tue, 27 May 2025 21:27:40 +0200 Subject: [PATCH 65/66] autobump_constants: add `:requires_manual_review` reason Signed-off-by: botantony --- Library/Homebrew/autobump_constants.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/Library/Homebrew/autobump_constants.rb b/Library/Homebrew/autobump_constants.rb index 0803803fe6..6dfab8de22 100644 --- a/Library/Homebrew/autobump_constants.rb +++ b/Library/Homebrew/autobump_constants.rb @@ -7,4 +7,5 @@ NO_AUTOBUMP_REASONS_LIST = T.let({ bumped_by_upstream: "bumped by upstream", extract_plist: "livecheck uses `:extract_plist` strategy", latest_version: "`version` is set to `:latest`", + requires_manual_review: "a manual review of this package is required for inclusion in autobump", }.freeze, T::Hash[Symbol, String]) From 493f2aa9f088b47e07cf4a61a6a730c3e70877fd Mon Sep 17 00:00:00 2001 From: Eric Knibbe Date: Wed, 28 May 2025 13:53:38 -0400 Subject: [PATCH 66/66] docs/Brew-Livecheck review --- docs/Brew-Livecheck.md | 58 +++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/docs/Brew-Livecheck.md b/docs/Brew-Livecheck.md index e186436ae4..3b4b0d535f 100644 --- a/docs/Brew-Livecheck.md +++ b/docs/Brew-Livecheck.md @@ -1,23 +1,26 @@ --- -last_review_date: "1970-01-01" +last_review_date: 2025-05-28 --- # `brew livecheck` The `brew livecheck` command finds the newest version of a formula or cask's software by checking upstream. Livecheck has [strategies](https://rubydoc.brew.sh/Homebrew/Livecheck/Strategy) to identify versions from various sources, such as Git repositories, websites, etc. -## Behavior +## Behaviour When livecheck isn't given instructions for how to check for upstream versions, it does the following by default: -1. For formulae: Collect the `stable`, `head`, and `homepage` URLs, in that order (resources simply use their `url`). For casks: Collect the `url` and `homepage` URLs, in that order. +1. Collect a list of URLs to check. + * For formulae: use their `stable`, `head`, and `homepage` URLs, in that order. + * For formula resources: use their `url`. + * For casks: use their `url` and `homepage` URLs, in that order. 1. Determine if any strategies apply to the first URL. If not, try the next URL. 1. If a strategy can be applied, use it to check for new versions. 1. Return the newest version (or an error if versions could not be found at any available URLs). -It's sometimes necessary to override this default behavior to create a working check. If a source doesn't provide the newest version, we need to check a different one. If livecheck doesn't correctly match version text, we need to provide an appropriate regex or `strategy` block. +It's sometimes necessary to override this default behaviour to create a working check. If a source doesn't provide the newest version, we need to check a different one. If livecheck doesn't correctly match version text, we need to provide an appropriate regex or `strategy` block. -This can be accomplished by adding a `livecheck` block to the formula/cask/resource. For more information on the available methods, please refer to the [`Livecheck` class documentation](https://rubydoc.brew.sh/Livecheck). +This can be accomplished by adding a `livecheck` block to the formula/cask/resource. For more information on the available methods, please refer to the [`Livecheck` class](https://rubydoc.brew.sh/Livecheck) documentation. ## Creating a check @@ -47,9 +50,9 @@ The `livecheck` block regex restricts matches to a subset of the fetched content * **Regexes should be made case insensitive, whenever possible**, by adding `i` at the end (e.g. `/.../i` or `%r{...}i`). This improves reliability, as the regex will handle changes in letter case without needing modifications. -* **Regexes should only use a capturing group around the version text**. For example, in `/href=.*?example-v?(\d+(?:\.\d+)+)(?:-src)?\.t/i`, we're only using a capturing group around the version test (matching a version like `1.2`, `1.2.3`, etc.) and we're using non-capturing groups elsewhere (e.g. `(?:-src)?`). +* **Regexes should only use a capturing group around the version text**. For example, in `/href=.*?example-v?(\d+(?:\.\d+)+)(?:-src)?\.t/i`, we're only using a capturing group around the version text (matching a version like `1.2`, `1.2.3`, etc.) and we're using non-capturing groups elsewhere (e.g. `(?:-src)?`). -* **Anchor the start/end of the regex, to restrict the scope**. For example, on HTML pages we often match file names or version directories in `href` attribute URLs (e.g. `/href=.*?example[._-]v?(\d+(?:\.\d+)+)\.zip/i`). The general idea is that limiting scope will help exclude unwanted matches. +* **Anchor the start/end of the regex to restrict its scope**. For example, on HTML pages we often match file names or version directories in `href` attribute URLs (e.g. `/href=.*?example[._-]v?(\d+(?:\.\d+)+)\.zip/i`). The general idea is that limiting scope will help exclude unwanted matches. * **Avoid generic catchalls like `.*` or `.+`** in favor of something non-greedy and/or contextually appropriate. For example, to match characters within the bounds of an HTML attribute, use `[^"' >]+?`. @@ -112,9 +115,17 @@ end The referenced formula/cask should be in the same tap, as a reference to a formula/cask from another tap will generate an error if the user doesn't already have it tapped. +A formula resource whose version stays in sync with its parent formula versioning can use the same check with `formula :parent`. + +```ruby +livecheck do + formula :parent +end +``` + ### `POST` requests -Some checks require making a `POST` request and that can be accomplished by adding a `post_form` or `post_json` option to a `livecheck` block `url`. +Some checks require making a `POST` request, which can be accomplished by adding a `post_form` or `post_json` option to a `livecheck` block `url`. ```ruby livecheck do @@ -126,7 +137,7 @@ livecheck do end ``` -`post_form` is used for form data and `post_json` is used for JSON data. livecheck will encode the provided hash value to the appropriate format before making the request. +`post_form` is used for form data and `post_json` is used for JSON data. Livecheck will encode the provided hash value to the appropriate format before making the request. `POST` support only applies to strategies that use `Strategy::page_headers` or `::page_content` (directly or indirectly), so it does not apply to `ExtractPlist`, `Git`, `GithubLatest`, `GithubReleases`, etc. @@ -219,7 +230,7 @@ end A `strategy` block for `GithubLatest` receives the parsed JSON data from the GitHub API for a repository's "latest" release, along with a regex. When a regex is not provided in a `livecheck` block, the strategy's default regex is passed into the `strategy` block instead. -By default, the strategy matches version text in the release's tag or title but a `strategy` block can be used to check any of the fields in the release JSON. The logic in the following `strategy` block is similar to the default behavior but only checks the release tag instead, for the sake of demonstration: +By default, the strategy matches version text in the release's tag or title but a `strategy` block can be used to check any of the fields in the release JSON. The logic in the following `strategy` block is similar to the default behaviour but only checks the release tag instead, for the sake of demonstration: ```ruby livecheck do @@ -240,7 +251,7 @@ You can find more information on the response JSON from this API endpoint in the A `strategy` block for `GithubReleases` receives the parsed JSON data from the GitHub API for a repository's most recent releases, along with a regex. When a regex is not provided in a `livecheck` block, the strategy's default regex is passed into the `strategy` block instead. -By default, the strategy matches version text in each release's tag or title but a `strategy` block can be used to check any of the fields in the release JSON. The logic in the following `strategy` block is similar to the default behavior but only checks the release tag instead, for the sake of demonstration: +By default, the strategy matches version text in each release's tag or title but a `strategy` block can be used to check any of the fields in the release JSON. The logic in the following `strategy` block is similar to the default behaviour but only checks the release tag instead, for the sake of demonstration: ```ruby livecheck do @@ -343,7 +354,7 @@ A `strategy` block for `Sparkle` receives an `item` which has methods for the `v brew find-appcast '/path/to/application.app' ``` -The default pattern for the `Sparkle` strategy is to generate `"#{item.short_version},#{item.version}"` from `sparkle:shortVersionString` and `sparkle:version` if both are set. In the example below, the `url` also includes a download ID which is needed: +The default pattern for the `Sparkle` strategy is to generate `"#{item.short_version},#{item.version}"` from `sparkle:shortVersionString` and `sparkle:version` if both are set. In the example below, the returned value also includes a needed download ID from the `url`: ```ruby livecheck do @@ -363,6 +374,17 @@ livecheck do end ``` +If the value returned by `item` is not the most recent or not what's desired, passing `items` instead will allow iterating over all the items in the feed: + +```ruby +livecheck do + url "https://www.example.com/example.xml" + strategy :sparkle do |items| + items.find { |item| item.channel.nil? }&.short_version + end +end +``` + #### `Xml` `strategy` block A `strategy` block for `Xml` receives an `REXML::Document` object and, if provided, a regex. For example, if the XML contains a `versions` element with nested `version` elements and their inner text contains the version string, we could extract it using a regex as follows: @@ -416,6 +438,18 @@ livecheck do end ``` +### `throttle` + +For software with extremely frequent releases that don't all need to be published as formula/cask updates, livecheck can be set to reduce how many versions it surfaces by using `throttle`. In this example, only versions whose last component is divisible by 10 will be returned. + +```ruby +livecheck do + url :stable + regex(/^v?(\d+(?:\.\d+)+)$/i) + throttle 10 +end +``` + ### `skip` Livecheck automatically skips some formulae/casks for a number of reasons (deprecated, disabled, etc.). However, on rare occasions we need to use a `livecheck` block to do a manual skip. The `skip` method takes a string containing a very brief reason for skipping.