472 Commits

Author SHA1 Message Date
Mike McQuaid
86f43f79ee
Enable/fix optional Ruby frozen string literal usage
Combined with https://github.com/Homebrew/homebrew-test-bot/pull/247
this will test Homebrew's use of frozen strings in CI. After this we
will then enable it for Homebrew developers and eventually all Homebrew
users.
2019-04-19 10:30:41 +09:00
Markus Reiter
75aa369102 Fix support for HOMEBREW_EDITOR with args. 2019-04-03 23:49:37 +02:00
Mike McQuaid
70b93f65ea
*cmd/*: use *system instead of exec for easier testing.
This improves both test coverage, makes it easier to use a profiler and
a debugger.
2019-03-27 21:15:24 +00:00
Zach Auten
dd4daa247f Merge branch 'master' of https://github.com/Homebrew/brew into brew-info-display-casks 2019-03-06 17:56:22 -05:00
Mike McQuaid
4f76d12874
utils/gems: extract from utils.
Also, don’t use any non-standard Ruby functionality to avoid needing any `requires.
2019-02-21 12:56:22 +00:00
Mike McQuaid
d64429a736
rubocop: enable Style/IfUnlessModifier. 2019-02-21 12:55:49 +00:00
Zach Auten
554106d2e0 Updated missing formula cask reason
- search_for_cask in missing_formula renamed to is_a_cask_reason
    - is_a_cask calls new getInfo method in cask/cmd/info.rb to return info
      string
    - self.info in info.rb now calls getInfo and puts return value
    - added ohai_title to return the ohai printout for only titles, so that
      ohai printout could be added to the getInfo return string without
      calling puts.
    - refactored ohai to use ohai_title
    - updated info_spec.rb cask info test to be more specific when
      matching stderr.
    - is_a_cask_reason will respect 'silent'
    - refactored print_caveats to return instead of print
2019-02-18 03:33:57 -05:00
Mike Miller
6819cbf967 Set DISPLAY from HOMEBREW_DISPLAY unconditionally
No need to test for existence, ruby ENV does the right thing.
2019-02-12 11:42:17 -08:00
Mike Miller
ae1e4e7022 Set DISPLAY environment variable for browser on Linux
Fixes #5692
2019-02-10 23:30:54 -08:00
Mike McQuaid
8bfde013f6
utils: fix SVN remote test on Mojave.
For some reason Mojave needs the SSL args always set otherwise this
will always fail waiting for interactivity.

Also, while debugging this I noticed that `utils.rb` had a failure
expecting an integer so fix that too.
2019-01-22 14:20:24 +00:00
Mike McQuaid
a75f979eec
utils: re-add install_gem! version argument.
This is needed for `compat/download_strategy` for now.
2019-01-17 09:29:21 +00:00
Mike McQuaid
a7d72351cf
utils: don't look for bundler executable.
This exists sometimes and not others it seems.
2019-01-08 20:33:39 +00:00
Mike McQuaid
92cb62dace
utils: fix bad parameters. 2019-01-08 16:29:27 +00:00
Mike McQuaid
bf6cd48994
Merge branch 'master' into fix-deprecated-gem-options 2019-01-08 16:24:24 +00:00
Claudia
0b1ec2a414
Fix deprecated Rubygems options
In February 2013, Rubygems 2.0.0 deprecated [1] the `--[no-]ri` and `--[no-]rdoc` options, replacing them with the new `--[no-]document` option.

Almost five years later, Rubygems finally dropped support [2] for the long-deprecated `--[no-]ri` and `--[no-]rdoc` options.

This removal causes `bundle install` to **fail for fresh Homebrew checkouts** if Rubygems 3.0.x or newer is installed, which will happen if the user runs `gem update --system` on Ruby 2.3.0 or later. [3]

This also affects the system Ruby built into macOS 10.13 and 10.14.

Steps to reproduce:

```
$ sudo /usr/bin/gem update -N --system
[…]
Installing RubyGems 3.0.2
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
$ gem --version 2>/dev/null
3.0.2
$ cd "$(mktemp -d)"
$ git clone --depth=1 https://github.com/Homebrew/brew.git
[…]
$ cd brew
$ export HOMEBREW_PATH=bin  # in case shellcheck is not installed
$ bin/brew style Library/Homebrew/extend/ENV/std.rb
==> Installing or updating 'rubocop' gem
Error: invalid option: --no-ri
```

(Note: The above steps will not touch an existing Homebrew installation, and won’t even require Homebrew to be installed.)

This commit replaces the deprecated options with the new `--no-document` option, which has been around since Rubygems 2.0.0. It is therefore safe for use on all supported platforms.

[1]: https://blog.rubygems.org/2013/02/24/2.0.0-released.html
[2]: https://github.com/rubygems/rubygems/pull/2354
[3]: https://rubygems.org/gems/rubygems-update/versions
2019-01-08 17:04:30 +01:00
Mike McQuaid
efc3c0c4c0
Use bundle install in more places.
This provides a more consistent version for `rubocop` than relying on
`Homebrew.install_gem_setup_path!` (and we really want `brew style` to
provide consistent output).
2019-01-08 15:08:21 +00:00
William Woodruff
b7d84f2d9e
build: Propagate entire ErrorDuringExecution
Fixes https://github.com/Homebrew/brew/issues/5427.
2018-12-23 11:26:12 -05:00
EricFromCanada
20167e5f1b Adjust comments to tidy API docs output. 2018-10-18 21:42:43 -04:00
Markus Reiter
16618d0fc7 Use ActiveSupport’s #pluralize and #to_sentence. 2018-10-07 23:10:56 +02:00
Markus Reiter
7a991985a4 Run tests with HOMEBREW_DEVELOPER unset. 2018-09-19 19:43:45 +02:00
Mike McQuaid
4d1de3334c
Merge pull request #4912 from MikeMcQuaid/activesupport-hash-deep-merge
Use ActiveSupport Hash#deep_merge
2018-09-18 09:19:24 +01:00
Mike McQuaid
0c6331878f
Use ActiveSupport Hash#deep_merge
And delete our own implementation.
2018-09-17 14:53:01 +01:00
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +02:00
Mike McQuaid
80d75bc0d8
Homebrew/.rubocop: tweak rules.
Adjust the rules based on the current codebase. Remove various enable,
disables and default values that are unnecessary. Add more comments
explaining why. Make minor changes needed to enable a few more rules.
2018-09-02 20:15:09 +01:00
Markus Reiter
516a39f5a4 Move migrations into UpdateMigrator module. 2018-08-31 16:51:23 +02:00
Markus Reiter
e6b45842e8 Refactor odeprecated. 2018-08-15 12:16:02 +02:00
Markus Reiter
ad7be58655 Use guard clause instead of ||. 2018-07-19 16:53:11 +02:00
Markus Reiter
01b2be755c Move odebug. 2018-07-19 16:41:27 +02:00
Markus Reiter
2452b27866 Refactor ErrorDuringExecution. 2018-07-19 16:41:27 +02:00
Markus Reiter
8c620d8b97 Redirect brew cask search to brew search. 2018-06-18 16:23:35 +02:00
Markus Reiter
42db173851 Get rid of unnecessary cds. 2018-05-21 20:44:25 +02:00
Mike McQuaid
9fca172d03 Fix HOMEBREW_RUBY_WARNINGS="-w"
Fix various circular requirements, method redefinitions, etc.
2018-04-07 20:28:56 +01:00
Alexander Mancevice
57e1e16fc4 Added Homebrew.install_gem!
Useful when gem does not install with executable
2018-03-22 10:13:34 -04:00
Markus Reiter
2876aad217 Fix MethodDeprecatedError output. 2018-03-21 05:42:23 +01:00
Mike McQuaid
b23f66982f Improve external command documentation
Extract `brew bundle` and `brew services` docs from their help. Add a
little for `brew cask` until we can think about e.g. merging the
manpages.
2018-03-15 16:25:14 +00:00
Mike McQuaid
5e161252c9 utils: check for tap_message in odeprecated.
`tap` is not a method-wide variable.

Fixes #3907
2018-03-11 16:55:06 +00:00
Mike McQuaid
8860402f8f
utils: only try and replace tap or replaced methods. 2018-03-08 08:22:47 +00:00
Dominyk Tiller
8668b7108a
utils: stop suggesting fixing hard deprecations tweak 2018-03-02 07:10:31 +00:00
Dominyk Tiller
e960ccdf18
utils: stop suggesting fixing hard deprecations 2018-03-02 06:42:24 +00:00
Mike McQuaid
99dda758c4 utils: only look for gems in GEM_HOME.
This avoids issues where a gem is installed but cannot be found.

Fixes #3355.
Fixes #3760.
2018-02-09 21:09:18 +00:00
Mike McQuaid
0a12328500 utils: no .metadata deprecations.
Otherwise running on old casks can produce deprecations.

Fixes #3738.
2018-02-05 09:14:54 +00:00
Mike McQuaid
4abae7f7e9 Always install Gems into bundler location. 2018-01-26 22:05:43 +00:00
Mike McQuaid
459b113e28 utils: reduce odeprecated warnings.
Fix the code so we don't actually output `odeprecated` warnings for
`HOMEBREW_CACHE`d or `.brew`d formulae.
2018-01-24 09:02:00 +00:00
Mike McQuaid
5e5989b704 utils: no deprecations for cached formulae.
`HOMEBREW_CACHE`d and `.brew`ed formulae cannot be updated so don't
complain about their deprecation.
2018-01-21 13:34:36 +00:00
Mike McQuaid
17c24d040b utils: tell developers to submit odeprecated PRs.
Rather than just telling them to submit an issue as it's likely that
as these folks will be able to submit a PR.
2018-01-17 10:50:48 +00:00
Dominyk Tiller
6fe261bc5c
utils: stop debug exploding when zsh is used 2017-12-24 20:59:34 +00:00
Shaun Jackman
ce85e3b3b5 Remove with_system_path
The method with_system_path is no longer needed,
since environment filtering uses a default PATH.
2017-12-12 09:27:06 -08:00
Shaun Jackman
a4033c7196 Do not specify absolute paths to utilities
Specifying an absolute path to utilities is no longer needed,
since environment filtering uses a default PATH.
2017-12-12 09:25:16 -08:00
Mike McQuaid
9ebf338804 diagnostic: fix paths usage.
- Don't allow taking an argument. This doesn't work and never has as it
  caches the result regardless of the argument.
- Don't rely on the PATH to check for external commands.
2017-11-17 17:41:58 +00:00
Mike McQuaid
b369593cbd utils: correctly handle empty user gem env. 2017-11-05 14:45:36 +00:00