1350 Commits

Author SHA1 Message Date
Mike McQuaid
1ba401039e Merge pull request #2422 from MikeMcQuaid/formula-missing-dependencies-handle-unavailable-formula
formula: handle missing deps when formula missing.
2017-03-30 20:25:18 +01:00
Mike McQuaid
8472d6a40e formula: check installed_alias_path exists.
Otherwise return `nil`.

Fixes https://github.com/Homebrew/brew/issues/2417
2017-03-30 19:39:26 +01:00
Mike McQuaid
689c1d5aa1 formula: handle missing deps when formula missing.
We could try and get a partial result but given it'll also be wrong it
feels simpler to just return an empty array.

Fixes #1928.
Fixes #2027.
Closes #2058.
Fixes https://github.com/Homebrew/homebrew-core/issues/11827.
2017-03-30 18:54:47 +01:00
Mike McQuaid
7ffb036b52 Merge pull request #2063 from MikeMcQuaid/caveats-clarify
formula: clarify caveats usage.
2017-02-25 14:15:19 +00:00
Mike McQuaid
10970a5c54 formula: clarify caveats usage. 2017-02-20 11:21:25 +00:00
Chris Long
15ae8870a3 Docs for tag-based urls use preferred formatting 2017-02-19 13:21:55 -08:00
Xu Cheng
f3df412e77
cleanup: consider version_scheme
`brew cleanup` should cleanup formulae which have the older
version scheme.
2017-01-30 17:16:56 +08:00
Mike McQuaid
44f1c9752a formula: installed_{as_dependency,on_request} hash
Which, in turn, provides them for `brew info --json=v1` so other tools
such as e.g. `brew bundle` can make use of this information.
2017-01-18 11:23:21 +00:00
Mike McQuaid
dac66c4ada Add keg_only :versioned_formula.
This is used to indicate a formula is a version of another formula.
This will be used to provide a consistent interface for older formulae
versions and replaces the use of `conflicts_with`.
2017-01-17 10:50:04 +00:00
Mike McQuaid
02b7ffd89d formula: runtime_dependencies contains requirement formulae.
When a Requirement is converted to a Formula it should be listed under
the runtime dependencies.
2017-01-15 21:04:59 +00:00
Mike McQuaid
28ad8a06cc formula: return runtime_dependencies in to_hash.
Which, in turn, provides it for `brew info --json=v1` so other tools
such as e.g. `brew bundle` can make use of this information.
2017-01-09 21:03:37 +00:00
ilovezfs
1a394aa7e5 Merge pull request #1782 from ilovezfs/prefix-fixups
Fix abv and prefix_linked?
2017-01-06 02:03:39 -08:00
Mike McQuaid
1a4ff22447 formula: tweak versioned prefix approach. 2017-01-06 08:50:35 +00:00
Mike McQuaid
3fde8624b3 Merge pull request #1780 from MikeMcQuaid/use-docs-links
Use docs.brew.sh links.
2017-01-05 17:17:07 +00:00
Alyssa Ross
e466a65b8d formula: correct grammar in comments 2017-01-05 12:21:50 +00:00
ilovezfs
a68d38743a formula: make prefix_linked? use versioned prefix
otherwise whenever prefix is unversioned, prefix_Linked will be false
2017-01-04 12:45:32 -08:00
ilovezfs
6195d6592b formula: realpath prefix before computing abv
versioned prefix is a directory, but unversioned is a symlink, so
realpath it before computing abv
2017-01-04 10:23:15 -08:00
Mike McQuaid
a3bffe70bc Use docs.brew.sh links. 2017-01-04 11:13:41 +00:00
Mike McQuaid
fc11f633b2 Merge pull request #1677 from MikeMcQuaid/formula-prefix-opt
formula: make prefix usually return opt_prefix.
2017-01-03 20:10:22 +00:00
Mike McQuaid
82f4413964 formula, ARGV: don't output duplicate formulae.
If you specify a formula more than once or it exists in the Cellar with
an alias name and the main name (e.g. `qt` and `qt5`) you can see the
same formula showing up more than once. Instead, resolve these output
lists of formulae such that they are unique based on their `name`. This
doesn't use `full_name` as it's `name` that's use for the `Cellar`.
2016-12-31 17:03:29 +00:00
Mike McQuaid
a571965df9 formula: make prefix usually return opt_prefix.
Return `opt_prefix` if it exists and `prefix` is not called from within
the same formula's `install` or `post_install` methods. Otherwise, fall
back to the existing functionality.

This avoids the need to use `opt_prefix` etc. everywhere and generally
means we don't expose an implementation detail (i.e. the full Cellar
path) to dependents that have a habit of hard-coding it.
2016-12-31 16:38:05 +00:00
Alyssa Ross
ef5cff5e71 formula: make runtime_dependencies logic clearer 2016-12-23 21:31:20 +00:00
Alyssa Ross
43f2e9e7bb formula: don't expand unused optional dependencies
This properly addresses Homebrew/homebrew-core#7826.
2016-12-23 21:31:10 +00:00
Alyssa Ross
3f724825d3 Revert "Revert "formula: runtime deps of build deps aren't runtime""
This reverts commit 862c3ba4a2fb76140e46fdf49a1ea6857f140a29.
2016-12-23 15:01:02 +00:00
Mike McQuaid
e95c843c2e Merge pull request #1673 from MikeMcQuaid/audit-fails-with-llvm
audit: flag use of "fails_with :llvm".
2016-12-18 11:17:44 -08:00
ilovezfs
862c3ba4a2 Revert "formula: runtime deps of build deps aren't runtime" 2016-12-13 11:15:00 -08:00
Mike McQuaid
cf1fa0c5bc audit: flag use of "fails_with :llvm".
Also, add TODOs for deprecating this properly at a later point.
2016-12-13 02:10:11 +00:00
Mike McQuaid
666463ca2b Merge pull request #1592 from alyssais/runtime_dependencies
formula: runtime deps of build deps aren't runtime
2016-12-12 13:28:56 +00:00
Mike McQuaid
c317c3c31f Merge pull request #1616 from zachwhaley/zsh_functions_caveats
caveats: Differentiate zsh completion files and function files
2016-12-12 13:27:40 +00:00
Uladzislau Shablinski
45ef7ea0b0 Merge pull request #1343 from vladshablinsky/explicit-specs
Allow to install any spec
2016-12-11 14:26:46 +03:00
Zach Whaley
95688cd72e formula: Add convenience method for installing Zsh functions 2016-12-08 07:23:26 -06:00
Zach Whaley
1995f65308 Add a method for installing fish function files
Fish shell allows third-party software vendors to put their own function files in a directory for their software.
For brew installed Fish shell, this is /usr/local/share/fish/vendor_functions.d
2016-12-04 13:21:42 -06:00
Uladzislau Shablinski
52526c962b formula: add new methods
* `Formula#linked?` returns true if formula linked
* `Formula#optlinked?` returns true if formula linked to opt
  formula installed to the Cellar
* `Formula#prefix_linked?` returns true if linked keg points to the prefix
  passed as an argument
* `Formula#linked_version` to get linked version of the formula
2016-12-03 04:42:04 +03:00
Alyssa Ross
2b68da8252 formula: runtime deps of build deps aren't runtime
Fixes #1554 (but only for new installations)
2016-11-29 01:39:02 +00:00
Tse Kit Yam
2279751103 Fix broken link 2016-11-24 18:26:01 +08:00
Mike McQuaid
7853406fb4 Merge pull request #1515 from alyssais/formula_cache
Fix flaky tests.
2016-11-18 15:37:49 +00:00
Zhiming Wang
00532a3e3a
formula: update test_fixtures path
Fix regression caused by #1364.
2016-11-17 15:54:51 -05:00
Alyssa Ross
3555206a7f formula: make cache clearing methods, *ahem*, clearer 2016-11-17 14:36:49 +00:00
Mike McQuaid
2ce17a1137 Merge pull request #1082 from alyssais/uninstall_dependancy_error
uninstall: refuse when dependents still installed
2016-11-11 08:23:57 +00:00
Mandar Gokhale
0e15ffff62 Correct a few typos
...and update man pages where applicable
2016-11-03 12:09:44 +00:00
Alyssa Ross
0cd983487c missing_deps: extract formula instance method 2016-10-25 22:34:35 +01:00
Alyssa Ross
6f0aabe707 uninstall: refuse when dependants still installed
Closes #934.
2016-10-25 22:34:34 +01:00
Markus Reiter
31ec04704a Move cask fixtures to test/fixtures/cask. 2016-10-24 15:52:41 +02:00
Uladzislau Shablinski
0ae1785703 formula: use names for formula comparison
* Causes a bug in Formula#installed_alias_target_changed? when
  Formula#superseds_an_installed_formula? returns true because
  Formula#old_installed_formulae includes f for some Formula f.

* Causes a bug when foo@2.4 with alias foo has HEAD or devel version and
  we try to `brew upgrade foo --devel|--HEAD` from stable. The upgrade fails
  while since we installing formula to the same prefix it's alredy installed.
  The reason for that is that we use
  `formula_to_install = outdated.map(&:latest_formula)` in cmd/upgrade
  before calling upgrade_formula on foo.

  ```ruby
  def latest_formula
  installed_alias_target_changed? ? current_installed_alias_target : self
  end
  ```

  Formula#installed_alias_target_changed? compares formulae using
  Formula#==, which is wrong for this case, thus Formula#latest_formula doesn't
  return self and returns Formula#current_installed_alias_target with spec
  foo was initially installed instead of devel or HEAD, causing the error.
2016-10-20 03:09:23 +03:00
Markus Reiter
6c6a4c9fa7 RuboCop: Style/AccessorMethodName 2016-09-24 19:28:26 +02:00
Markus Reiter
58e36c7319 Fix Style/GuardClause. 2016-09-24 12:24:35 +02:00
Markus Reiter
e851c9bf6c Style/Alias: Prefer alias. 2016-09-23 18:19:53 +02:00
Markus Reiter
2b92f907b7 Fix Style/FormatString. 2016-09-23 17:29:29 +02:00
Markus Reiter
fe2d51e0b9 Fix Style/IfUnlessModifier. 2016-09-23 15:30:07 +02:00
Markus Reiter
52ff988530 Fix RuboCop CaseEquality. 2016-09-23 15:30:06 +02:00