Skip to content

Commit 1e52622

Browse files
committed
tab: remove installed_as_dependency, use installed_on_request as source of truth
Replace all uses of installed_as_dependency with !installed_on_request. Stop storing installed_as_dependency in new Tabs for both formulae and casks. installed_on_request is now the single source of truth. Fixes #21751
1 parent fe179cf commit 1e52622

23 files changed

Lines changed: 25 additions & 96 deletions

Library/Homebrew/bundle/brew.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def dump(describe: false, no_restart: false)
142142
require "bundle/brew_services"
143143

144144
requested_formula = formulae.select do |f|
145-
f[:installed_on_request?] || !f[:installed_as_dependency?]
145+
f[:installed_on_request?]
146146
end
147147
requested_formula.map do |f|
148148
brewline = if describe && f[:desc].present?
@@ -245,7 +245,6 @@ def formula_to_hash(formula)
245245
nil
246246
end.to_s
247247
args << "HEAD" if version.start_with?("HEAD")
248-
installed_as_dependency = tab.installed_as_dependency
249248
installed_on_request = tab.installed_on_request
250249
runtime_dependencies = if (runtime_deps = tab.runtime_dependencies)
251250
runtime_deps.filter_map { |d| d["full_name"] }
@@ -270,7 +269,6 @@ def formula_to_hash(formula)
270269
any_version_installed?: formula.any_version_installed?,
271270
args: Array(args).uniq,
272271
version:,
273-
installed_as_dependency?: installed_as_dependency || false,
274272
installed_on_request?: installed_on_request || false,
275273
dependencies: runtime_dependencies,
276274
build_dependencies: formula.deps.select(&:build?).map(&:name).uniq,

Library/Homebrew/cask/audit.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ def extract_artifacts(&_block)
626626

627627
install_options = {
628628
show_header: true,
629-
installed_as_dependency: true,
629+
installed_on_request: false,
630630
installed_on_request: false,
631631
verbose: false,
632632
}.compact

Library/Homebrew/cask/installer.rb

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ class Installer
2323
params(
2424
cask: ::Cask::Cask, command: T.class_of(SystemCommand), force: T::Boolean, adopt: T::Boolean,
2525
skip_cask_deps: T::Boolean, binaries: T::Boolean, verbose: T::Boolean, zap: T::Boolean,
26-
require_sha: T::Boolean, upgrade: T::Boolean, reinstall: T::Boolean, installed_as_dependency: T::Boolean,
26+
require_sha: T::Boolean, upgrade: T::Boolean, reinstall: T::Boolean,
2727
installed_on_request: T::Boolean, quarantine: T::Boolean, verify_download_integrity: T::Boolean,
2828
quiet: T::Boolean, download_queue: Homebrew::DownloadQueue, defer_fetch: T::Boolean
2929
).void
3030
}
3131
def initialize(cask, command: SystemCommand, force: false, adopt: false,
3232
skip_cask_deps: false, binaries: true, verbose: false,
3333
zap: false, require_sha: false, upgrade: false, reinstall: false,
34-
installed_as_dependency: false, installed_on_request: true,
34+
installed_on_request: true,
3535
quarantine: true, verify_download_integrity: true, quiet: false,
3636
download_queue: Homebrew.default_download_queue, defer_fetch: false)
3737
@cask = cask
@@ -45,7 +45,6 @@ def initialize(cask, command: SystemCommand, force: false, adopt: false,
4545
@require_sha = require_sha
4646
@reinstall = reinstall
4747
@upgrade = upgrade
48-
@installed_as_dependency = installed_as_dependency
4948
@installed_on_request = installed_on_request
5049
@quarantine = quarantine
5150
@verify_download_integrity = verify_download_integrity
@@ -64,8 +63,7 @@ def binaries? = @binaries
6463
sig { returns(T::Boolean) }
6564
def force? = @force
6665

67-
sig { returns(T::Boolean) }
68-
def installed_as_dependency? = @installed_as_dependency
66+
6967

7068
sig { returns(T::Boolean) }
7169
def installed_on_request? = @installed_on_request
@@ -170,7 +168,6 @@ def install
170168
install_artifacts(predecessor:)
171169

172170
tab = Tab.create(@cask)
173-
tab.installed_as_dependency = installed_as_dependency?
174171
tab.installed_on_request = installed_on_request?
175172
tab.write
176173

@@ -437,7 +434,7 @@ def missing_cask_and_formula_dependencies
437434
end
438435

439436
def satisfy_cask_and_formula_dependencies
440-
return if installed_as_dependency?
437+
return unless installed_on_request?
441438

442439
formulae_and_casks = cask_and_formula_dependencies
443440

@@ -466,7 +463,6 @@ def satisfy_cask_and_formula_dependencies
466463
adopt: adopt?,
467464
binaries: binaries?,
468465
force: false,
469-
installed_as_dependency: true,
470466
installed_on_request: false,
471467
quarantine: quarantine?,
472468
quiet: quiet?,
@@ -478,7 +474,6 @@ def satisfy_cask_and_formula_dependencies
478474
cask_or_formula,
479475
**{
480476
show_header: true,
481-
installed_as_dependency: true,
482477
installed_on_request: false,
483478
verbose: verbose?,
484479
}.compact,

Library/Homebrew/cask/tab.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ def to_json(*_args)
104104
"homebrew_version" => homebrew_version,
105105
"loaded_from_api" => loaded_from_api,
106106
"uninstall_flight_blocks" => uninstall_flight_blocks,
107-
"installed_as_dependency" => installed_as_dependency,
108107
"installed_on_request" => installed_on_request,
109108
"time" => time,
110109
"runtime_dependencies" => runtime_dependencies,

Library/Homebrew/cmd/install.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ def run
294294
formulae_installer = Install.formula_installers(
295295
installed_formulae,
296296
installed_on_request: !args.as_dependency?,
297-
installed_as_dependency: args.as_dependency?,
298297
build_bottle: args.build_bottle?,
299298
force_bottle: args.force_bottle?,
300299
bottle_arch: args.bottle_arch,

Library/Homebrew/cmd/leaves.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def run
3030
end
3131
leaves_list -= casks_runtime_dependencies
3232
leaves_list.select! { |leaf| installed_on_request?(leaf) } if args.installed_on_request?
33-
leaves_list.select! { |leaf| installed_as_dependency?(leaf) } if args.installed_as_dependency?
33+
leaves_list.select! { |leaf| !installed_on_request?(leaf) } if args.installed_as_dependency?
3434

3535
leaves_list.map(&:full_name)
3636
.sort
@@ -45,8 +45,8 @@ def installed_on_request?(formula)
4545
end
4646

4747
sig { params(formula: Formula).returns(T::Boolean) }
48-
def installed_as_dependency?(formula)
49-
formula.any_installed_keg&.tab&.installed_as_dependency == true
48+
def installed_on_request?(formula)
49+
formula.any_installed_keg&.tab&.installed_on_request == false
5050
end
5151
end
5252
end

Library/Homebrew/cmd/list.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,9 @@ def run
136136

137137
statuses = []
138138
statuses << "installed on request" if args.installed_on_request? && tab.installed_on_request
139-
statuses << "installed as dependency" if args.installed_as_dependency? && tab.installed_as_dependency
139+
# TODO: Uncomment to deprecate in a future release:
140+
# odeprecated "brew list --installed-as-dependency", "brew list --no-installed-on-request"
141+
statuses << "installed as dependency" if args.installed_as_dependency? && !tab.installed_on_request
140142
statuses << "poured from bottle" if args.poured_from_bottle? && tab.poured_from_bottle
141143
statuses << "built from source" if args.built_from_source? && !tab.poured_from_bottle
142144
next if statuses.empty?

Library/Homebrew/cmd/tab.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ def update_tab(formula_or_cask, installed_on_request:)
7878
end
7979

8080
tab.installed_on_request = installed_on_request
81-
tab.installed_as_dependency = !installed_on_request if formula_or_cask.is_a?(Formula)
8281
tab.write
8382
ohai "#{name} is now marked as #{installed_on_request_str}."
8483
end

Library/Homebrew/extend/os/linux/formula_installer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ class FormulaInstaller
55
sig { params(formula: Formula).returns(T.nilable(T::Boolean)) }
66
def fresh_install?(formula)
77
!Homebrew::EnvConfig.developer? &&
8-
(!installed_as_dependency? || !formula.any_version_installed?)
8+
(installed_on_request? || !formula.any_version_installed?)
99
end
1010
end

Library/Homebrew/extend/os/mac/formula_installer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module FormulaInstaller
1111
sig { params(formula: Formula).returns(T.nilable(T::Boolean)) }
1212
def fresh_install?(formula)
1313
!::Homebrew::EnvConfig.developer? && !OS::Mac.version.outdated_release? &&
14-
(!installed_as_dependency? || !formula.any_version_installed?)
14+
(installed_on_request? || !formula.any_version_installed?)
1515
end
1616
end
1717
end

0 commit comments

Comments
 (0)