952 Commits

Author SHA1 Message Date
Mike McQuaid
ba3c46d24f More deprecations.
Deprecate more methods. Internal APIs have been verified to be unused
elsewhere and removed. External APIs have had deprecation methods added.
Existing deprecations have been either upgraded to produce warnings or
no longer deprecated and the reasoning documented.
2017-04-22 16:28:07 +01:00
John Hawkinson
31ce953f69 formula: conflicts_with doc: give realistic :because
The documentation should help a developer understand what the
parameter is for.  "stupid example" doesn't cut it.
2017-04-09 15:07:05 -04:00
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