153 Commits

Author SHA1 Message Date
Mike McQuaid
83af084079 exceptions: use specific build error checks. 2016-11-05 10:58:39 -04:00
Markus Reiter
b306f14b97 Rename FormulaMethodDeprecatedError to MethodDeprecatedError. 2016-10-08 13:26:10 +02:00
ilovezfs
23a38e0ff6 virtualenv_install_with_resources: select correct python
`virtualenv_install_with_resources` will now attempt to guess the
desired Python based on the active build options and based on the
dependencies and requirements. When the situation is ambiguous (e.g.,
`depends_on :python3` and `build.with? "python"` is true) raise
`FormulaAmbiguousPythonError` unless `:using => "python"` or
`:using => "python3"` has been passed to resolve the ambiguity.

In most cases, this will allow

```
    virtualenv_create(libexec, "python3")
    virtualenv_install_with_resources
```

to be changed to just

```
    virtualenv_install_with_resources
```
2016-10-02 18:08:56 -07:00
Markus Reiter
884b268506 Use Formatter for all URLs. 2016-10-01 20:00:49 +02:00
Markus Reiter
75e8b59aad Add Formatter module. 2016-10-01 20:00:49 +02:00
Markus Reiter
6d8ee395fa Refactor Tty. 2016-10-01 20:00:49 +02:00
Mike McQuaid
3f9cce0a03 Use new "macOS" naming where appropriate.
Not quite a mass replacement as I've used OS X and Mac OS X where
describing specific older versions and added compatibility methods
for things in the DSL.
2016-09-18 19:57:19 +01:00
Mike McQuaid
3982950e61 rubocop --auto-correct all hash-rocket usage. 2016-09-17 16:14:13 +01:00
Mike McQuaid
6693915399 rubocop --auto-correct all remaining files.
But remove some manual `.freeze`s on constants that shouldn't be
constants.
2016-09-17 16:14:13 +01:00
Mike McQuaid
7dddc4df9f exceptions: assume Ruby 2. 2016-08-17 09:19:56 +01:00
Xu Cheng
a8566c9848 various: eliminate the usage of any? (#638)
`any?` is not the opposite of `empty?`. Besides the case that
`[false, nil].any?` will return false, `any?`(O(n)) has much worse
performance than `empty?`(O(1)).
2016-08-05 22:01:32 +08:00
Mike McQuaid
af2101b64d exceptions: add FormulaMethodDeprecatedError.
This will be raised when Homebrew developers try to use formulae that
call deprecated methods.
2016-07-29 21:21:29 -06:00
Mike McQuaid
270b0ec783 exceptions: port to generic layer. 2016-07-27 15:05:42 -06:00
Tony Kelman
fe89467832 exceptions: Remove duplicate "a" in "must be built from source" error (#339)
otherwise would get "cannot be installed as a a binary package"
since `package_text` contains "a binary package" in the singular case
2016-06-08 17:53:11 +02:00
Martin Afanasjew
4ea2f9dc91 Fix more bad dump_verbose_config references
Follow-up to c7edf9a063dce63afb9ab54b6d71fe864d578365 and related to
changes from #168.
2016-05-08 21:43:57 +02:00
Misty De Meo
9ead6bc2f8 Update CompilerSelectionError
Fixes mistydemeo/tigerbrew#207.
Fixes mistydemeo/tigerbrew#330.
2016-04-22 22:37:21 -07:00
Martin Afanasjew
d9363a1559 exceptions: add reason to 'UsageError' exception
Use the `reason` attribute to be able to handle `UsageError` subclasses
more uniformly and simplify logic in `brew.rb` to handle them together.
2016-04-20 13:46:10 +02:00
Martin Afanasjew
1ded40a744 exceptions: add FormulaClassUnavailableError 2016-04-17 21:16:01 +02:00
ilovezfs
fad235d8e8 tap: support --full even if installed
Makes `tap` re-runnable and unshallows when requested with `--full`.
Tapping with a different URL raises an exception.

The homebrew/core tap cannot be untapped with `untap` so running
`brew tap --full homebrew/core` is now a built-in way to get a full
clone of this tap without resorting to workarounds.

Closes #17.

Signed-off-by: ilovezfs <ilovezfs@icloud.com>
2016-04-05 07:25:27 -07:00
Xu Cheng
bc19a47eb9 GitHub: fix issues/pr searching
Closes #6.
2016-04-04 02:00:21 +08:00
Xu Cheng
00ae49f4ac BuildError: update for core/formula separation 2016-04-03 21:46:20 +08:00
ilovezfs
cc3d041c26 DSL method "apply" to specify patch files
The "apply" DSL method can be called from patch-do blocks to specify
the paths within an archive of the desired patch files, which will be
applied in the order in which they were supplied to the "apply" calls.
If "apply" isn't used, raise an error whenever the extracted directory
doesn't contain exactly one file.

The "apply" method can be called zero or more times within a patch-do
block with the following syntaxes supported:

    apply "single_apply"
    apply "multiple_apply_1", "multiple_apply_2"
    apply [array_of_apply]

If apply must be used, a single call using the second syntax above is
usually best practice. Each apply leaf should be the relative path to a
specific patch file in the extracted directory.

For example, if extracting this-v123-patches.tar.gz gives you

    this-123
    this-123/.DS_Store
    this-123/LICENSE.txt
    this-123/patches
    this-123/patches/A.diff
    this-123/patches/B.diff
    this-123/patches/C.diff
    this-123/README.txt

and you want to apply only B.diff and C.diff, then you need to use
"patches/B.diff" and "patches/C.diff" for the lowest-level apply leaves.

The code was provided by Xu Cheng. Any mistakes are mine.
2016-02-01 18:37:36 +00:00
Baptiste Fontaine
88535b09b7 exceptions: hotfix 2016-01-05 16:08:25 +01:00
Baptiste Fontaine
9f1442db14 doctor: move code away from cmd/
Closes Homebrew/homebrew#47665.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2016-01-05 14:33:06 +01:00
Baptiste Fontaine
c15c9dbaf3 Tap#issues_url added
Closes Homebrew/homebrew#47454.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-12-30 00:44:46 +01:00
Xu Cheng
9a384f5134 exceptions: tap is a Tap object now 2015-12-09 16:56:59 +08:00
Xu Cheng
48950f2cc0 centralize the logic of handling homebrew- in Tap.fetch
Closes Homebrew/homebrew#46537.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-12-03 13:46:59 +08:00
Baptiste Fontaine
24a1eeceb3 Common build environment methods moved in build_environment.rb
Closes Homebrew/homebrew#45966.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-11-17 00:17:22 +01:00
Xu Cheng
889bb5fb03 exceptions: add TapAlreadyTappedError 2015-11-09 15:34:20 +08:00
Xu Cheng
d6bf2f5749 run Checks#check_for_unsupported_osx unconditionally 2015-10-23 19:42:22 +08:00
Martin Afanasjew
30cad0608f os: centralize check for pre-release OS X versions
Provide `OS::Mac.prerelease?` for pre-release checks and use it where
appropriate. This should simplify updating the test once a new OS X
release lands.

This also fixes a bug in `BuildError#dump`, where an empty warning
message was printed on El Capitan after a failed from-source build,
because the check there and the one in `check_for_unsupported_osx` were
out of sync.

Closes Homebrew/homebrew#45257.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-10-23 12:34:44 +01:00
Eric Andrew Lewis
5ec396ed38 install: make search output more intuitive.
Closes Homebrew/homebrew#42222.
Closes Homebrew/homebrew#44892.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-10-19 10:16:40 +01:00
Baptiste Fontaine
f3035333fb FormulaValidationError: include full_name
Closes Homebrew/homebrew#44946.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-10-14 16:21:42 +02:00
Mike McQuaid
cbb91c5516 exceptions: handle HOMEBREW_NO_GITHUB_API case.
Closes Homebrew/homebrew#43618.
2015-09-06 13:30:02 +01:00
William Woodruff
c459349b89 reformat nested heredocs in BuildFlagsError and BuildToolsError to match String#undent behavior
Closes Homebrew/homebrew#43303.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-08-28 18:02:05 +08:00
Xu Cheng
a88c40b8c8 core file style update 2015-08-22 13:15:33 +08:00
Misty De Meo
3d1f9e0a9c exceptions: change 10.9 Xcode URL 2015-08-21 11:46:39 -07:00
Dominyk Tiller
ff8520e61b exceptions: use xcode frontpage 2015-08-21 19:28:05 +01:00
Misty De Meo
727239e12f Merge bottle install without Xcode branch
Merge branch 'bottle_hooks'
2015-08-21 11:04:22 -07:00
William Woodruff
91e598cf3f Install: add BuildToolsError and BuildFlagsError
Add these new errors, and guards in formula installation and
cmd/{,un,re}install to match, move can_build? to the MacOS module,
flatten conditions, remove redundant can_build? check

reinstate removed (doctor) check
2015-08-21 10:59:09 -07:00
Vlad Shablinsky
ab1164f4de exceptions: add TapFormulaWithOldnameAmbiguityError
- TapFormulaWithOldnameAmbiguityError is an exception raised when
multiple tap formulae available for given old name
2015-08-10 13:57:59 +01:00
CNA-Bld
1a82b2133e implement pinning of taps 2015-08-10 12:17:25 +01:00
BrewTestBot
13d544e11e Core files style updates.
Closes Homebrew/homebrew#42354.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-08-03 13:22:35 +01:00
Edgar Gonzalez
fbb8efbd66 Fix typo in UnsatisfiedRequirements exception message
Closes Homebrew/homebrew#42125.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-07-26 09:19:22 +02:00
Xu Cheng
b1fff32055 BottleLoader: check version mismatch
Closes Homebrew/homebrew#42049.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-07-24 15:59:28 +08:00
polamjag
1b78fe240e exceptions: don't bracket url
Closes Homebrew/homebrew#41592.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-07-22 05:07:35 +01:00
Xu Cheng
842c0227bc TapFormulaUnavailableError: add back user and repo method
Fixes Homebrew/homebrew#41888.
2015-07-19 16:42:40 +08:00
Xu Cheng
140f8e3df7 improve TapLoader and TapFormulaUnavailableError
* Restore the ability to load formula by `user/homebrew-repo/foo`.
* Only suggest to install tap when tap isn't installed.

Closes Homebrew/homebrew#41705.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-07-19 12:10:33 +08:00
Jack Nagel
72cb403a56 Move 10.11 warning to doctor, pre-install, and post-failure
Fixes Homebrew/homebrew#40778.
2015-06-16 20:02:10 -04:00
Xu Cheng
b88cb13718 add TapUnavailableError 2015-06-14 21:28:36 +08:00