Deprecations for Homebrew 2.6.0

Do the usual deprecate/disable dance for the Homebrew 2.6.0 release.

Not to be merged until the next release will definitely be 2.6.0.
This commit is contained in:
Mike McQuaid 2020-11-24 16:44:02 +00:00
parent 15da2fcb25
commit d496f5c121
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70
41 changed files with 83 additions and 686 deletions

View File

@ -13,9 +13,8 @@ class BuildOptions
# TODO: rename private_include? when include? is removed.
# @deprecated
def include?(name)
odeprecated "BuildOptions#include?"
private_include?("--#{name}")
def include?(_)
odisabled "BuildOptions#include?"
end
# True if a {Formula} is being built with a specific option.
@ -65,11 +64,6 @@ class BuildOptions
private_include? "HEAD"
end
# @private
def devel?
odisabled "BuildOptions#devel?"
end
# True if a {Formula} is being built with {Formula.stable} instead of {Formula.head}.
# This is the default.
# <pre>args << "--some-beta" if build.head?</pre>
@ -81,14 +75,12 @@ class BuildOptions
# e.g. on newer Intel Macs this means a combined x86_64/x86 binary/library.
# <pre>args << "--universal-binary" if build.universal?</pre>
def universal?
odeprecated "BuildOptions#universal?"
private_include?("universal") && option_defined?("universal")
odisabled "BuildOptions#universal?"
end
# True if a {Formula} is being built in C++11 mode.
def cxx11?
odeprecated "BuildOptions#cxx11?"
private_include?("c++11") && option_defined?("c++11")
odisabled "BuildOptions#cxx11?"
end
# True if the build has any arguments or options specified.

View File

@ -63,48 +63,39 @@ module Homebrew
end
def formulae
odeprecated "args.formulae", "args.named.to_formulae"
named.to_formulae
odisabled "args.formulae", "args.named.to_formulae"
end
def formulae_and_casks
odeprecated "args.formulae_and_casks", "args.named.to_formulae_and_casks"
named.to_formulae_and_casks
odisabled "args.formulae_and_casks", "args.named.to_formulae_and_casks"
end
def resolved_formulae
odeprecated "args.resolved_formulae", "args.named.to_resolved_formulae"
named.to_resolved_formulae
odisabled "args.resolved_formulae", "args.named.to_resolved_formulae"
end
def resolved_formulae_casks
odeprecated "args.resolved_formulae_casks", "args.named.to_resolved_formulae_to_casks"
named.to_resolved_formulae_to_casks
odisabled "args.resolved_formulae_casks", "args.named.to_resolved_formulae_to_casks"
end
def formulae_paths
odeprecated "args.formulae_paths", "args.named.to_formulae_paths"
named.to_formulae_paths
odisabled "args.formulae_paths", "args.named.to_formulae_paths"
end
def casks
odeprecated "args.casks", "args.named.homebrew_tap_cask_names"
named.homebrew_tap_cask_names
odisabled "args.casks", "args.named.homebrew_tap_cask_names"
end
def loaded_casks
odeprecated "args.loaded_casks", "args.named.to_cask"
named.to_casks
odisabled "args.loaded_casks", "args.named.to_cask"
end
def kegs
odeprecated "args.kegs", "args.named.to_kegs"
named.to_kegs
odisabled "args.kegs", "args.named.to_kegs"
end
def kegs_casks
odeprecated "args.kegs", "args.named.to_kegs_to_casks"
named.to_kegs_to_casks
odisabled "args.kegs", "args.named.to_kegs_to_casks"
end
def build_stable?

View File

@ -57,16 +57,7 @@ module Homebrew
files["00.tap.out"] = { content: tap }
end
if GitHub.api_credentials_type == :none
puts <<~EOS
You can create a new personal access token:
#{GitHub::ALL_SCOPES_URL}
#{Utils::Shell.set_variable_in_profile("HOMEBREW_GITHUB_API_TOKEN", "your_token_here")}
EOS
odeprecated "`brew gist-logs` with a password", "HOMEBREW_GITHUB_API_TOKEN"
login!
end
odisabled "`brew gist-logs` with a password", "HOMEBREW_GITHUB_API_TOKEN" if GitHub.api_credentials_type == :none
# Description formatted to work well as page title when viewing gist
descr = if f.core_formula?

View File

@ -103,8 +103,7 @@ module Homebrew
ls_args << "-t" if args.t?
if !$stdout.tty? && !args.formula?
odeprecated "`brew list` to only list formulae", "`brew list --formula`"
safe_system "ls", *ls_args, HOMEBREW_CELLAR
odisabled "`brew list` to only list formulae", "`brew list --formula`"
else
safe_system "ls", *ls_args, HOMEBREW_CELLAR
list_casks(args: args) unless args.formula?

View File

@ -50,16 +50,7 @@ module Homebrew
case (j = json_version(args.json))
when :v1, :default
odeprecated "brew outdated --json#{j == :v1 ? "=v1" : ""}", "brew outdated --json=v2"
outdated = if args.formula? || !args.cask?
outdated_formulae args: args
else
outdated_casks args: args
end
puts JSON.generate(json_info(outdated, args: args))
odisabled "brew outdated --json#{j == :v1 ? "=v1" : ""}", "brew outdated --json=v2"
when :v2
formulae, casks = if args.formula?
[outdated_formulae(args: args), []]

View File

@ -32,7 +32,7 @@ module Homebrew
odie "#{name} not found in the Cellar." unless rack.directory?
# odeprecated "`brew switch`", "`brew link` @-versioned formulae"
odeprecated "`brew switch`", "`brew link` @-versioned formulae"
versions = rack.subdirs
.map { |d| Keg.new(d).version }

View File

@ -1,12 +1,6 @@
# typed: strict
# frozen_string_literal: true
require "compat/dependencies_helpers"
require "compat/cli/parser"
require "compat/extend/nil"
require "compat/extend/string"
require "compat/formula"
require "compat/global"
require "compat/language/java"
require "compat/language/python"
require "compat/os/mac" if OS.mac?

View File

@ -1,18 +0,0 @@
# typed: true
# frozen_string_literal: true
require "cli/args"
module DependenciesHelpers
module Compat
def argv_includes_ignores(argv = nil)
unless @printed_includes_ignores_warning
odisabled "Homebrew.argv_includes_ignores", "Homebrew.args_includes_ignores"
@printed_includes_ignores_warning = true
end
args_includes_ignores(argv ? Homebrew::CLI::Args.new : Homebrew.args)
end
end
prepend Compat
end

View File

@ -1,9 +0,0 @@
# typed: strict
module DependenciesHelpers
module Compat
include Kernel
def args_includes_ignores(args); end
end
end

View File

@ -1,12 +0,0 @@
# typed: true
# frozen_string_literal: true
class NilClass
module Compat
def chuzzle
odisabled ".chuzzle", "&.chomp.presence"
end
end
prepend Compat
end

View File

@ -1,7 +0,0 @@
# typed: strict
class NilClass
module Compat
include Kernel
end
end

View File

@ -1,12 +0,0 @@
# typed: true
# frozen_string_literal: true
class String
module Compat
def chuzzle
odisabled ".chuzzle", "&.chomp.presence"
end
end
prepend Compat
end

View File

@ -1,7 +0,0 @@
# typed: strict
class String
module Compat
include Kernel
end
end

View File

@ -3,33 +3,20 @@
class Formula
module Compat
def installed?
odisabled "Formula#installed?",
"Formula#latest_version_installed? (or Formula#any_version_installed? )"
end
def prepare_patches
odisabled "patches", "patch do" if respond_to?(:patches)
super
end
def installed_prefix
odeprecated "Formula#installed_prefix",
"Formula#latest_installed_prefix (or Formula#any_installed_prefix)"
latest_installed_prefix
odisabled "Formula#installed_prefix",
"Formula#latest_installed_prefix (or Formula#any_installed_prefix)"
end
# The currently installed version for this formula. Will raise an exception
# if the formula is not installed.
# @private
def installed_version
odeprecated "Formula#installed_version"
Keg.new(latest_installed_prefix).version
odisabled "Formula#installed_version"
end
def opt_or_installed_prefix_keg
odeprecated "Formula#opt_or_installed_prefix_keg", "Formula#any_installed_keg"
any_installed_keg
odisabled "Formula#opt_or_installed_prefix_keg", "Formula#any_installed_keg"
end
end

View File

@ -7,8 +7,7 @@ module Homebrew
def args
unless @printed_args_warning
odeprecated "Homebrew.args", "`args = <command>_args.parse` and pass `args` along the call chain"
@printed_args_warning = true
odisabled "Homebrew.args", "`args = <command>_args.parse` and pass `args` along the call chain"
end
@args ||= CLI::Args.new

View File

@ -4,35 +4,9 @@
module Language
module Haskell
module Cabal
module Compat
def cabal_sandbox(_options = {})
odisabled "Language::Haskell::Cabal.cabal_sandbox"
end
def cabal_sandbox_add_source(*_args)
odisabled "Language::Haskell::Cabal.cabal_sandbox_add_source"
end
def cabal_install(*_args)
odisabled "Language::Haskell::Cabal.cabal_install",
"cabal v2-install directly with std_cabal_v2_args"
end
def cabal_configure(_flags)
odisabled "Language::Haskell::Cabal.cabal_configure"
end
def cabal_install_tools(*_tools)
odisabled "Language::Haskell::Cabal.cabal_install_tools"
end
def install_cabal_package(*_args, **_options)
odisabled "Language::Haskell::Cabal.install_cabal_package",
"cabal v2-update directly followed by v2-install with std_cabal_v2_args"
end
def self.included(_)
odisabled "include Language::Haskell::Cabal"
end
prepend Compat
end
end
end

View File

@ -1,17 +0,0 @@
# typed: false
# frozen_string_literal: true
module Language
module Java
class << self
module Compat
def java_home_cmd(_version = nil)
odisabled "Language::Java.java_home_cmd",
"Language::Java.java_home or Language::Java.overridable_java_home_env"
end
end
prepend Compat
end
end
end

View File

@ -1,17 +0,0 @@
# typed: false
# frozen_string_literal: true
module Language
module Python
class << self
module Compat
def rewrite_python_shebang(_python_path)
odisabled "Language::Python.rewrite_python_shebang",
"Utils::Shebang.rewrite_shebang and Shebang.python_shebang_rewrite_info(python_path)"
end
end
prepend Compat
end
end
end

View File

@ -1,24 +0,0 @@
# typed: true
# frozen_string_literal: true
module OS
module Mac
class << self
module Compat
def preferred_arch
odisabled "MacOS.preferred_arch", "Hardware::CPU.arch (or ideally let the compiler handle it)"
end
def tcc_db
odisabled "MacOS.tcc_db"
end
def pre_mavericks_accessibility_dotfile
odisabled "MacOS.pre_mavericks_accessibility_dotfile"
end
end
prepend Compat
end
end
end

View File

@ -1,11 +0,0 @@
# typed: strict
module OS
module Mac
class << self
module Compat
include Kernel
end
end
end
end

View File

@ -25,13 +25,14 @@ module Homebrew
description: "Explicitly set the <version> of the package being installed."
max_named 0
hide_from_man_page!
end
end
def diy
args = diy_args.parse
# odeprecated "`brew diy`"
odeprecated "`brew diy`"
path = Pathname.getwd

View File

@ -25,7 +25,6 @@ module Homebrew
description: "Upload to Bintray, but don't publish."
min_named :formula
hide_from_man_page!
end
end

View File

@ -1,52 +0,0 @@
# typed: false
# frozen_string_literal: true
require "net/http"
require "net/https"
require "json"
require "cli/parser"
require "formula"
require "formulary"
require "version"
require "pkg_version"
require "formula_info"
module Homebrew
extend T::Sig
module_function
sig { returns(CLI::Parser) }
def pull_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`pull` [<options>] <patch>
Get a patch from a GitHub commit or pull request and apply it to Homebrew.
Each <patch> may be the number of a pull request in `homebrew/core`
or the URL of any pull request or commit on GitHub.
EOS
switch "--bump",
description: "For one-formula PRs, automatically reword commit message to our preferred format."
switch "--clean",
description: "Do not rewrite or otherwise modify the commits found in the pulled PR."
switch "--ignore-whitespace",
description: "Silently ignore whitespace discrepancies when applying diffs."
switch "--resolve",
description: "When a patch fails to apply, leave in progress and allow user to resolve, instead "\
"of aborting."
switch "--branch-okay",
description: "Do not warn if pulling to a branch besides master (useful for testing)."
switch "--no-pbcopy",
description: "Do not copy anything to the system clipboard."
min_named 1
hide_from_man_page!
end
end
def pull
odisabled "brew pull", "gh pr checkout"
end
end

View File

@ -26,14 +26,14 @@ class JavaRequirement < Requirement
end
def java_home_cmd
# TODO: enable for all macOS versions and Linux on next minor release
# TODO: disable for all macOS versions and Linux on next minor release
# but --version with ranges is broken on Big Sur today.
if MacOS.version >= :big_sur && @version&.end_with?("+")
odisabled %Q(depends_on java: "#{@version}"),
'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
end
# odeprecated "depends_on :java",
# 'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
odeprecated "depends_on :java",
'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
return unless File.executable?("/usr/libexec/java_home")

View File

@ -113,11 +113,6 @@ class Formula
# @private
attr_reader :stable
# @private
def devel
odisabled "Formula#devel"
end
# The HEAD {SoftwareSpec} for this {Formula}.
# Installed when using `brew install --HEAD`.
# This is always installed with the version `HEAD` and taken from the latest
@ -328,11 +323,6 @@ class Formula
active_spec == stable
end
# @private
def devel?
odisabled "Formula#devel?"
end
# Is the currently active {SoftwareSpec} a {#head} build?
# @private
def head?
@ -2227,10 +2217,6 @@ class Formula
raise "You cannot override Formula#brew in class #{name}"
when :test
define_method(:test_defined?) { true }
when :patches
odisabled "a Formula#patches definition", "'patch do' block calls"
when :options
odisabled "a Formula#options definition", "'option do' block calls"
end
end
@ -2274,10 +2260,7 @@ class Formula
if args.nil?
@licenses
else
if args.is_a? Array
odeprecated "`license [...]`", "`license any_of: [...]`"
args = { any_of: args }
end
odisabled "`license [...]`", "`license any_of: [...]`" if args.is_a? Array
@licenses = args
end
end
@ -2463,11 +2446,6 @@ class Formula
@stable.instance_eval(&block)
end
# @private
def devel
odisabled "'devel' blocks in formulae", "'head' blocks or @-versioned formulae"
end
# @!attribute [w] head
# Adds a {.head} {SoftwareSpec}.
# This can be installed by passing the `--HEAD` option to allow

View File

@ -225,12 +225,12 @@ module Formulary
def load_file(flags:)
if %r{githubusercontent.com/[\w-]+/[\w-]+/[a-f0-9]{40}(?:/Formula)?/(?<formula_name>[\w+-.@]+).rb} =~ url # rubocop:disable Style/CaseLikeIf
odisabled "Installation of #{formula_name} from a GitHub commit URL",
"'brew extract #{formula_name}' to stable tap on GitHub"
raise UsageError, "Installation of #{formula_name} from a GitHub commit URL is unsupported! " \
"'brew extract #{formula_name}' to stable tap on GitHub instead."
elsif url.match?(%r{^(https?|ftp)://})
odisabled "Non-checksummed download of #{name} formula file from an arbitrary URL",
"'brew extract' or 'brew create' and 'brew tap-new' to create a "\
"formula file in a tap on GitHub"
raise UsageError, "Non-checksummed download of #{name} formula file from an arbitrary URL is unsupported! ",
"'brew extract' or 'brew create' and 'brew tap-new' to create a "\
"formula file in a tap on GitHub instead."
end
HOMEBREW_CACHE_FORMULA.mkpath
FileUtils.rm_f(path)

View File

@ -41,14 +41,8 @@ module Patch
else
{}
end.each_pair do |strip, urls|
Array(urls).each do |url|
patch = case url
when :DATA
DATAPatch.new(strip)
else
LegacyPatch.new(strip, url)
end
patches << patch
Array(urls).each do
patches << DATAPatch.new(strip)
end
end
@ -196,15 +190,3 @@ class ExternalPatch
"#<#{self.class.name}: #{strip.inspect} #{url.inspect}>"
end
end
# A legacy patch.
#
# Legacy patches have no checksum and are not cached.
#
# @api private
class LegacyPatch < ExternalPatch
def initialize(strip, _url)
odisabled "legacy patches", "'patch do' blocks"
super(strip)
end
end

View File

@ -34,6 +34,9 @@ class JavaRequirement < Requirement
end
def initialize(tags = [])
odeprecated "depends_on :java",
'"depends_on "openjdk@11", "depends_on "openjdk@8" or "depends_on "openjdk"'
@version = tags.shift if tags.first&.match?(/^\d/)
super(tags)
@cask = suggestion.token

View File

@ -14,16 +14,10 @@ class MacOSRequirement < Requirement
attr_reader :comparator, :version
def initialize(tags = [], comparator: ">=")
begin
@version = if comparator == "==" && tags.first.respond_to?(:map)
tags.shift.map { |s| MacOS::Version.from_symbol(s) }
else
MacOS::Version.from_symbol(tags.shift) unless tags.empty?
end
rescue MacOSVersionError => e
raise if e.version != :mavericks
odisabled "depends_on :macos => :mavericks"
@version = if comparator == "==" && tags.first.respond_to?(:map)
tags.shift.map { |s| MacOS::Version.from_symbol(s) }
else
MacOS::Version.from_symbol(tags.shift) unless tags.empty?
end
@comparator = comparator

View File

@ -95,21 +95,6 @@ module RuboCop
end
end
find_strings(body_node).each do |n|
next unless regex_match_group(n, /JAVA_HOME/i)
next if @formula_name.match?(/^openjdk(@|$)/)
next if find_every_method_call_by_name(body_node, :depends_on).any? do |dependency|
dependency.each_descendant(:str).count.zero? ||
regex_match_group(dependency.each_descendant(:str).first, /^openjdk(@|$)/) ||
depends_on?(:java)
end
offending_node(n)
problem "Use `depends_on :java` to set JAVA_HOME"
end
prefix_path(body_node) do |prefix_node, path|
next unless match = path.match(%r{^(bin|include|libexec|lib|sbin|share|Frameworks)(?:/| |$)})

View File

@ -233,23 +233,17 @@ class Tab < OpenStruct
end
def universal?
odeprecated "Tab#universal?"
include?("universal")
odisabled "Tab#universal?"
end
def cxx11?
odeprecated "Tab#cxx11?"
include?("c++11")
odisabled "Tab#cxx11?"
end
def head?
spec == :head
end
def devel?
odisabled "Tab#devel?"
end
def stable?
spec == :stable
end
@ -314,10 +308,6 @@ class Tab < OpenStruct
Version.create(versions["stable"]) if versions["stable"]
end
def devel_version
odisabled "Tab#devel_version"
end
def head_version
Version.create(versions["head"]) if versions["head"]
end

View File

@ -6,17 +6,3 @@ require "cmd/shared_examples/args_parse"
describe "Homebrew.switch_args" do
it_behaves_like "parseable arguments"
end
describe "brew switch", :integration_test do
it "allows switching between Formula versions" do
install_test_formula "testball"
testball_rack = HOMEBREW_CELLAR/"testball"
FileUtils.cp_r testball_rack/"0.1", testball_rack/"0.2"
expect { brew "switch", "testball", "0.2" }
.to output(/links created/).to_stdout
.and not_to_output.to_stderr
.and be_a_success
end
end

View File

@ -794,21 +794,19 @@ describe Formula do
f1 = formula "f1" do
url "f1-1"
depends_on :java
depends_on x11: :recommended
depends_on xcode: ["1.0", :optional]
end
stub_formula_loader(f1)
java = JavaRequirement.new
x11 = X11Requirement.new([:recommended])
xcode = XcodeRequirement.new(["1.0", :optional])
expect(Set.new(f1.recursive_requirements)).to eq(Set[java, x11])
expect(Set.new(f1.recursive_requirements)).to eq(Set[x11])
f1.build = BuildOptions.new(["--with-xcode", "--without-x11"], f1.options)
expect(Set.new(f1.recursive_requirements)).to eq(Set[java, xcode])
expect(Set.new(f1.recursive_requirements)).to eq(Set[xcode])
f1.build = f1.stable.build
f2 = formula "f2" do
@ -817,14 +815,14 @@ describe Formula do
depends_on "f1"
end
expect(Set.new(f2.recursive_requirements)).to eq(Set[java, x11])
expect(Set.new(f2.recursive_requirements {})).to eq(Set[java, x11, xcode])
expect(Set.new(f2.recursive_requirements)).to eq(Set[x11])
expect(Set.new(f2.recursive_requirements {})).to eq(Set[x11, xcode])
requirements = f2.recursive_requirements do |_dependent, requirement|
Requirement.prune if requirement.is_a?(JavaRequirement)
Requirement.prune if requirement.is_a?(X11Requirement)
end
expect(Set.new(requirements)).to eq(Set[x11, xcode])
expect(Set.new(requirements)).to eq(Set[xcode])
end
specify "#to_hash" do

View File

@ -6,13 +6,13 @@ require "language/java"
describe Language::Java do
describe "::java_home" do
if !OS.mac? || MacOS.version < :big_sur
it "returns valid JAVA_HOME if version is specified", :needs_java do
it "returns valid JAVA_HOME if version is specified", :needs_macos do
java_home = described_class.java_home("1.6+")
expect(java_home/"bin/java").to be_an_executable
end
end
it "returns valid JAVA_HOME if version is not specified", :needs_java do
it "returns valid JAVA_HOME if version is not specified", :needs_macos do
java_home = described_class.java_home
expect(java_home/"bin/java").to be_an_executable
end
@ -24,7 +24,7 @@ describe Language::Java do
expect(java_home[:JAVA_HOME]).to include("--version blah")
end
it "returns java_home path without version if version is not specified", :needs_java do
it "returns java_home path without version if version is not specified", :needs_macos do
java_home = described_class.java_home_env
expect(java_home[:JAVA_HOME]).not_to include("--version")
end
@ -36,7 +36,7 @@ describe Language::Java do
expect(java_home[:JAVA_HOME]).to include("--version blah")
end
it "returns java_home path without version if version is not specified", :needs_java do
it "returns java_home path without version if version is not specified", :needs_macos do
java_home = described_class.overridable_java_home_env
expect(java_home[:JAVA_HOME]).not_to include("--version")
end

View File

@ -1,38 +0,0 @@
# typed: false
# frozen_string_literal: true
require "requirements/java_requirement"
require "fileutils"
describe JavaRequirement do
subject { described_class.new(%w[1.8]) }
let(:java_home) { mktmpdir }
before do
FileUtils.mkdir java_home/"bin"
FileUtils.touch java_home/"bin/java"
allow(subject).to receive(:preferred_java).and_return(java_home/"bin/java")
end
specify "Apple Java environment" do
expect(subject).to be_satisfied
expect(ENV).to receive(:prepend_path)
expect(ENV).to receive(:append_to_cflags)
subject.modify_build_environment
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
end
specify "Oracle Java environment" do
expect(subject).to be_satisfied
FileUtils.mkdir java_home/"include"
expect(ENV).to receive(:prepend_path)
expect(ENV).to receive(:append_to_cflags).twice
subject.modify_build_environment
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
end
end

View File

@ -1,159 +0,0 @@
# typed: false
# frozen_string_literal: true
require "requirements/java_requirement"
describe JavaRequirement do
subject { described_class.new([]) }
before do
ENV["JAVA_HOME"] = nil
end
describe "#initialize" do
it "parses '1.8' tag correctly" do
req = described_class.new(["1.8"])
expect(req.display_s).to eq("Java = 1.8")
end
it "parses '9' tag correctly" do
req = described_class.new(["9"])
expect(req.display_s).to eq("Java = 9")
end
it "parses '9+' tag correctly" do
req = described_class.new(["9+"])
expect(req.display_s).to eq("Java >= 9")
end
it "parses '11' tag correctly" do
req = described_class.new(["11"])
expect(req.display_s).to eq("Java = 11")
end
it "parses bogus tag correctly" do
req = described_class.new(["bogus1.8"])
expect(req.display_s).to eq("Java")
end
end
describe "#message" do
its(:message) { is_expected.to match(/Java is required for this software./) }
end
describe "#inspect" do
subject { described_class.new(%w[1.7+]) }
its(:inspect) { is_expected.to eq('#<JavaRequirement: version="1.7+" []>') }
end
describe "#display_s" do
context "without specific version" do
its(:display_s) { is_expected.to eq("Java") }
end
context "with version 1.8" do
subject { described_class.new(%w[1.8]) }
its(:display_s) { is_expected.to eq("Java = 1.8") }
end
context "with version 1.8+" do
subject { described_class.new(%w[1.8+]) }
its(:display_s) { is_expected.to eq("Java >= 1.8") }
end
end
describe "#satisfied?" do
subject(:requirement) { described_class.new(%w[1.8]) }
if !OS.mac? || MacOS.version < :big_sur
it "returns false if no `java` executable can be found" do
allow(File).to receive(:executable?).and_return(false)
expect(requirement).not_to be_satisfied
end
end
it "returns true if #preferred_java returns a path" do
allow(requirement).to receive(:preferred_java).and_return(Pathname.new("/usr/bin/java"))
expect(requirement).to be_satisfied
end
context "when #possible_javas contains paths" do
let(:path) { mktmpdir }
let(:java) { path/"java" }
def setup_java_with_version(version)
IO.write java, <<~SH
#!/bin/sh
echo 'java version "#{version}"' 1>&2
SH
FileUtils.chmod "+x", java
end
before do
allow(requirement).to receive(:possible_javas).and_return([java])
end
context "and 1.7 is required" do
subject(:requirement) { described_class.new(%w[1.7]) }
it "returns false if all are lower" do
setup_java_with_version "1.6.0_5"
expect(requirement).not_to be_satisfied
end
it "returns true if one is equal" do
setup_java_with_version "1.7.0_5"
expect(requirement).to be_satisfied
end
it "returns false if all are higher" do
setup_java_with_version "1.8.0_5"
expect(requirement).not_to be_satisfied
end
end
context "and 1.7+ is required" do
subject(:requirement) { described_class.new(%w[1.7+]) }
it "returns false if all are lower" do
setup_java_with_version "1.6.0_5"
expect(requirement).not_to be_satisfied
end
it "returns true if one is equal" do
setup_java_with_version "1.7.0_5"
expect(requirement).to be_satisfied
end
it "returns true if one is higher" do
setup_java_with_version "1.8.0_5"
expect(requirement).to be_satisfied
end
end
end
end
describe "#suggestion" do
context "without specific version" do
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
its(:cask) { is_expected.to eq("adoptopenjdk") }
end
context "with version 1.8" do
subject { described_class.new(%w[1.8]) }
its(:suggestion) { is_expected.to match(%r{brew cask install homebrew/cask-versions/adoptopenjdk8}) }
its(:cask) { is_expected.to eq("homebrew/cask-versions/adoptopenjdk8") }
end
context "with version 1.8+" do
subject { described_class.new(%w[1.8+]) }
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
its(:cask) { is_expected.to eq("adoptopenjdk") }
end
end
end

View File

@ -250,61 +250,6 @@ describe RuboCop::Cop::FormulaAudit::Text do
RUBY
end
it "When using JAVA_HOME without a java dependency" do
expect_offense(<<~RUBY)
class Foo < Formula
def install
ohai "JAVA_HOME"
^^^^^^^^^^^ Use `depends_on :java` to set JAVA_HOME
end
end
RUBY
end
it "When using JAVA_HOME with an openjdk dependency" do
expect_no_offenses(<<~RUBY)
class Foo < Formula
depends_on "openjdk"
def install
ohai "JAVA_HOME"
end
end
RUBY
end
it "When using JAVA_HOME with an openjdk build dependency" do
expect_no_offenses(<<~RUBY)
class Foo < Formula
depends_on "openjdk" => :build
def install
ohai "JAVA_HOME"
end
end
RUBY
end
it "When using JAVA_HOME with a java dependency" do
expect_no_offenses(<<~RUBY)
class Foo < Formula
depends_on :java
def install
ohai "JAVA_HOME"
end
end
RUBY
end
it "When using JAVA_HOME with a java build dependency" do
expect_no_offenses(<<~RUBY)
class Foo < Formula
depends_on :java => :build
def install
ohai "JAVA_HOME"
end
end
RUBY
end
it "When using `prefix + \"bin\"` instead of `bin`" do
expect_offense(<<~RUBY)
class Foo < Formula

View File

@ -96,9 +96,7 @@ module GitHub
return unless Homebrew::EnvConfig.github_api_username
return unless Homebrew::EnvConfig.github_api_password
odeprecated "the GitHub API with HOMEBREW_GITHUB_API_PASSWORD", "HOMEBREW_GITHUB_API_TOKEN"
[Homebrew::EnvConfig.github_api_password, Homebrew::EnvConfig.github_api_username]
odisabled "the GitHub API with HOMEBREW_GITHUB_API_PASSWORD", "HOMEBREW_GITHUB_API_TOKEN"
end
def keychain_username_password

View File

@ -68,7 +68,6 @@ pr-publish
pr-pull
pr-upload
prof
pull
readall
reinstall
release-notes

View File

@ -1004,17 +1004,6 @@ Build bottles for these formulae with GitHub Actions.
* `--upload`:
Upload built bottles to Bintray.
### `diy` [*`options`*]
Automatically determine the installation prefix for non-Homebrew software.
Using the output from this command, you can install your own software into
the Cellar and then link it into Homebrew's prefix with `brew link`.
* `--name`:
Explicitly set the *`name`* of the package being installed.
* `--version`:
Explicitly set the *`version`* of the package being installed.
### `edit` [*`formula`*|*`cask`*]
Open a *`formula`* or *`cask`* in the editor set by `EDITOR` or `HOMEBREW_EDITOR`,
@ -1098,6 +1087,17 @@ Generate Homebrew's manpages.
* `--link`:
This is now done automatically by `brew update`.
### `mirror` *`formula`*
Reupload the stable URL of a formula to Bintray for use as a mirror.
* `--bintray-org`:
Upload to the specified Bintray organisation (default: `homebrew`).
* `--bintray-repo`:
Upload to the specified Bintray repository (default: `mirror`).
* `--no-publish`:
Upload to Bintray, but don't publish.
### `pr-automerge` [*`options`*]
Find pull requests that can be automatically merged using `brew pr-publish`.

View File

@ -1413,17 +1413,6 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
\fB\-\-upload\fR
Upload built bottles to Bintray\.
.
.SS "\fBdiy\fR [\fIoptions\fR]"
Automatically determine the installation prefix for non\-Homebrew software\. Using the output from this command, you can install your own software into the Cellar and then link it into Homebrew\'s prefix with \fBbrew link\fR\.
.
.TP
\fB\-\-name\fR
Explicitly set the \fIname\fR of the package being installed\.
.
.TP
\fB\-\-version\fR
Explicitly set the \fIversion\fR of the package being installed\.
.
.SS "\fBedit\fR [\fIformula\fR|\fIcask\fR]"
Open a \fIformula\fR or \fIcask\fR in the editor set by \fBEDITOR\fR or \fBHOMEBREW_EDITOR\fR, or open the Homebrew repository for editing if no formula is provided\.
.
@ -1523,6 +1512,21 @@ Return a failing status code if changes are detected in the manpage outputs\. Th
\fB\-\-link\fR
This is now done automatically by \fBbrew update\fR\.
.
.SS "\fBmirror\fR \fIformula\fR"
Reupload the stable URL of a formula to Bintray for use as a mirror\.
.
.TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-bintray\-repo\fR
Upload to the specified Bintray repository (default: \fBmirror\fR)\.
.
.TP
\fB\-\-no\-publish\fR
Upload to Bintray, but don\'t publish\.
.
.SS "\fBpr\-automerge\fR [\fIoptions\fR]"
Find pull requests that can be automatically merged using \fBbrew pr\-publish\fR\.
.