Delete Bintray code

Remove all code related to Bintray. It no longer works so there's no
point keeping it around.

Some of this could arguably be deprecated/disabled first/instead but:
I'm not sure I see the sense in keeping stuff around that's known to be
broken.
This commit is contained in:
Mike McQuaid 2021-05-12 13:37:18 +01:00
parent 6c9ef43e72
commit b914411ac8
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70
20 changed files with 22 additions and 508 deletions

View File

@ -130,8 +130,14 @@ class Archive
warn_on_error: T.nilable(T::Boolean)).void warn_on_error: T.nilable(T::Boolean)).void
} }
def upload_bottles(bottles_hash, warn_on_error: false) def upload_bottles(bottles_hash, warn_on_error: false)
bottles_hash.each do |_formula_name, bottle_hash| bottles_hash.each do |formula_full_name, bottle_hash|
directory = bottle_hash["bintray"]["repository"] _, formula_tap_repo, = formula_full_name.split("/")
directory = if formula_tap_repo
"bottles-#{tap.repo}"
else
"bottles"
end
bottle_count = bottle_hash["bottle"]["tags"].length bottle_count = bottle_hash["bottle"]["tags"].length
bottle_hash["bottle"]["tags"].each_value do |tag_hash| bottle_hash["bottle"]["tags"].each_value do |tag_hash|

View File

@ -1,278 +0,0 @@
# typed: false
# frozen_string_literal: true
require "utils/curl"
require "json"
# Bintray API client.
#
# @api private
class Bintray
extend T::Sig
include Context
include Utils::Curl
API_URL = "https://api.bintray.com"
URL_REGEX = %r{^https://[\w-]+\.bintray\.com/}.freeze
class Error < RuntimeError
end
sig { returns(String) }
def inspect
"#<Bintray: org=#{@bintray_org}>"
end
sig { params(org: T.nilable(String)).void }
def initialize(org: "homebrew")
@bintray_org = org
raise UsageError, "Must set a Bintray organisation!" unless @bintray_org
ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"] = "1" if @bintray_org == "homebrew" && !OS.mac?
end
def open_api(url, *args, auth: true)
if auth
raise UsageError, "HOMEBREW_BINTRAY_USER is unset." unless (user = Homebrew::EnvConfig.bintray_user)
raise UsageError, "HOMEBREW_BINTRAY_KEY is unset." unless (key = Homebrew::EnvConfig.bintray_key)
args += ["--user", "#{user}:#{key}"]
end
curl(*args, url, print_stdout: false, secrets: key)
end
sig {
params(local_file: String,
repo: String,
package: String,
version: String,
remote_file: String,
sha256: T.nilable(String),
warn_on_error: T.nilable(T::Boolean)).void
}
def upload(local_file, repo:, package:, version:, remote_file:, sha256: nil, warn_on_error: false)
unless File.exist? local_file
msg = "#{local_file} for upload doesn't exist!"
raise Error, msg unless warn_on_error
# Warn and return early here since we know this upload is going to fail.
opoo msg
return
end
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/#{remote_file}"
args = ["--upload-file", local_file]
args += ["--header", "X-Checksum-Sha2: #{sha256}"] if sha256.present?
args << "--fail" unless warn_on_error
result = T.unsafe(self).open_api(url, *args)
json = JSON.parse(result.stdout)
return if json["message"] == "success"
msg = "Bottle upload failed: #{json["message"]}"
raise msg unless warn_on_error
opoo msg
end
sig {
params(repo: String,
package: String,
version: String,
file_count: T.nilable(Integer),
warn_on_error: T.nilable(T::Boolean)).void
}
def publish(repo:, package:, version:, file_count:, warn_on_error: false)
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/publish"
upload_args = %w[--request POST]
upload_args += ["--fail"] unless warn_on_error
result = T.unsafe(self).open_api(url, *upload_args)
json = JSON.parse(result.stdout)
if file_count.present? && json["files"] != file_count
message = "Bottle publish failed: expected #{file_count} bottles, but published #{json["files"]} instead."
raise message unless warn_on_error
opoo message
end
odebug "Published #{json["files"]} bottles"
end
sig { params(org: T.nilable(String)).returns(T::Boolean) }
def official_org?(org: @bintray_org)
%w[homebrew linuxbrew].include? org
end
sig { params(url: String).returns(T::Boolean) }
def stable_mirrored?(url)
headers, = curl_output("--connect-timeout", "15", "--location", "--head", url)
status_code = headers.scan(%r{^HTTP/.* (\d+)}).last.first
status_code.start_with?("2")
end
sig {
params(formula: Formula,
repo: String,
publish_package: T::Boolean,
warn_on_error: T::Boolean).returns(String)
}
def mirror_formula(formula, repo: "mirror", publish_package: false, warn_on_error: false)
package = Utils::Bottles::Bintray.package formula.name
create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
formula.downloader.fetch
version = ERB::Util.url_encode(formula.pkg_version)
filename = ERB::Util.url_encode(formula.downloader.basename)
destination_url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{filename}"
odebug "Uploading to #{destination_url}"
upload(
formula.downloader.cached_location,
repo: repo,
package: package,
version: version,
sha256: formula.stable.checksum,
remote_file: filename,
warn_on_error: warn_on_error,
)
return destination_url unless publish_package
odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
publish(repo: repo, package: package, version: version, file_count: 1, warn_on_error: warn_on_error)
destination_url
end
sig { params(repo: String, package: String).void }
def create_package(repo:, package:)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
data = { name: package, public_download_numbers: true }
data[:public_stats] = official_org?
open_api(url, "--header", "Content-Type: application/json", "--request", "POST", "--data", data.to_json)
end
sig { params(repo: String, package: String).returns(T::Boolean) }
def package_exists?(repo:, package:)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}/#{package}"
begin
open_api(url, "--fail", "--silent", "--output", "/dev/null", auth: false)
rescue ErrorDuringExecution => e
stderr = e.output
.select { |type,| type == :stderr }
.map { |_, line| line }
.join
raise if e.status.exitstatus != 22 && stderr.exclude?("404 Not Found")
false
else
true
end
end
# Gets the SHA-256 checksum of the specified remote file.
#
# @return the checksum, the empty string (if the file doesn't have a checksum), nil (if the file doesn't exist)
sig { params(repo: String, remote_file: String).returns(T.nilable(String)) }
def remote_checksum(repo:, remote_file:)
url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{remote_file}"
result = curl_output "--fail", "--silent", "--head", url
if result.success?
result.stdout.match(/^X-Checksum-Sha2:\s+(\h{64})\b/i)&.values_at(1)&.first || ""
else
raise Error if result.status.exitstatus != 22 && result.stderr.exclude?("404 Not Found")
nil
end
end
sig { params(bintray_repo: String, bintray_package: String, filename: String).returns(String) }
def file_delete_instructions(bintray_repo, bintray_package, filename)
<<~EOS
Remove this file manually in your web browser:
https://bintray.com/#{@bintray_org}/#{bintray_repo}/#{bintray_package}/view#files
Or run:
curl -X DELETE -u $HOMEBREW_BINTRAY_USER:$HOMEBREW_BINTRAY_KEY \\
https://api.bintray.com/content/#{@bintray_org}/#{bintray_repo}/#{filename}
EOS
end
sig {
params(bottles_hash: T::Hash[String, T.untyped],
publish_package: T::Boolean,
warn_on_error: T.nilable(T::Boolean)).void
}
def upload_bottles(bottles_hash, publish_package: false, warn_on_error: false)
formula_packaged = {}
bottles_hash.each do |formula_name, bottle_hash|
version = ERB::Util.url_encode(bottle_hash["formula"]["pkg_version"])
bintray_package = bottle_hash["bintray"]["package"]
bintray_repo = bottle_hash["bintray"]["repository"]
bottle_count = bottle_hash["bottle"]["tags"].length
bottle_hash["bottle"]["tags"].each do |tag, tag_hash|
filename = Bottle::Filename.new(bottle_hash["formula"]["name"], bottle_hash["formula"]["pkg_version"],
tag, bottle_hash["bottle"]["rebuild"]).bintray
sha256 = tag_hash["sha256"]
delete_instructions = file_delete_instructions(bintray_repo, bintray_package, filename)
odebug "Checking remote file #{@bintray_org}/#{bintray_repo}/#{filename}"
result = remote_checksum(repo: bintray_repo, remote_file: filename)
case result
when nil
# File doesn't exist.
if !formula_packaged[formula_name] && !package_exists?(repo: bintray_repo, package: bintray_package)
odebug "Creating package #{@bintray_org}/#{bintray_repo}/#{bintray_package}"
create_package repo: bintray_repo, package: bintray_package
formula_packaged[formula_name] = true
end
odebug "Uploading #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}/#{filename}"
upload(tag_hash["local_filename"],
repo: bintray_repo,
package: bintray_package,
version: version,
remote_file: filename,
sha256: sha256,
warn_on_error: warn_on_error)
when sha256
# File exists, checksum matches.
odebug "#{filename} is already published with matching hash."
bottle_count -= 1
when ""
# File exists, but can't find checksum
failed_message = "#{filename} is already published!"
raise Error, "#{failed_message}\n#{delete_instructions}" unless warn_on_error
opoo failed_message
else
# File exists, but checksum either doesn't exist or is mismatched.
failed_message = <<~EOS
#{filename} is already published with a mismatched hash!
Expected: #{sha256}
Actual: #{result}
EOS
raise Error, "#{failed_message}#{delete_instructions}" unless warn_on_error
opoo failed_message
end
end
next unless publish_package
odebug "Publishing #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}"
publish(repo: bintray_repo,
package: bintray_package,
version: version,
file_count: bottle_count,
warn_on_error: warn_on_error)
end
end
end

View File

@ -183,11 +183,6 @@ module Homebrew
sig { returns(T.nilable(String)) } sig { returns(T.nilable(String)) }
def workflow; end def workflow; end
sig { returns(T.nilable(String)) }
def bintray_org; end
sig { returns(T.nilable(String)) }
def bintray_repo; end
sig { returns(T.nilable(String)) } sig { returns(T.nilable(String)) }
def package_name; end def package_name; end

View File

@ -87,7 +87,7 @@ fetch() {
curl_args[${#curl_args[*]}]="-q" curl_args[${#curl_args[*]}]="-q"
fi fi
# Authorization is needed for GitHub Packages but harmless on Bintray/GitHub Releases # Authorization is needed for GitHub Packages but harmless on GitHub Releases
curl_args+=( curl_args+=(
--fail --fail
--remote-time --remote-time
@ -145,8 +145,7 @@ Failed to download ${VENDOR_URL} and ${VENDOR_URL2}!
Do not file an issue on GitHub about this; you will need to figure out for Do not file an issue on GitHub about this; you will need to figure out for
yourself what issue with your internet connection restricts your access to yourself what issue with your internet connection restricts your access to
both Bintray (used for Homebrew bottles/binary packages) and GitHub GitHub (used for Homebrew updates and binary packages).
(used for Homebrew updates).
EOS EOS
fi fi

View File

@ -10,7 +10,6 @@ require "cli/parser"
require "utils/inreplace" require "utils/inreplace"
require "erb" require "erb"
require "archive" require "archive"
require "bintray"
BOTTLE_ERB = <<-EOS BOTTLE_ERB = <<-EOS
bottle do bottle do
@ -584,15 +583,6 @@ module Homebrew
}, },
} }
if bottle.root_url.match?(::Bintray::URL_REGEX) ||
# TODO: given the naming: ideally the Internet Archive uploader wouldn't use this.
bottle.root_url.start_with?("#{::Archive::URL_PREFIX}/")
json[f.full_name]["bintray"] = {
"package" => Utils::Bottles::Bintray.package(f.name),
"repository" => Utils::Bottles::Bintray.repository(tap),
}
end
puts "Writing #{filename.json}" if args.verbose? puts "Writing #{filename.json}" if args.verbose?
json_path = Pathname(filename.json) json_path = Pathname(filename.json)
json_path.unlink if json_path.exist? json_path.unlink if json_path.exist?

View File

@ -24,7 +24,7 @@ module Homebrew
flag "--workflow=", flag "--workflow=",
description: "Dispatch specified workflow (default: `dispatch-build-bottle.yml`)." description: "Dispatch specified workflow (default: `dispatch-build-bottle.yml`)."
switch "--upload", switch "--upload",
description: "Upload built bottles to Bintray." description: "Upload built bottles."
switch "--linux", switch "--linux",
description: "Dispatch bottle for Linux (using GitHub runners)." description: "Dispatch bottle for Linux (using GitHub runners)."

View File

@ -1,7 +1,6 @@
# typed: true # typed: true
# frozen_string_literal: true # frozen_string_literal: true
require "bintray"
require "cli/parser" require "cli/parser"
module Homebrew module Homebrew
@ -13,34 +12,13 @@ module Homebrew
def mirror_args def mirror_args
Homebrew::CLI::Parser.new do Homebrew::CLI::Parser.new do
description <<~EOS description <<~EOS
Reupload the stable URL of a formula to Bintray for use as a mirror. Reupload the stable URL of a formula for use as a mirror.
EOS EOS
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--bintray-repo=",
description: "Upload to the specified Bintray repository (default: `mirror`)."
switch "--no-publish",
description: "Upload to Bintray, but don't publish."
named_args :formula, min: 1
hide_from_man_page! hide_from_man_page!
end end
end end
def mirror def mirror
args = mirror_args.parse odisabled "`brew mirror` (Bintray was shut down on 1st May 2021)"
odeprecated "brew mirror (Bintray will be shut down on 1st May 2021)"
bintray_org = args.bintray_org || "homebrew"
bintray_repo = args.bintray_repo || "mirror"
bintray = Bintray.new(org: bintray_org)
args.named.to_formulae.each do |formula|
mirror_url = bintray.mirror_formula(formula, repo: bintray_repo, publish_package: !args.no_publish?)
ohai "Mirrored #{formula.full_name} to #{mirror_url}!"
end
end end
end end

View File

@ -55,8 +55,6 @@ module Homebrew
description: "Download artifacts with the specified name (default: `bottles`)." description: "Download artifacts with the specified name (default: `bottles`)."
flag "--archive-item=", flag "--archive-item=",
description: "Upload to the specified Internet Archive item (default: `homebrew`)." description: "Upload to the specified Internet Archive item (default: `homebrew`)."
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--tap=", flag "--tap=",
description: "Target tap repository (default: `homebrew/core`)." description: "Target tap repository (default: `homebrew/core`)."
flag "--root-url=", flag "--root-url=",
@ -64,9 +62,6 @@ module Homebrew
flag "--root-url-using=", flag "--root-url-using=",
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\ description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
"Homebrew's default." "Homebrew's default."
flag "--bintray-mirror=",
description: "Use the specified Bintray repository to automatically mirror stable URLs "\
"defined in the formulae (default: `mirror`)."
comma_array "--workflows=", comma_array "--workflows=",
description: "Retrieve artifacts from the specified workflow (default: `tests.yml`). "\ description: "Retrieve artifacts from the specified workflow (default: `tests.yml`). "\
"Can be a comma-separated list to include multiple workflows." "Can be a comma-separated list to include multiple workflows."
@ -74,7 +69,6 @@ module Homebrew
description: "Comma-separated list of workflows which can be ignored if they have not been run." description: "Comma-separated list of workflows which can be ignored if they have not been run."
conflicts "--clean", "--autosquash" conflicts "--clean", "--autosquash"
conflicts "--archive-item", "--bintray-org"
named_args :pull_request, min: 1 named_args :pull_request, min: 1
end end
@ -308,26 +302,6 @@ module Homebrew
end end
end end
def mirror_formulae(tap, original_commit, org:, repo:, args:, publish: true)
changed_formulae(tap, original_commit).select do |f|
stable_urls = [f.stable.url] + f.stable.mirrors
stable_urls.grep(%r{^https://dl.bintray.com/#{org}/#{repo}/}) do |mirror_url|
if args.dry_run?
puts "brew mirror #{f.full_name}"
else
odebug "Mirroring #{mirror_url}"
mirror_args = ["mirror", f.full_name]
mirror_args << "--debug" if args.debug?
mirror_args << "--verbose" if args.verbose?
mirror_args << "--bintray-org=#{org}" if org
mirror_args << "--bintray-repo=#{repo}" if repo
mirror_args << "--no-publish" unless publish
system HOMEBREW_BREW_FILE, *mirror_args
end
end
end
end
def changed_formulae(tap, original_commit) def changed_formulae(tap, original_commit)
if Homebrew::EnvConfig.disable_load_formula? if Homebrew::EnvConfig.disable_load_formula?
opoo "Can't check if updated bottles are necessary as formula loading is disabled!" opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
@ -368,8 +342,6 @@ module Homebrew
workflows = args.workflows.presence || ["tests.yml"] workflows = args.workflows.presence || ["tests.yml"]
artifact = args.artifact || "bottles" artifact = args.artifact || "bottles"
archive_item = args.archive_item archive_item = args.archive_item
bintray_org = args.bintray_org || "homebrew"
mirror_repo = args.bintray_mirror || "mirror"
tap = Tap.fetch(args.tap || CoreTap.instance.name) tap = Tap.fetch(args.tap || CoreTap.instance.name)
Utils::Git.set_name_email!(committer: args.committer.blank?) Utils::Git.set_name_email!(committer: args.committer.blank?)
@ -403,12 +375,6 @@ module Homebrew
verbose: args.verbose?, resolve: args.resolve?, reason: args.message) verbose: args.verbose?, resolve: args.resolve?, reason: args.message)
end end
signoff!(tap.path, pr: pr, dry_run: args.dry_run?) unless args.clean? signoff!(tap.path, pr: pr, dry_run: args.dry_run?) unless args.clean?
unless args.no_upload?
mirror_formulae(tap, original_commit,
org: bintray_org, repo: mirror_repo, publish: !args.no_publish?,
args: args)
end
end end
unless formulae_need_bottles?(tap, original_commit, user, repo, pr, args: args) unless formulae_need_bottles?(tap, original_commit, user, repo, pr, args: args)
@ -447,11 +413,7 @@ module Homebrew
upload_args << "--committer=#{args.committer}" if args.committer upload_args << "--committer=#{args.committer}" if args.committer
upload_args << "--root-url=#{args.root_url}" if args.root_url upload_args << "--root-url=#{args.root_url}" if args.root_url
upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
upload_args << if archive_item.present? upload_args << "--archive-item=#{archive_item}" if archive_item.present?
"--archive-item=#{archive_item}"
else
"--bintray-org=#{bintray_org}"
end
safe_system HOMEBREW_BREW_FILE, *upload_args safe_system HOMEBREW_BREW_FILE, *upload_args
end end
end end

View File

@ -3,7 +3,6 @@
require "cli/parser" require "cli/parser"
require "archive" require "archive"
require "bintray"
require "github_packages" require "github_packages"
require "github_releases" require "github_releases"
@ -34,8 +33,6 @@ module Homebrew
description: "Specify a committer name and email in `git`'s standard author format." description: "Specify a committer name and email in `git`'s standard author format."
flag "--archive-item=", flag "--archive-item=",
description: "Upload to the specified Internet Archive item (default: `homebrew`)." description: "Upload to the specified Internet Archive item (default: `homebrew`)."
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--github-org=", flag "--github-org=",
description: "Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`)." description: "Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`)."
flag "--root-url=", flag "--root-url=",
@ -65,12 +62,6 @@ module Homebrew
end end
end end
def bintray?(bottles_hash)
@bintray ||= bottles_hash.values.all? do |bottle_hash|
bottle_hash["bottle"]["root_url"].match? Bintray::URL_REGEX
end
end
def github_releases?(bottles_hash) def github_releases?(bottles_hash)
@github_releases ||= bottles_hash.values.all? do |bottle_hash| @github_releases ||= bottles_hash.values.all? do |bottle_hash|
root_url = bottle_hash["bottle"]["root_url"] root_url = bottle_hash["bottle"]["root_url"]
@ -126,8 +117,6 @@ module Homebrew
nil nil
elsif internet_archive?(bottles_hash) elsif internet_archive?(bottles_hash)
"Internet Archive" "Internet Archive"
elsif bintray?(bottles_hash)
"Bintray"
elsif github_releases?(bottles_hash) elsif github_releases?(bottles_hash)
"GitHub Releases" "GitHub Releases"
else else
@ -176,14 +165,6 @@ module Homebrew
archive = Archive.new(item: archive_item) archive = Archive.new(item: archive_item)
archive.upload_bottles(bottles_hash, archive.upload_bottles(bottles_hash,
warn_on_error: args.warn_on_upload_failure?) warn_on_error: args.warn_on_upload_failure?)
elsif bintray?(bottles_hash)
odeprecated "brew pr-upload for Bintray (Bintray will be shut down on 1st May 2021)"
bintray_org = args.bintray_org || "homebrew"
bintray = Bintray.new(org: bintray_org)
bintray.upload_bottles(bottles_hash,
publish_package: !args.no_publish?,
warn_on_error: args.warn_on_upload_failure?)
elsif github_releases?(bottles_hash) elsif github_releases?(bottles_hash)
github_releases = GitHubReleases.new github_releases = GitHubReleases.new
github_releases.upload_bottles(bottles_hash) github_releases.upload_bottles(bottles_hash)

View File

@ -33,12 +33,6 @@ module Homebrew
description: "Use this as the `bat` configuration file.", description: "Use this as the `bat` configuration file.",
default_text: "`$HOME/.bat/config`.", default_text: "`$HOME/.bat/config`.",
}, },
HOMEBREW_BINTRAY_KEY: {
description: "Use this API key when accessing the Bintray API (where bottles are stored).",
},
HOMEBREW_BINTRAY_USER: {
description: "Use this username when accessing the Bintray API (where bottles are stored).",
},
HOMEBREW_BOOTSNAP: { HOMEBREW_BOOTSNAP: {
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\ description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).", "A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",

View File

@ -13,7 +13,6 @@ require "patch"
require "compilers" require "compilers"
require "os/mac/version" require "os/mac/version"
require "extend/on_os" require "extend/on_os"
require "bintray"
class SoftwareSpec class SoftwareSpec
extend T::Sig extend T::Sig
@ -461,8 +460,6 @@ class BottleSpecification
if var.nil? if var.nil?
@root_url ||= if (github_packages_url = GitHubPackages.root_url_if_match(Homebrew::EnvConfig.bottle_domain)) @root_url ||= if (github_packages_url = GitHubPackages.root_url_if_match(Homebrew::EnvConfig.bottle_domain))
github_packages_url github_packages_url
elsif Homebrew::EnvConfig.bottle_domain.match?(::Bintray::URL_REGEX)
"#{Homebrew::EnvConfig.bottle_domain}/#{Utils::Bottles::Bintray.repository(tap)}"
else else
Homebrew::EnvConfig.bottle_domain Homebrew::EnvConfig.bottle_domain
end end

View File

@ -2893,11 +2893,6 @@ class Binding
def irb(); end def irb(); end
end end
class Bintray
extend ::T::Private::Methods::MethodHooks
extend ::T::Private::Methods::SingletonMethodHooks
end
module Bootsnap module Bootsnap
def bundler?(); end def bundler?(); end
VERSION = ::T.let(nil, ::T.untyped) VERSION = ::T.let(nil, ::T.untyped)
@ -8161,10 +8156,6 @@ module Homebrew::EnvConfig
def self.bat_config_path(); end def self.bat_config_path(); end
def self.bintray_key(); end
def self.bintray_user(); end
def self.bootsnap?(); end def self.bootsnap?(); end
def self.bottle_domain(); end def self.bottle_domain(); end

View File

@ -680,10 +680,6 @@ def stub_hash(parameters)
"sha256":"#{parameters[:sha256]}" "sha256":"#{parameters[:sha256]}"
} }
} }
},
"bintray":{
"package":"#{parameters[:name]}",
"repository":"bottles"
} }
} }
} }

View File

@ -1,21 +0,0 @@
# typed: false
# frozen_string_literal: true
require "utils/bottles"
describe Utils::Bottles::Bintray do
describe "::package" do
it "converts a Formula name to a package name" do
expect(described_class.package("openssl@1.1")).to eq("openssl:1.1")
expect(described_class.package("gtk+")).to eq("gtkx")
expect(described_class.package("llvm")).to eq("llvm")
end
end
describe "::repository" do
it "returns the repository for a given Tap" do
expect(described_class.repository(Tap.new("homebrew", "bintray-test")))
.to eq("bottles-bintray-test")
end
end
end

View File

@ -215,24 +215,6 @@ module Utils
end end
end end
# Helper functions for bottles hosted on Bintray.
module Bintray
def self.package(formula_name)
package_name = formula_name.to_s.dup
package_name.tr!("+", "x")
package_name.sub!(/(.)@(\d)/, "\\1:\\2") # Handle foo@1.2 style formulae.
package_name
end
def self.repository(tap = nil)
if tap.nil? || tap.core_tap?
"bottles"
else
"bottles-#{tap.repo}"
end
end
end
# Collector for bottle specifications. # Collector for bottle specifications.
class Collector class Collector
extend T::Sig extend T::Sig

View File

@ -1383,11 +1383,8 @@ _brew_mirror() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--bintray-org
--bintray-repo
--debug --debug
--help --help
--no-publish
--quiet --quiet
--verbose --verbose
" "
@ -1395,7 +1392,6 @@ _brew_mirror() {
;; ;;
*) *)
esac esac
__brew_complete_formulae
} }
_brew_missing() { _brew_missing() {
@ -1545,8 +1541,6 @@ _brew_pr_pull() {
--archive-item --archive-item
--artifact --artifact
--autosquash --autosquash
--bintray-mirror
--bintray-org
--branch-okay --branch-okay
--clean --clean
--committer --committer
@ -1580,7 +1574,6 @@ _brew_pr_upload() {
-*) -*)
__brewcomp " __brewcomp "
--archive-item --archive-item
--bintray-org
--committer --committer
--debug --debug
--dry-run --dry-run

View File

@ -585,7 +585,7 @@ __fish_brew_complete_arg 'dispatch-build-bottle' -l linux -d 'Dispatch bottle fo
__fish_brew_complete_arg 'dispatch-build-bottle' -l macos -d 'Version of macOS the bottle should be built for' __fish_brew_complete_arg 'dispatch-build-bottle' -l macos -d 'Version of macOS the bottle should be built for'
__fish_brew_complete_arg 'dispatch-build-bottle' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'dispatch-build-bottle' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'dispatch-build-bottle' -l tap -d 'Target tap repository (default: `homebrew/core`)' __fish_brew_complete_arg 'dispatch-build-bottle' -l tap -d 'Target tap repository (default: `homebrew/core`)'
__fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles to Bintray' __fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles'
__fish_brew_complete_arg 'dispatch-build-bottle' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'dispatch-build-bottle' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'dispatch-build-bottle' -l workflow -d 'Dispatch specified workflow (default: `dispatch-build-bottle.yml`)' __fish_brew_complete_arg 'dispatch-build-bottle' -l workflow -d 'Dispatch specified workflow (default: `dispatch-build-bottle.yml`)'
__fish_brew_complete_arg 'dispatch-build-bottle' -a '(__fish_brew_suggest_formulae_all)' __fish_brew_complete_arg 'dispatch-build-bottle' -a '(__fish_brew_suggest_formulae_all)'
@ -967,15 +967,11 @@ __fish_brew_complete_arg 'migrate' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'migrate' -a '(__fish_brew_suggest_formulae_installed)' __fish_brew_complete_arg 'migrate' -a '(__fish_brew_suggest_formulae_installed)'
__fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula to Bintray for use as a mirror' __fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula for use as a mirror'
__fish_brew_complete_arg 'mirror' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'mirror' -l bintray-repo -d 'Upload to the specified Bintray repository (default: `mirror`)'
__fish_brew_complete_arg 'mirror' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'mirror' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'mirror' -l help -d 'Show this message' __fish_brew_complete_arg 'mirror' -l help -d 'Show this message'
__fish_brew_complete_arg 'mirror' -l no-publish -d 'Upload to Bintray, but don\'t publish'
__fish_brew_complete_arg 'mirror' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'mirror' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'mirror' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'mirror' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'mirror' -a '(__fish_brew_suggest_formulae_all)'
__fish_brew_complete_cmd 'missing' 'Check the given formula kegs for missing dependencies' __fish_brew_complete_cmd 'missing' 'Check the given formula kegs for missing dependencies'
@ -1058,8 +1054,6 @@ __fish_brew_complete_cmd 'pr-pull' 'Download and publish bottles, and apply the
__fish_brew_complete_arg 'pr-pull' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)' __fish_brew_complete_arg 'pr-pull' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
__fish_brew_complete_arg 'pr-pull' -l artifact -d 'Download artifacts with the specified name (default: `bottles`)' __fish_brew_complete_arg 'pr-pull' -l artifact -d 'Download artifacts with the specified name (default: `bottles`)'
__fish_brew_complete_arg 'pr-pull' -l autosquash -d 'Automatically reformat and reword commits in the pull request to our preferred format' __fish_brew_complete_arg 'pr-pull' -l autosquash -d 'Automatically reformat and reword commits in the pull request to our preferred format'
__fish_brew_complete_arg 'pr-pull' -l bintray-mirror -d 'Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)'
__fish_brew_complete_arg 'pr-pull' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'pr-pull' -l branch-okay -d 'Do not warn if pulling to a branch besides the repository default (useful for testing)' __fish_brew_complete_arg 'pr-pull' -l branch-okay -d 'Do not warn if pulling to a branch besides the repository default (useful for testing)'
__fish_brew_complete_arg 'pr-pull' -l clean -d 'Do not amend the commits from pull requests' __fish_brew_complete_arg 'pr-pull' -l clean -d 'Do not amend the commits from pull requests'
__fish_brew_complete_arg 'pr-pull' -l committer -d 'Specify a committer name and email in `git`\'s standard author format' __fish_brew_complete_arg 'pr-pull' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
@ -1084,7 +1078,6 @@ __fish_brew_complete_arg 'pr-pull' -l workflows -d 'Retrieve artifacts from the
__fish_brew_complete_cmd 'pr-upload' 'Apply the bottle commit and publish bottles to a host' __fish_brew_complete_cmd 'pr-upload' 'Apply the bottle commit and publish bottles to a host'
__fish_brew_complete_arg 'pr-upload' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)' __fish_brew_complete_arg 'pr-upload' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
__fish_brew_complete_arg 'pr-upload' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'pr-upload' -l committer -d 'Specify a committer name and email in `git`\'s standard author format' __fish_brew_complete_arg 'pr-upload' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
__fish_brew_complete_arg 'pr-upload' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'pr-upload' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'pr-upload' -l dry-run -d 'Print what would be done rather than doing it' __fish_brew_complete_arg 'pr-upload' -l dry-run -d 'Print what would be done rather than doing it'

View File

@ -177,7 +177,7 @@ __brew_internal_commands() {
'log:Show the `git log` for formula, or show the log for the Homebrew repository if no formula is provided' 'log:Show the `git log` for formula, or show the log for the Homebrew repository if no formula is provided'
'man:Generate Homebrew'\''s manpages' 'man:Generate Homebrew'\''s manpages'
'migrate:Migrate renamed packages to new names, where formula are old names of packages' 'migrate:Migrate renamed packages to new names, where formula are old names of packages'
'mirror:Reupload the stable URL of a formula to Bintray for use as a mirror' 'mirror:Reupload the stable URL of a formula for use as a mirror'
'missing:Check the given formula kegs for missing dependencies' 'missing:Check the given formula kegs for missing dependencies'
'options:Show install options specific to formula' 'options:Show install options specific to formula'
'outdated:List installed casks and formulae that have an updated version available' 'outdated:List installed casks and formulae that have an updated version available'
@ -721,7 +721,7 @@ _brew_dispatch_build_bottle() {
'(--linux)--macos[Version of macOS the bottle should be built for]' \ '(--linux)--macos[Version of macOS the bottle should be built for]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--tap[Target tap repository (default: `homebrew/core`)]' \ '--tap[Target tap repository (default: `homebrew/core`)]' \
'--upload[Upload built bottles to Bintray]' \ '--upload[Upload built bottles]' \
'--verbose[Make some output more verbose]' \ '--verbose[Make some output more verbose]' \
'--workflow[Dispatch specified workflow (default: `dispatch-build-bottle.yml`)]' \ '--workflow[Dispatch specified workflow (default: `dispatch-build-bottle.yml`)]' \
- formula \ - formula \
@ -1191,15 +1191,10 @@ _brew_migrate() {
# brew mirror # brew mirror
_brew_mirror() { _brew_mirror() {
_arguments \ _arguments \
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--bintray-repo[Upload to the specified Bintray repository (default: `mirror`)]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--help[Show this message]' \ '--help[Show this message]' \
'--no-publish[Upload to Bintray, but don'\''t publish]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--verbose[Make some output more verbose]' \ '--verbose[Make some output more verbose]'
- formula \
'*::formula:__brew_formulae'
} }
# brew missing # brew missing
@ -1301,11 +1296,9 @@ _brew_pr_publish() {
# brew pr-pull # brew pr-pull
_brew_pr_pull() { _brew_pr_pull() {
_arguments \ _arguments \
'(--bintray-org)--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \ '--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
'--artifact[Download artifacts with the specified name (default: `bottles`)]' \ '--artifact[Download artifacts with the specified name (default: `bottles`)]' \
'(--clean)--autosquash[Automatically reformat and reword commits in the pull request to our preferred format]' \ '(--clean)--autosquash[Automatically reformat and reword commits in the pull request to our preferred format]' \
'--bintray-mirror[Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)]' \
'(--archive-item)--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--branch-okay[Do not warn if pulling to a branch besides the repository default (useful for testing)]' \ '--branch-okay[Do not warn if pulling to a branch besides the repository default (useful for testing)]' \
'(--autosquash)--clean[Do not amend the commits from pull requests]' \ '(--autosquash)--clean[Do not amend the commits from pull requests]' \
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \ '--committer[Specify a committer name and email in `git`'\''s standard author format]' \
@ -1332,7 +1325,6 @@ _brew_pr_pull() {
_brew_pr_upload() { _brew_pr_upload() {
_arguments \ _arguments \
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \ '--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \ '--committer[Specify a committer name and email in `git`'\''s standard author format]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--dry-run[Print what would be done rather than doing it]' \ '--dry-run[Print what would be done rather than doing it]' \

View File

@ -1027,7 +1027,7 @@ Build bottles for these formulae with GitHub Actions.
* `--workflow`: * `--workflow`:
Dispatch specified workflow (default: `dispatch-build-bottle.yml`). Dispatch specified workflow (default: `dispatch-build-bottle.yml`).
* `--upload`: * `--upload`:
Upload built bottles to Bintray. Upload built bottles.
* `--linux`: * `--linux`:
Dispatch bottle for Linux (using GitHub runners). Dispatch bottle for Linux (using GitHub runners).
@ -1185,16 +1185,12 @@ Requires write access to the repository.
Download artifacts with the specified name (default: `bottles`). Download artifacts with the specified name (default: `bottles`).
* `--archive-item`: * `--archive-item`:
Upload to the specified Internet Archive item (default: `homebrew`). Upload to the specified Internet Archive item (default: `homebrew`).
* `--bintray-org`:
Upload to the specified Bintray organisation (default: `homebrew`).
* `--tap`: * `--tap`:
Target tap repository (default: `homebrew/core`). Target tap repository (default: `homebrew/core`).
* `--root-url`: * `--root-url`:
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default. Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
* `--root-url-using`: * `--root-url-using`:
Use the specified download strategy class for downloading the bottle's URL instead of Homebrew's default. Use the specified download strategy class for downloading the bottle's URL instead of Homebrew's default.
* `--bintray-mirror`:
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`).
* `--workflows`: * `--workflows`:
Retrieve artifacts from the specified workflow (default: `tests.yml`). Can be a comma-separated list to include multiple workflows. Retrieve artifacts from the specified workflow (default: `tests.yml`). Can be a comma-separated list to include multiple workflows.
* `--ignore-missing-artifacts`: * `--ignore-missing-artifacts`:
@ -1218,8 +1214,6 @@ Apply the bottle commit and publish bottles to a host.
Specify a committer name and email in `git`'s standard author format. Specify a committer name and email in `git`'s standard author format.
* `--archive-item`: * `--archive-item`:
Upload to the specified Internet Archive item (default: `homebrew`). Upload to the specified Internet Archive item (default: `homebrew`).
* `--bintray-org`:
Upload to the specified Bintray organisation (default: `homebrew`).
* `--github-org`: * `--github-org`:
Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`). Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`).
* `--root-url`: * `--root-url`:
@ -1805,12 +1799,6 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
*Default:* `$HOME/.bat/config`. *Default:* `$HOME/.bat/config`.
- `HOMEBREW_BINTRAY_KEY`
<br>Use this API key when accessing the Bintray API (where bottles are stored).
- `HOMEBREW_BINTRAY_USER`
<br>Use this username when accessing the Bintray API (where bottles are stored).
- `HOMEBREW_BOOTSNAP` - `HOMEBREW_BOOTSNAP`
<br>If set, use Bootsnap to speed up repeated `brew` calls. A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work). <br>If set, use Bootsnap to speed up repeated `brew` calls. A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).

View File

@ -1449,7 +1449,7 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
. .
.TP .TP
\fB\-\-upload\fR \fB\-\-upload\fR
Upload built bottles to Bintray\. Upload built bottles\.
. .
.TP .TP
\fB\-\-linux\fR \fB\-\-linux\fR
@ -1668,10 +1668,6 @@ Download artifacts with the specified name (default: \fBbottles\fR)\.
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\. Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
. .
.TP .TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-tap\fR \fB\-\-tap\fR
Target tap repository (default: \fBhomebrew/core\fR)\. Target tap repository (default: \fBhomebrew/core\fR)\.
. .
@ -1684,10 +1680,6 @@ Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew
Use the specified download strategy class for downloading the bottle\'s URL instead of Homebrew\'s default\. Use the specified download strategy class for downloading the bottle\'s URL instead of Homebrew\'s default\.
. .
.TP .TP
\fB\-\-bintray\-mirror\fR
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: \fBmirror\fR)\.
.
.TP
\fB\-\-workflows\fR \fB\-\-workflows\fR
Retrieve artifacts from the specified workflow (default: \fBtests\.yml\fR)\. Can be a comma\-separated list to include multiple workflows\. Retrieve artifacts from the specified workflow (default: \fBtests\.yml\fR)\. Can be a comma\-separated list to include multiple workflows\.
. .
@ -1727,10 +1719,6 @@ Specify a committer name and email in \fBgit\fR\'s standard author format\.
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\. Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
. .
.TP .TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-github\-org\fR \fB\-\-github\-org\fR
Upload to the specified GitHub organisation\'s GitHub Packages (default: \fBhomebrew\fR)\. Upload to the specified GitHub organisation\'s GitHub Packages (default: \fBhomebrew\fR)\.
. .
@ -2519,18 +2507,6 @@ Use this as the \fBbat\fR configuration file\.
\fIDefault:\fR \fB$HOME/\.bat/config\fR\. \fIDefault:\fR \fB$HOME/\.bat/config\fR\.
. .
.TP .TP
\fBHOMEBREW_BINTRAY_KEY\fR
.
.br
Use this API key when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BINTRAY_USER\fR
.
.br
Use this username when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BOOTSNAP\fR \fBHOMEBREW_BOOTSNAP\fR
. .
.br .br