Merge remote-tracking branch 'tyuwags/master'

This commit is contained in:
thibhero 2025-05-03 15:24:27 -04:00
commit fd97539b9e
113 changed files with 204 additions and 132 deletions

View File

@ -23,6 +23,9 @@ updates:
allow:
- dependency-type: all
groups:
rspec:
patterns:
- "rspec*"
sorbet:
patterns:
- "sorbet*"

View File

@ -52,7 +52,7 @@ jobs:
run: vale docs/
- name: Install Ruby
uses: ruby/setup-ruby@dffc446db9ba5a0c4446edb5bca1c5c473a806c5 # v1.235.0
uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
with:
bundler-cache: true
working-directory: docs

View File

@ -42,7 +42,7 @@ jobs:
persist-credentials: false
- name: Install Ruby
uses: ruby/setup-ruby@dffc446db9ba5a0c4446edb5bca1c5c473a806c5 # v1.235.0
uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
with:
bundler-cache: true
working-directory: rubydoc

View File

@ -91,7 +91,7 @@ jobs:
fi
- name: Generate push token
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
uses: actions/create-github-app-token@30bf6253fa41bdc8d1501d202ad15287582246b4 # v2.0.3
id: app-token
if: github.event_name == 'workflow_dispatch'
with:

View File

@ -63,19 +63,19 @@ GEM
rspec-mocks (~> 3.13.0)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.3)
rspec-expectations (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-github (3.0.0)
rspec-core (~> 3.0)
rspec-mocks (3.13.2)
rspec-mocks (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-sorbet (1.9.2)
sorbet-runtime
rspec-support (3.13.2)
rspec-support (3.13.3)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.75.2)
@ -104,7 +104,7 @@ GEM
rubocop (~> 1.72, >= 1.72.1)
rubocop-sorbet (0.10.0)
rubocop (>= 1)
ruby-lsp (0.23.15)
ruby-lsp (0.23.16)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
@ -122,15 +122,15 @@ GEM
simplecov-html (0.13.1)
simplecov_json_formatter (0.1.4)
simpleidn (0.2.3)
sorbet (0.5.12046)
sorbet-static (= 0.5.12046)
sorbet-runtime (0.5.12046)
sorbet-static (0.5.12046-aarch64-linux)
sorbet-static (0.5.12046-universal-darwin)
sorbet-static (0.5.12046-x86_64-linux)
sorbet-static-and-runtime (0.5.12046)
sorbet (= 0.5.12046)
sorbet-runtime (= 0.5.12046)
sorbet (0.5.12053)
sorbet-static (= 0.5.12053)
sorbet-runtime (0.5.12053)
sorbet-static (0.5.12053-aarch64-linux)
sorbet-static (0.5.12053-universal-darwin)
sorbet-static (0.5.12053-x86_64-linux)
sorbet-static-and-runtime (0.5.12053)
sorbet (= 0.5.12053)
sorbet-runtime (= 0.5.12053)
spoom (1.6.1)
erubi (>= 1.10.0)
prism (>= 0.28.0)

View File

@ -96,7 +96,7 @@ module Homebrew
mtime = insecure_download ? Time.new(1970, 1, 1) : Time.now
FileUtils.touch(target, mtime:) unless skip_download
JSON.parse(target.read, freeze: true)
JSON.parse(target.read(encoding: Encoding::UTF_8), freeze: true)
rescue JSON::ParserError
target.unlink
retry_count += 1

View File

@ -4,4 +4,5 @@
# TODO: add more reasons here
NO_AUTOBUMP_REASONS_LIST = T.let({
incompatible_version_format: "incompatible version format",
bumped_by_upstream: "bumped by upstream",
}.freeze, T::Hash[Symbol, String])

View File

@ -692,9 +692,10 @@ on_request: true)
sig { void }
def forbidden_cask_and_formula_check
forbid_casks = Homebrew::EnvConfig.forbid_casks?
forbidden_formulae = Set.new(Homebrew::EnvConfig.forbidden_formulae.to_s.split)
forbidden_casks = Set.new(Homebrew::EnvConfig.forbidden_casks.to_s.split)
return if forbidden_formulae.blank? && forbidden_casks.blank?
return if !forbid_casks && forbidden_formulae.blank? && forbidden_casks.blank?
owner = Homebrew::EnvConfig.forbidden_owner
owner_contact = if (contact = Homebrew::EnvConfig.forbidden_owner_contact.presence)
@ -705,13 +706,17 @@ on_request: true)
cask_and_formula_dependencies.each do |dep_cask_or_formula|
dep_name, dep_type, variable = if dep_cask_or_formula.is_a?(Cask) && forbidden_casks.present?
dep_cask = dep_cask_or_formula
dep_cask_name = if forbidden_casks.include?(dep_cask.token)
env_variable = "HOMEBREW_FORBIDDEN_CASKS"
dep_cask_name = if forbid_casks
env_variable = "HOMEBREW_FORBID_CASKS"
dep_cask.token
elsif forbidden_casks.include?(dep_cask.full_name)
dep_cask.token
elsif dep_cask.tap.present? &&
forbidden_casks.include?(dep_cask.full_name)
dep_cask.full_name
end
[dep_cask_name, "cask", "HOMEBREW_FORBIDDEN_CASKS"]
[dep_cask_name, "cask", env_variable]
elsif dep_cask_or_formula.is_a?(Formula) && forbidden_formulae.present?
dep_formula = dep_cask_or_formula
formula_name = if forbidden_formulae.include?(dep_formula.name)
@ -731,9 +736,13 @@ on_request: true)
)
end
end
return if forbidden_casks.blank?
return if !forbid_casks && forbidden_casks.blank?
if forbidden_casks.include?(@cask.token)
variable = "HOMEBREW_FORBIDDEN_CASKS"
if forbid_casks
variable = "HOMEBREW_FORBID_CASKS"
@cask.token
elsif forbidden_casks.include?(@cask.token)
@cask.token
elsif forbidden_casks.include?(@cask.full_name)
@cask.full_name
@ -742,7 +751,7 @@ on_request: true)
end
raise CaskCannotBeInstalledError.new(@cask, <<~EOS
forbidden for installation by #{owner} in `HOMEBREW_FORBIDDEN_CASKS`.#{owner_contact}
forbidden for installation by #{owner} in `#{variable}`.#{owner_contact}
EOS
)
end

View File

@ -54,7 +54,7 @@ module Homebrew
flag "--file=", description: "Use the service file from this location to `start` the service."
flag "--sudo-service-user=", description: "When run as root on macOS, run the service(s) as this user."
flag "--max-wait=", description: "Wait at most this many seconds for `stop` to finish stopping a service. " \
"Omit this flag or set this to zero (0) seconds to wait indefinitely."
"Defaults to 60. Set this to zero (0) seconds to wait indefinitely."
switch "--all", description: "Run <subcommand> on all services."
switch "--json", description: "Output as JSON."
switch "--no-wait", description: "Don't wait for `stop` to finish stopping the service."
@ -177,7 +177,7 @@ module Homebrew
targets,
verbose: args.verbose?,
no_wait: args.no_wait?,
max_wait: args.max_wait.to_f,
max_wait: args.max_wait&.to_f || 60.0,
keep: args.keep?,
)
when *Homebrew::Services::Commands::Kill::TRIGGERS

View File

@ -226,6 +226,10 @@ module Homebrew
description: "A space-separated list of taps. Homebrew will refuse to install a " \
"formula if it or any of its dependencies is in a tap on this list.",
},
HOMEBREW_FORBID_CASKS: {
description: "If set, Homebrew will refuse to install any casks.",
boolean: true,
},
HOMEBREW_FORBID_PACKAGES_FROM_PATHS: {
description: "If set, Homebrew will refuse to read formulae or casks provided from file paths, " \
"e.g. `brew install ./package.rb`.",

View File

@ -519,7 +519,6 @@ module Homebrew
"kibana" => "7.11",
"nomad" => "1.7",
"packer" => "1.10",
"redis" => "7.4",
"terraform" => "1.6",
"vagrant" => "2.4",
"vagrant-completion" => "2.4",

View File

@ -255,8 +255,18 @@ class GitHubRunnerMatrix
@testing_formulae.select do |formula|
next false if macos_version && !formula.compatible_with?(macos_version)
formula.public_send(:"#{platform}_compatible?") &&
formula.public_send(:"#{arch}_compatible?")
simulate_arch = case arch
when :x86_64
:intel
when :arm64
:arm
else
:dunno
end
Homebrew::SimulateSystem.with(os: platform, arch: simulate_arch) do
formula.public_send(:"#{platform}_compatible?") &&
formula.public_send(:"#{arch}_compatible?")
end
end
end
end

View File

@ -9,17 +9,15 @@ class LazyObject < Delegator
super(callable)
end
def __getobj__
def __getobj__(&)
return @__getobj__ if defined?(@__getobj__)
@__getobj__ = @__callable__.call
end
private :__getobj__
def __setobj__(callable)
@__callable__ = callable
end
private :__setobj__
# Forward to the inner object to make lazy objects type-checkable.
#

View File

@ -196,18 +196,31 @@ module Homebrew
System::Systemctl.quiet_run(*systemctl_args, "disable", "--now", service.service_name)
end
elsif System.launchctl?
quiet_system System.launchctl, "bootout", "#{System.domain_target}/#{service.service_name}"
unless no_wait
time_slept = 0
sleep_time = 1
max_wait = T.must(max_wait)
while ($CHILD_STATUS.to_i == 9216 || service.loaded?) && (max_wait.zero? || time_slept < max_wait)
sleep(sleep_time)
time_slept += sleep_time
quiet_system System.launchctl, "bootout", "#{System.domain_target}/#{service.service_name}"
dont_wait_statuses = [
Errno::ESRCH::Errno,
System::LAUNCHCTL_DOMAIN_ACTION_NOT_SUPPORTED,
]
System.candidate_domain_targets.each do |domain_target|
break unless service.loaded?
quiet_system System.launchctl, "bootout", "#{domain_target}/#{service.service_name}"
unless no_wait
time_slept = 0
sleep_time = 1
max_wait = T.must(max_wait)
exit_status = $CHILD_STATUS.exitstatus
while dont_wait_statuses.exclude?(exit_status) &&
(exit_status == Errno::EINPROGRESS::Errno || service.loaded?) &&
(max_wait.zero? || time_slept < max_wait)
sleep(sleep_time)
time_slept += sleep_time
quiet_system System.launchctl, "bootout", "#{domain_target}/#{service.service_name}"
exit_status = $CHILD_STATUS.exitstatus
end
end
service.reset_cache!
quiet_system System.launchctl, "stop", "#{domain_target}/#{service.service_name}" if service.pid?
end
quiet_system System.launchctl, "stop", "#{System.domain_target}/#{service.service_name}" if service.pid?
end
unless keep
@ -216,7 +229,7 @@ module Homebrew
System::Systemctl.run(*systemctl_args, "daemon-reload") if System.systemctl?
end
if service.pid? || service.loaded?
if service.loaded? || service.pid?
opoo "Unable to stop `#{service.name}` (label: #{service.service_name})"
else
ohai "Successfully stopped `#{service.name}` (label: #{service.service_name})"
@ -237,7 +250,12 @@ module Homebrew
if System.systemctl?
System::Systemctl.quiet_run("stop", service.service_name)
elsif System.launchctl?
quiet_system System.launchctl, "stop", "#{System.domain_target}/#{service.service_name}"
System.candidate_domain_targets.each do |domain_target|
break unless service.pid?
quiet_system System.launchctl, "stop", "#{domain_target}/#{service.service_name}"
service.reset_cache!
end
end
if service.pid?

View File

@ -113,12 +113,17 @@ module Homebrew
false
end
sig { void }
def reset_cache!
@status_output_success_type = nil
end
# Returns `true` if the service is loaded, else false.
# TODO: this should either be T::Boolean or renamed to `loaded`
sig { params(cached: T::Boolean).returns(T.nilable(T::Boolean)) }
def loaded?(cached: false)
if System.launchctl?
@status_output_success_type = nil unless cached
reset_cache! unless cached
_, status_success, = status_output_success_type
status_success
elsif System.systemctl?

View File

@ -6,6 +6,8 @@ require_relative "system/systemctl"
module Homebrew
module Services
module System
LAUNCHCTL_DOMAIN_ACTION_NOT_SUPPORTED = T.let(125, Integer)
# Path to launchctl binary.
sig { returns(T.nilable(Pathname)) }
def self.launchctl
@ -98,6 +100,13 @@ module Homebrew
"gui/#{Process.uid}"
end
end
sig { returns(T::Array[String]) }
def self.candidate_domain_targets
candidates = [domain_target]
candidates += ["user/#{Process.euid}", "gui/#{Process.uid}"] unless root?
candidates.uniq
end
end
end
end

View File

@ -121,6 +121,9 @@ module Homebrew::EnvConfig
sig { returns(Integer) }
def fail_log_lines; end
sig { returns(T::Boolean) }
def forbid_casks?; end
sig { returns(T::Boolean) }
def forbid_packages_from_paths?; end

View File

@ -128,7 +128,7 @@ module RSpec::Expectations
#
# @return [RSpec::Expectations::Configuration] the configuration object
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#228
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#237
def configuration; end
# @private
@ -519,7 +519,7 @@ class RSpec::Expectations::Configuration
# @private
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#221
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#230
def false_positives_handler; end
# Sets if custom matcher descriptions and failure messages
@ -554,19 +554,17 @@ class RSpec::Expectations::Configuration
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#70
def max_formatted_output_length=(length); end
# Indicates what RSpec will do about matcher use which will
# potentially cause false positives in tests, generally you want to
# avoid such scenarios so this defaults to `true`.
# Configures what RSpec will do about matcher use which would potentially cause
# false positives in tests. Defaults to `:warn` since this is generally the desired behavior,
# but can also be set to `:raise` or `:nothing`.
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#211
# @overload on_potential_false_positives
# @overload on_potential_false_positives=
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#192
def on_potential_false_positives; end
# Configures what RSpec will do about matcher use which will
# potentially cause false positives in tests.
#
# @param behavior [Symbol] can be set to :warn, :raise or :nothing
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#187
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#194
def on_potential_false_positives=(behavior); end
# @private
@ -574,23 +572,25 @@ class RSpec::Expectations::Configuration
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#155
def reset_syntaxes_to_default; end
# Returns the value of attribute strict_predicate_matchers.
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#202
def strict_predicate_matchers; end
# Configures RSpec to check predicate matchers to `be(true)` / `be(false)` (strict),
# or `be_truthy` / `be_falsey` (not strict).
# Historically, the default was `false`, but `true` is recommended.
#
# @overload strict_predicate_matchers
# @overload strict_predicate_matchers?
# @overload strict_predicate_matchers=
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#211
def strict_predicate_matchers; end
# @raise [ArgumentError]
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#197
def strict_predicate_matchers=(flag); end
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#213
def strict_predicate_matchers=(value); end
# @return [Boolean]
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#204
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#218
def strict_predicate_matchers?; end
# The list of configured syntaxes.
@ -635,7 +635,7 @@ class RSpec::Expectations::Configuration
#
# @return [Boolean]
#
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#216
# source://rspec-expectations//lib/rspec/expectations/configuration.rb#225
def warn_about_potential_false_positives?; end
end
@ -5967,6 +5967,12 @@ class RSpec::Matchers::BuiltIn::Match < ::RSpec::Matchers::BuiltIn::BaseMatcher
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#25
def diffable?; end
# @api private
# @return [String]
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#38
def failure_message; end
# Used to specify the captures we match against
#
# @api private
@ -5980,17 +5986,17 @@ class RSpec::Matchers::BuiltIn::Match < ::RSpec::Matchers::BuiltIn::BaseMatcher
# @api private
# @return [Boolean]
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#45
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#57
def can_safely_call_match?(expected, actual); end
# @api private
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#38
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#49
def match(expected, actual); end
# @api private
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#52
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#64
def match_captures(expected, actual); end
end
@ -6452,12 +6458,12 @@ RSpec::Matchers::BuiltIn::RaiseError::UndefinedValue = T.let(T.unsafe(nil), Obje
#
# @api private
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#72
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#84
class RSpec::Matchers::BuiltIn::ReliableMatchData
# @api private
# @return [ReliableMatchData] a new instance of ReliableMatchData
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#73
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#85
def initialize(match_data); end
# returns an array of captures from the match data
@ -6465,7 +6471,7 @@ class RSpec::Matchers::BuiltIn::ReliableMatchData
# @api private
# @return Array
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#98
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#110
def captures; end
# Returns match data names for named captures
@ -6473,14 +6479,14 @@ class RSpec::Matchers::BuiltIn::ReliableMatchData
# @api private
# @return Array
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#90
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#102
def names; end
protected
# @api private
#
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#104
# source://rspec-expectations//lib/rspec/matchers/built_in/match.rb#116
def match_data; end
end
@ -7973,7 +7979,7 @@ class RSpec::Matchers::DSL::Matcher
#
# @see #expected_as_array
#
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#482
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#483
def expected; end
# Returns the expected value as an an array. This exists primarily
@ -7982,14 +7988,14 @@ class RSpec::Matchers::DSL::Matcher
#
# @see #expected
#
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#494
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#495
def expected_as_array; end
# Adds the name (rather than a cryptic hex number)
# so we can identify an instance of
# the matcher in error messages (e.g. for `NoMethodError`)
#
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#499
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#500
def inspect; end
# The name of the matcher.
@ -8005,7 +8011,7 @@ class RSpec::Matchers::DSL::Matcher
private
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#522
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#523
def actual_arg_for(block); end
# Takes care of forwarding unhandled messages to the
@ -8015,7 +8021,7 @@ class RSpec::Matchers::DSL::Matcher
# Rails' test helper methods, but it's also a useful
# feature in its own right.
#
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#532
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#533
def method_missing(method, *args, **_arg2, &block); end
# Indicates that this matcher responds to messages
@ -8024,7 +8030,7 @@ class RSpec::Matchers::DSL::Matcher
#
# @return [Boolean]
#
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#507
# source://rspec-expectations//lib/rspec/matchers/dsl.rb#508
def respond_to_missing?(method, include_private = T.unsafe(nil)); end
end

View File

@ -971,12 +971,12 @@ class RSpec::Support::ObjectFormatter
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#70
# source://rspec-support//lib/rspec/support/object_formatter.rb#72
def prepare_array(array); end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#94
# source://rspec-support//lib/rspec/support/object_formatter.rb#96
def prepare_element(element); end
# Prepares the provided object to be formatted by wrapping it as needed
@ -996,23 +996,23 @@ class RSpec::Support::ObjectFormatter
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#76
# source://rspec-support//lib/rspec/support/object_formatter.rb#78
def prepare_hash(input_hash); end
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#113
# source://rspec-support//lib/rspec/support/object_formatter.rb#115
def recursive_structure?(object); end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#86
# source://rspec-support//lib/rspec/support/object_formatter.rb#88
def sort_hash_keys(input_hash); end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#106
# source://rspec-support//lib/rspec/support/object_formatter.rb#108
def with_entering_structure(structure); end
private
@ -1024,7 +1024,7 @@ class RSpec::Support::ObjectFormatter
#
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#268
# source://rspec-support//lib/rspec/support/object_formatter.rb#270
def truncate_string(str, start_index, end_index); end
class << self
@ -1050,7 +1050,7 @@ end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#127
# source://rspec-support//lib/rspec/support/object_formatter.rb#129
class RSpec::Support::ObjectFormatter::BaseInspector < ::Struct
# Returns the value of attribute formatter
#
@ -1066,7 +1066,7 @@ class RSpec::Support::ObjectFormatter::BaseInspector < ::Struct
# @api private
# @raise [NotImplementedError]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#132
# source://rspec-support//lib/rspec/support/object_formatter.rb#134
def inspect; end
# Returns the value of attribute object
@ -1082,7 +1082,7 @@ class RSpec::Support::ObjectFormatter::BaseInspector < ::Struct
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#136
# source://rspec-support//lib/rspec/support/object_formatter.rb#138
def pretty_print(pp); end
class << self
@ -1092,7 +1092,7 @@ class RSpec::Support::ObjectFormatter::BaseInspector < ::Struct
# @raise [NotImplementedError]
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#128
# source://rspec-support//lib/rspec/support/object_formatter.rb#130
def can_inspect?(_object); end
def inspect; end
@ -1104,80 +1104,80 @@ end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#177
# source://rspec-support//lib/rspec/support/object_formatter.rb#179
class RSpec::Support::ObjectFormatter::BigDecimalInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#182
# source://rspec-support//lib/rspec/support/object_formatter.rb#184
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#178
# source://rspec-support//lib/rspec/support/object_formatter.rb#180
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#159
# source://rspec-support//lib/rspec/support/object_formatter.rb#161
class RSpec::Support::ObjectFormatter::DateTimeInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# ActiveSupport sometimes overrides inspect. If `ActiveSupport` is
# defined use a custom format string that includes more time precision.
#
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#168
# source://rspec-support//lib/rspec/support/object_formatter.rb#170
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#162
# source://rspec-support//lib/rspec/support/object_formatter.rb#164
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#160
# source://rspec-support//lib/rspec/support/object_formatter.rb#162
RSpec::Support::ObjectFormatter::DateTimeInspector::FORMAT = T.let(T.unsafe(nil), String)
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#224
# source://rspec-support//lib/rspec/support/object_formatter.rb#226
class RSpec::Support::ObjectFormatter::DelegatorInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#229
# source://rspec-support//lib/rspec/support/object_formatter.rb#231
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#225
# source://rspec-support//lib/rspec/support/object_formatter.rb#227
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#187
# source://rspec-support//lib/rspec/support/object_formatter.rb#189
class RSpec::Support::ObjectFormatter::DescribableMatcherInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#192
# source://rspec-support//lib/rspec/support/object_formatter.rb#194
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#188
# source://rspec-support//lib/rspec/support/object_formatter.rb#190
def can_inspect?(object); end
end
end
@ -1189,21 +1189,21 @@ RSpec::Support::ObjectFormatter::ELLIPSIS = T.let(T.unsafe(nil), String)
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#247
# source://rspec-support//lib/rspec/support/object_formatter.rb#249
RSpec::Support::ObjectFormatter::INSPECTOR_CLASSES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#117
# source://rspec-support//lib/rspec/support/object_formatter.rb#119
class RSpec::Support::ObjectFormatter::InspectableItem < ::Struct
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#118
# source://rspec-support//lib/rspec/support/object_formatter.rb#120
def inspect; end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#122
# source://rspec-support//lib/rspec/support/object_formatter.rb#124
def pretty_print(pp); end
# Returns the value of attribute text
@ -1228,80 +1228,80 @@ end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#234
# source://rspec-support//lib/rspec/support/object_formatter.rb#236
class RSpec::Support::ObjectFormatter::InspectableObjectInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#242
# source://rspec-support//lib/rspec/support/object_formatter.rb#244
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#235
# source://rspec-support//lib/rspec/support/object_formatter.rb#237
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#141
# source://rspec-support//lib/rspec/support/object_formatter.rb#143
class RSpec::Support::ObjectFormatter::TimeInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# for 1.8.7
#
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#149
# source://rspec-support//lib/rspec/support/object_formatter.rb#151
def inspect; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#144
# source://rspec-support//lib/rspec/support/object_formatter.rb#146
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#142
# source://rspec-support//lib/rspec/support/object_formatter.rb#144
RSpec::Support::ObjectFormatter::TimeInspector::FORMAT = T.let(T.unsafe(nil), String)
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#197
# source://rspec-support//lib/rspec/support/object_formatter.rb#199
class RSpec::Support::ObjectFormatter::UninspectableObjectInspector < ::RSpec::Support::ObjectFormatter::BaseInspector
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#207
# source://rspec-support//lib/rspec/support/object_formatter.rb#209
def inspect; end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#211
# source://rspec-support//lib/rspec/support/object_formatter.rb#213
def klass; end
# http://stackoverflow.com/a/2818916
#
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#216
# source://rspec-support//lib/rspec/support/object_formatter.rb#218
def native_object_id; end
class << self
# @api private
# @return [Boolean]
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#200
# source://rspec-support//lib/rspec/support/object_formatter.rb#202
def can_inspect?(object); end
end
end
# @api private
#
# source://rspec-support//lib/rspec/support/object_formatter.rb#198
# source://rspec-support//lib/rspec/support/object_formatter.rb#200
RSpec::Support::ObjectFormatter::UninspectableObjectInspector::OBJECT_ID_FORMAT = T.let(T.unsafe(nil), String)
# Provides recursive constant lookup methods useful for

View File

@ -24,8 +24,7 @@ else
vendored_versions.include?("#{ruby_major}.#{ruby_minor}")
end.freeze
# TODO(odeprecated): remove `respond_to?` check when required Ruby >= 3.4
if ENV["HOMEBREW_DEVELOPER"] && Warning.respond_to?(:categories)
if ENV["HOMEBREW_DEVELOPER"]
Warning.categories.each do |category|
Warning[category] = true
end

View File

@ -74,6 +74,7 @@ RSpec.describe Homebrew::Services::Cli do
keep_alive?: false,
)
allow(service).to receive(:service_name)
allow(service).to receive(:reset_cache!)
allow(Homebrew::Services::FormulaWrapper).to receive(:from).and_return(service)
allow(services_cli).to receive(:running).and_return(["example_service"])
expect do

View File

@ -98,7 +98,7 @@ module GitHub
sig { returns(String) }
def to_s
metadata = @type.to_s
metadata = @type.to_s.dup
if @file
metadata << " file=#{Actions.escape(@file.to_s)}"

View File

@ -78,14 +78,14 @@ $:.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.2")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbs-3.9.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12046/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12053/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.3.2/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")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-support-3.13.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-support-3.13.3/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-core-3.13.3/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-expectations-3.13.3/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-mocks-3.13.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-expectations-3.13.4/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-mocks-3.13.3/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-3.13.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-github-3.0.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-retry-0.6.2/lib")
@ -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.15/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-lsp-0.23.16/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")
@ -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.12046-universal-darwin/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12046/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12046/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12053-universal-darwin/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12053/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12053/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.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.27")

Some files were not shown because too many files have changed in this diff Show More