Merge pull request #20331 from Homebrew/deprecate_disable_remove_4.6
Deprecate/disable/remove code for Homebrew 4.6
This commit is contained in:
commit
8217fe5bcf
@ -13,7 +13,7 @@ module Homebrew
|
||||
def self.images
|
||||
return [] unless Bundle.whalebrew_installed?
|
||||
|
||||
odeprecated "`brew bundle` `whalebrew` support", "using `whalebrew` directly"
|
||||
odisabled "`brew bundle` `whalebrew` support", "using `whalebrew` directly"
|
||||
@images ||= T.let(
|
||||
`whalebrew list 2>/dev/null`.split("\n")
|
||||
.reject { |line| line.start_with?("COMMAND ") }
|
||||
|
||||
@ -24,7 +24,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
def self.install!(name, preinstall: true, verbose: false, force: false, **_options)
|
||||
odeprecated "`brew bundle` `whalebrew` support", "using `whalebrew` directly"
|
||||
odisabled "`brew bundle` `whalebrew` support", "using `whalebrew` directly"
|
||||
return true unless preinstall
|
||||
|
||||
puts "Installing #{name} image. It is not currently installed." if verbose
|
||||
|
||||
@ -324,7 +324,6 @@ module Cask
|
||||
return if cask.deprecated? || cask.disabled?
|
||||
return if cask.version&.latest?
|
||||
return if (url = cask.url).nil?
|
||||
return if block_url_offline?
|
||||
return if cask.livecheck_defined?
|
||||
return if livecheck_result == :auto_detected
|
||||
|
||||
@ -348,7 +347,6 @@ module Cask
|
||||
sig { void }
|
||||
def audit_download_url_format
|
||||
return if (url = cask.url).nil?
|
||||
return if block_url_offline?
|
||||
|
||||
odebug "Auditing URL format"
|
||||
return unless bad_sourceforge_url?
|
||||
@ -360,7 +358,6 @@ module Cask
|
||||
sig { void }
|
||||
def audit_download_url_is_osdn
|
||||
return if (url = cask.url).nil?
|
||||
return if block_url_offline?
|
||||
return unless bad_osdn_url?
|
||||
|
||||
add_error "OSDN download urls are disabled.", location: url.location, strict_only: true
|
||||
@ -372,7 +369,6 @@ module Cask
|
||||
sig { void }
|
||||
def audit_unnecessary_verified
|
||||
return unless cask.url
|
||||
return if block_url_offline?
|
||||
return unless verified_present?
|
||||
return unless url_match_homepage?
|
||||
return unless verified_matches_url?
|
||||
@ -385,7 +381,6 @@ module Cask
|
||||
sig { void }
|
||||
def audit_missing_verified
|
||||
return unless cask.url
|
||||
return if block_url_offline?
|
||||
return if file_url?
|
||||
return if url_match_homepage?
|
||||
return if verified_present?
|
||||
@ -398,7 +393,6 @@ module Cask
|
||||
sig { void }
|
||||
def audit_no_match
|
||||
return if (url = cask.url).nil?
|
||||
return if block_url_offline?
|
||||
return unless verified_present?
|
||||
return if verified_matches_url?
|
||||
|
||||
@ -1191,13 +1185,6 @@ module Cask
|
||||
URI(cask.url.to_s).scheme == "file"
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def block_url_offline?
|
||||
return false if online?
|
||||
|
||||
!!cask.url&.from_block?
|
||||
end
|
||||
|
||||
sig { returns(Tap) }
|
||||
def core_tap
|
||||
@core_tap ||= T.let(CoreTap.instance, T.nilable(Tap))
|
||||
|
||||
@ -98,10 +98,9 @@ module Cask
|
||||
:disable_reason,
|
||||
:disable_replacement_cask,
|
||||
:disable_replacement_formula,
|
||||
:discontinued?, # TODO: remove once discontinued? is removed (4.5.0)
|
||||
:livecheck,
|
||||
:livecheck_defined?,
|
||||
:livecheckable?, # TODO: remove once `#livecheckable?` is removed
|
||||
:livecheckable?, # TODO: remove once `#livecheckable?` was odisabled and is now removed
|
||||
:no_autobump!,
|
||||
:autobump?,
|
||||
:no_autobump_message,
|
||||
@ -556,7 +555,7 @@ module Cask
|
||||
# for `#livecheck_defined?`.
|
||||
sig { returns(T::Boolean) }
|
||||
def livecheckable?
|
||||
odeprecated "`livecheckable?`", "`livecheck_defined?`"
|
||||
odisabled "`livecheckable?`", "`livecheck_defined?`"
|
||||
@livecheck_defined == true
|
||||
end
|
||||
|
||||
|
||||
@ -7,10 +7,6 @@ require "utils/curl"
|
||||
module Cask
|
||||
# Class corresponding to the `url` stanza.
|
||||
class URL < SimpleDelegator
|
||||
BlockReturn = T.type_alias do
|
||||
T.any(URI::Generic, String, [T.any(URI::Generic, String), T::Hash[Symbol, T.untyped]])
|
||||
end
|
||||
|
||||
# Methods for the `url` stanza.
|
||||
class DSL
|
||||
sig { returns(T.any(URI::Generic, String)) }
|
||||
@ -102,96 +98,6 @@ module Cask
|
||||
end
|
||||
end
|
||||
|
||||
# Allow passing a block to the `url` stanza.
|
||||
class BlockDSL
|
||||
# Allow accessing the URL associated with page contents.
|
||||
class PageWithURL < SimpleDelegator
|
||||
# Get the URL of the fetched page.
|
||||
#
|
||||
# ### Example
|
||||
#
|
||||
# ```ruby
|
||||
# url "https://example.org/download" do |page|
|
||||
# file_path = page[/href="([^"]+\.dmg)"/, 1]
|
||||
# URI.join(page.url, file_path)
|
||||
# end
|
||||
# ```
|
||||
#
|
||||
# @api public
|
||||
sig { returns(URI::Generic) }
|
||||
attr_accessor :url
|
||||
|
||||
sig { params(str: String, url: URI::Generic).void }
|
||||
def initialize(str, url)
|
||||
super(str)
|
||||
@url = T.let(url, URI::Generic)
|
||||
end
|
||||
end
|
||||
|
||||
sig {
|
||||
params(
|
||||
uri: T.nilable(T.any(URI::Generic, String)),
|
||||
dsl: ::Cask::DSL,
|
||||
block: T.proc.params(arg0: T.all(String, PageWithURL)).returns(BlockReturn),
|
||||
).void
|
||||
}
|
||||
def initialize(uri, dsl:, &block)
|
||||
@uri = T.let(uri, T.nilable(T.any(URI::Generic, String)))
|
||||
@dsl = T.let(dsl, ::Cask::DSL)
|
||||
@block = T.let(block, T.proc.params(arg0: T.all(String, PageWithURL)).returns(BlockReturn))
|
||||
|
||||
odisabled "cask `url do` blocks" if @block
|
||||
end
|
||||
|
||||
sig { returns(BlockReturn) }
|
||||
def call
|
||||
if @uri
|
||||
result = ::Utils::Curl.curl_output("--fail", "--silent", "--location", @uri.to_s)
|
||||
result.assert_success!
|
||||
|
||||
page = PageWithURL.new(result.stdout, URI(@uri))
|
||||
instance_exec(page, &@block)
|
||||
else
|
||||
instance_exec(&@block)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Allows calling a nested `url` stanza in a `url do` block.
|
||||
#
|
||||
# @api public
|
||||
sig {
|
||||
params(
|
||||
uri: T.any(URI::Generic, String),
|
||||
block: T.proc.params(arg0: T.all(String, PageWithURL)).returns(BlockReturn),
|
||||
).returns(BlockReturn)
|
||||
}
|
||||
def url(uri, &block)
|
||||
self.class.new(uri, dsl: @dsl, &block).call
|
||||
end
|
||||
|
||||
# This allows calling DSL methods from inside a `url` block.
|
||||
#
|
||||
# @api public
|
||||
sig {
|
||||
override.params(method: Symbol, args: T.untyped, block: T.nilable(T.proc.returns(T.untyped)))
|
||||
.returns(T.anything)
|
||||
}
|
||||
def method_missing(method, *args, &block)
|
||||
if @dsl.respond_to?(method)
|
||||
@dsl.public_send(method, *args, &block)
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
sig { override.params(method_name: T.any(Symbol, String), include_private: T::Boolean).returns(T::Boolean) }
|
||||
def respond_to_missing?(method_name, include_private = false)
|
||||
@dsl.respond_to?(method_name, include_private) || super
|
||||
end
|
||||
end
|
||||
|
||||
sig {
|
||||
params(
|
||||
uri: T.nilable(T.any(URI::Generic, String)),
|
||||
@ -210,28 +116,18 @@ module Cask
|
||||
only_path: T.nilable(String),
|
||||
caller_location: Thread::Backtrace::Location,
|
||||
dsl: T.nilable(::Cask::DSL),
|
||||
block: T.nilable(T.proc.params(arg0: T.all(String, BlockDSL::PageWithURL)).returns(BlockReturn)),
|
||||
).void
|
||||
}
|
||||
def initialize(
|
||||
uri = nil, verified: nil, using: nil, tag: nil, branch: nil, revisions: nil, revision: nil, trust_cert: nil,
|
||||
cookies: nil, referer: nil, header: nil, user_agent: nil, data: nil, only_path: nil,
|
||||
caller_location: caller_locations.fetch(0), dsl: nil, &block
|
||||
caller_location: caller_locations.fetch(0), dsl: nil
|
||||
)
|
||||
super(
|
||||
if block
|
||||
LazyObject.new do
|
||||
uri2, options = *BlockDSL.new(uri, dsl: T.must(dsl), &block).call
|
||||
options ||= {}
|
||||
DSL.new(uri2, **options)
|
||||
end
|
||||
else
|
||||
DSL.new(T.must(uri), verified:, using:, tag:, branch:, revisions:, revision:, trust_cert:, cookies:,
|
||||
referer:, header:, user_agent:, data:, only_path:)
|
||||
end
|
||||
DSL.new(T.must(uri), verified:, using:, tag:, branch:, revisions:, revision:, trust_cert:, cookies:,
|
||||
referer:, header:, user_agent:, data:, only_path:)
|
||||
)
|
||||
|
||||
@from_block = T.let(!block.nil?, T::Boolean)
|
||||
@caller_location = T.let(caller_location, Thread::Backtrace::Location)
|
||||
end
|
||||
|
||||
@ -252,11 +148,6 @@ module Cask
|
||||
interpolated_url.exclude?('#{')
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def from_block?
|
||||
@from_block
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
sig { returns(T.nilable(String)) }
|
||||
|
||||
@ -58,7 +58,6 @@ module Homebrew
|
||||
hidden: true
|
||||
switch "--[no-]signing",
|
||||
description: "Audit for app signatures, which are required by macOS on ARM."
|
||||
# should be odeprecated in future
|
||||
switch "--token-conflicts",
|
||||
description: "Audit for token conflicts.",
|
||||
hidden: true
|
||||
@ -105,6 +104,8 @@ module Homebrew
|
||||
|
||||
sig { override.void }
|
||||
def run
|
||||
odeprecated "brew audit --token-conflicts" if args.token_conflicts?
|
||||
|
||||
Formulary.enable_factory_cache!
|
||||
|
||||
os_arch_combinations = args.os_arch_combinations
|
||||
|
||||
@ -439,20 +439,5 @@ class Pathname
|
||||
.encode(Encoding::UTF_8, invalid: :replace)
|
||||
.split("\n")
|
||||
end
|
||||
|
||||
# Like regular `rmtree`, except it never ignores errors.
|
||||
#
|
||||
# This was the default behaviour in Ruby 3.1 and earlier.
|
||||
#
|
||||
# @api public
|
||||
def rmtree(noop: nil, verbose: nil, secure: nil)
|
||||
# Ideally we'd odeprecate this but probably can't given gems so let's
|
||||
# create a RuboCop autocorrect instead soon.
|
||||
# This is why monkeypatching is non-ideal (but right solution to get
|
||||
# Ruby 3.3 over the line).
|
||||
odisabled "rmtree", "FileUtils#rm_r"
|
||||
FileUtils.rm_r(T.must(@path), noop:, verbose:, secure:)
|
||||
nil
|
||||
end
|
||||
end
|
||||
require "extend/os/pathname"
|
||||
|
||||
@ -7,7 +7,7 @@ class Time
|
||||
# Backwards compatibility for formulae that used this ActiveSupport extension
|
||||
sig { returns(String) }
|
||||
def rfc3339
|
||||
odeprecated "Time#rfc3339", "Time#xmlschema"
|
||||
odisabled "Time#rfc3339", "Time#xmlschema"
|
||||
xmlschema
|
||||
end
|
||||
end
|
||||
|
||||
@ -2796,24 +2796,6 @@ class Formula
|
||||
self.class.on_system_blocks_exist? || @on_system_blocks_exist
|
||||
end
|
||||
|
||||
sig {
|
||||
params(
|
||||
verify_download_integrity: T::Boolean,
|
||||
timeout: T.nilable(T.any(Integer, Float)),
|
||||
quiet: T::Boolean,
|
||||
).returns(Pathname)
|
||||
}
|
||||
def fetch(verify_download_integrity: true, timeout: nil, quiet: false)
|
||||
odisabled "Formula#fetch", "Resource#fetch on Formula#resource"
|
||||
active_spec.fetch(verify_download_integrity:, timeout:, quiet:)
|
||||
end
|
||||
|
||||
sig { params(filename: T.any(Pathname, String)).void }
|
||||
def verify_download_integrity(filename)
|
||||
odisabled "Formula#verify_download_integrity", "Resource#verify_download_integrity on Formula#resource"
|
||||
active_spec.verify_download_integrity(filename)
|
||||
end
|
||||
|
||||
sig { params(keep_tmp: T::Boolean).returns(T.untyped) }
|
||||
def run_test(keep_tmp: false)
|
||||
@prefix_returns_versioned_prefix = T.let(true, T.nilable(T::Boolean))
|
||||
@ -2909,22 +2891,15 @@ class Formula
|
||||
# @api public
|
||||
sig {
|
||||
params(
|
||||
paths: T.any(T::Enumerable[T.any(String, Pathname)], String, Pathname),
|
||||
before: T.nilable(T.any(Pathname, Regexp, String)),
|
||||
after: T.nilable(T.any(Pathname, String, Symbol)),
|
||||
old_audit_result: T.nilable(T::Boolean),
|
||||
audit_result: T::Boolean,
|
||||
global: T::Boolean,
|
||||
block: T.nilable(T.proc.params(s: StringInreplaceExtension).void),
|
||||
paths: T.any(T::Enumerable[T.any(String, Pathname)], String, Pathname),
|
||||
before: T.nilable(T.any(Pathname, Regexp, String)),
|
||||
after: T.nilable(T.any(Pathname, String, Symbol)),
|
||||
audit_result: T::Boolean,
|
||||
global: T::Boolean,
|
||||
block: T.nilable(T.proc.params(s: StringInreplaceExtension).void),
|
||||
).void
|
||||
}
|
||||
def inreplace(paths, before = nil, after = nil, old_audit_result = nil, audit_result: true, global: true, &block)
|
||||
# NOTE: must check for `#nil?` and not `#blank?`, or else `old_audit_result = false` will not call `odeprecated`.
|
||||
unless old_audit_result.nil?
|
||||
odisabled "inreplace(paths, before, after, #{old_audit_result})",
|
||||
"inreplace(paths, before, after, audit_result: #{old_audit_result})"
|
||||
audit_result = old_audit_result
|
||||
end
|
||||
def inreplace(paths, before = nil, after = nil, audit_result: true, global: true, &block)
|
||||
Utils::Inreplace.inreplace(paths, before, after, audit_result:, global:, &block)
|
||||
rescue Utils::Inreplace::Error => e
|
||||
onoe e.to_s
|
||||
@ -3558,7 +3533,7 @@ class Formula
|
||||
# and `false` otherwise.
|
||||
sig { returns(T::Boolean) }
|
||||
def livecheckable?
|
||||
odeprecated "`livecheckable?`", "`livecheck_defined?`"
|
||||
odisabled "`livecheckable?`", "`livecheck_defined?`"
|
||||
@livecheck_defined == true
|
||||
end
|
||||
|
||||
|
||||
@ -20,13 +20,6 @@ class GitRepository
|
||||
pathname.join(".git").exist?
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def git_repo?
|
||||
# delete this whole function when removing odisabled
|
||||
odisabled "GitRepository#git_repo?", "GitRepository#git_repository?"
|
||||
git_repository?
|
||||
end
|
||||
|
||||
# Gets the URL of the Git origin remote.
|
||||
sig { returns(T.nilable(String)) }
|
||||
def origin_url
|
||||
|
||||
@ -182,7 +182,7 @@ class Resource
|
||||
# and `false` otherwise.
|
||||
sig { returns(T::Boolean) }
|
||||
def livecheckable?
|
||||
odeprecated "`livecheckable?`", "`livecheck_defined?`"
|
||||
odisabled "`livecheckable?`", "`livecheck_defined?`"
|
||||
@livecheck_defined == true
|
||||
end
|
||||
|
||||
|
||||
@ -155,14 +155,6 @@ class Tap
|
||||
# @api public
|
||||
attr_reader :repository
|
||||
|
||||
# @deprecated
|
||||
sig { returns(T::Boolean) }
|
||||
def repo
|
||||
# delete this whole function when removing odisabled
|
||||
odisabled "Tap#repo", "Tap#repository"
|
||||
repository
|
||||
end
|
||||
|
||||
# The name of this {Tap}. It combines {#user} and {#repository} with a slash.
|
||||
# {#name} is always in lowercase.
|
||||
# e.g. `user/repository`
|
||||
@ -277,14 +269,6 @@ class Tap
|
||||
@remote_repository ||= T.must(match[:remote_repository])
|
||||
end
|
||||
|
||||
# @deprecated
|
||||
sig { returns(T.nilable(String)) }
|
||||
def remote_repo
|
||||
# delete this whole function when removing odisabled
|
||||
odisabled "Tap#remote_repo", "Tap#remote_repository"
|
||||
remote_repository
|
||||
end
|
||||
|
||||
# The default remote path to this {Tap}.
|
||||
sig { returns(String) }
|
||||
def default_remote
|
||||
@ -299,14 +283,6 @@ class Tap
|
||||
.upcase
|
||||
end
|
||||
|
||||
# @deprecated
|
||||
sig { returns(String) }
|
||||
def repo_var_suffix
|
||||
# delete this whole function when removing odisabled
|
||||
odisabled "Tap#repo_var_suffix", "Tap#repository_var_suffix"
|
||||
repository_var_suffix
|
||||
end
|
||||
|
||||
# Check whether this {Tap} is a Git repository.
|
||||
#
|
||||
# @api public
|
||||
|
||||
@ -37,10 +37,10 @@ class StringInreplaceExtension
|
||||
).returns(T.nilable(String))
|
||||
}
|
||||
def gsub!(before, after, old_audit_result = nil, audit_result: true)
|
||||
# NOTE: must check for `#nil?` and not `#blank?`, or else `old_audit_result = false` will not call `odeprecated`.
|
||||
# NOTE: must check for `#nil?` and not `#blank?`, or else `old_audit_result = false` will not call `odisabled`.
|
||||
unless old_audit_result.nil?
|
||||
odeprecated "gsub!(before, after, #{old_audit_result})",
|
||||
"gsub!(before, after, audit_result: #{old_audit_result})"
|
||||
odisabled "gsub!(before, after, #{old_audit_result})",
|
||||
"gsub!(before, after, audit_result: #{old_audit_result})"
|
||||
audit_result = old_audit_result
|
||||
end
|
||||
before = before.to_s if before.is_a?(Pathname)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user