3122 Commits

Author SHA1 Message Date
Mike McQuaid
0c85113053 Homebrew (opt-in) Analytics tweaks. (#57)
- add `HOMEBREW_PRODUCT` global variable
- only differentiate between `/usr/local` and `non-/usr/local` Homebrew
  prefixes to avoid sharing sensitive user information
- note if e.g. build errors are occurring under CI
- Add `HOMEBREW_NO_ANALYTICS` variable (this will be how people opt-out
  when this is enabled for everyone)
- Add `HOMEBREW_ANALYTICS_DEBUG` variable to output all the analytics
  that are sent
- Move Bash analytics code to `Library/Homebrew/utils/analytics.sh`
- Add documentation for our analytics and why/what/when/how and opt-out
- Only official Homebrew commands are reported
- Ruby analytics are now reported in a forked, background process
2016-04-12 11:02:22 +01:00
Xu Cheng
c1427fd295 help: support highlighted output
Closes #68.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-12 17:57:18 +08:00
Xu Cheng
af1eb007e2 help: handle alias
Before this fix
```
$ brew --help ls
Error: Unknown command: ls
```

After this fix
```
$ brew --help ls
brew list, ls
<snip>
```
2016-04-12 14:29:49 +08:00
Mike McQuaid
4a7cd160c3 Auto-update when running brew install/upgrade.
Also, slightly tweak the behavior of `brew update` in this case so that
it doesn't print annoying output and still allows the `brew edit` flow
for people with `HOMEBREW_DEVELOPER` set.
2016-04-11 09:31:50 +01:00
Max Nordlund
10edfcd218 Fix documentation error
Closes #10.

Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
2016-04-10 22:59:25 +02:00
Max Nordlund
fa1fd70a37 Add all the top level comments 2016-04-10 22:59:25 +02:00
Max Nordlund
b21f699ff2 Implement the brew help command
This is also used by `brew <cmd> --help`. The basic idea is to have the
documentation as a top level comment in each command file. To find these
comments, they have to be like this `#:`.

This is also used by the `brew man` command to keep the documentation
DRY, and for that there are now a header and footer for the man page.
2016-04-10 22:59:24 +02:00
Martin Afanasjew
e747648c53 always prefer HOMEBREW_CURL over plain 'curl' 2016-04-07 08:25:41 +02:00
Andrew Janke
1f8b6cb576 test-bot: add safety margin to output truncation size 2016-04-06 16:48:07 -04:00
Dominyk Tiller
bbb1fcd17c test-bot: stop using --recursive for brew uses
We're not sure this is working as it was intended to, and the primary
end product so far has been making every Ruby 1.8.7 build, which is the Ruby
we use on Mavericks for compatibility, take 5-15 minutes longer per build
than 2.x Rubies.

Cumulatively this is responsible for the vast majority of CI slowness over the
last couple months as Mavericks plays catch-up and everything else waits for it
to do so.

We may revisit this in future, but for now the harm is greater than the "risk".

This technically reverts 7b26c585c2.
2016-04-06 17:57:05 +01:00
Martin Afanasjew
ea38a70395 prune: handle broken app symlinks
Remove broken symlinks from `/Applications` and `~/Applications` that
were previously created by `brew linkapps`, but are no longer valid
because formulae were uninstalled or the provided apps have changed.
2016-04-06 10:31:54 +02:00
Martin Afanasjew
b50e950f0e unlinkapps: add --dry-run option
Add `--dry-run` option as is customary for destructive commands. Update
`bash` completion and man page accordingly. Also correct and update
documentation for both `brew linkapps` and `brew unlinkapps` in more
general terms.
2016-04-06 10:31:54 +02:00
Martin Afanasjew
dcf406f1e4 unlinkapps: modernize
Simplify code by using `Pathname` methods as much as possible. Also
avoid calling external commands for basic functionality like unlinking,
reduce code duplication by using a method from `cmd/linkapps.rb`, count
unlinked symlinks with `ObserverPathnameExtension`, and adjust output
for consistency with `brew linkapps`.
2016-04-06 10:31:54 +02:00
Martin Afanasjew
f63180927c linkapps: modernize
Simplify code by using `Pathname` methods as much as possible. Also
avoid calling external commands for basic functionality like symlink
creation, refactor code that can be shared with `brew unlinkapps`, and
print a summary line at the end (if symlinks were created).
2016-04-06 10:31:54 +02:00
Martin Afanasjew
37b817ed39 test-bot: fix access to relocated method
Fix bug introduced in a2c23dfec569c6e73d90cb20c7d4c26cced258d5. Moving
this method apparently made it inaccessible from `Homebrew::Step`.
2016-04-06 06:35:28 +02:00
Martin Afanasjew
a2c23dfec5 test-bot: fix undefined method error
The method `fix_encoding!` is private to `Homebrew::Step` but is also
required by the `Homebrew.sanitize_output_for_xml` method for truncating
overly long logs. Move `fix_encoding!` into the `Homebrew` module to
make it accessible from both this method and the `Homebrew::Step` class.

This amends commit 343091c828d1e572829b86253d79b326c1986bcd.
2016-04-06 06:22:22 +02:00
Dominyk Tiller
a9c0361a1d audit: require plist_options when using plist
Closes #19.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2016-04-05 23:57:53 +01:00
Dominyk Tiller
149334d88d audit: check plist placement 2016-04-05 23:57:53 +01:00
Andrew Janke
343091c828 Merge pull request #27 from apjanke/test-bot-xml-filter
test-bot: revise Step output transcoding and XML character filtering
2016-04-05 17:23:24 -04: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
Dominyk Tiller
20c2cbd98a Revert "test-bot: revise Step output transcoding and XML character filtering"
This reverts commit ceed6636d6986bb2b993ba4680ae484deb76ae29.

```
==> git clean -ffdx
HEAD is now at ceed663 test-bot: revise Step output transcoding and XML character filtering
Removing Library/Homebrew/test/.bundle/
Removing Library/Homebrew/test/fs_leak_log
Removing Library/Homebrew/test/vendor/
Error: invalid regular expression: /[^

 -uD7FFuE000-uFFFDu{10000}-u{10FFFF}]/
```
Using Ruby 1.8.
2016-04-05 05:03:20 +01:00
Andrew Janke
ceed6636d6 test-bot: revise Step output transcoding and XML character filtering
Closes #24.

Signed-off-by: Andrew Janke <andrew@apjanke.net>
2016-04-04 22:18:17 -04:00
Misty De Meo
f8cdab7d8a Make new keep? superenv logic opt-in
Closes #50425.

Signed-off-by: Misty De Meo <mistydemeo@github.com>
2016-04-04 15:30:22 -07:00
Mike McQuaid
77611bafb1 Make Homebrew user agent consistent, use a slash.
Generally it seems user agents are all `software/version` but ours is
not. Also, set the user agent in a way that it's shared between Bash
and Ruby code.

Closes https://github.com/Homebrew/legacy-homebrew/pull/50480.
2016-04-04 12:18:21 +01:00
Xu Cheng
d0b713c396 Revert "lsyncd: use MACOS_FULL_VERSION"
This reverts commit 0f60f76f26ca9fe26e1c10c72905a878a58e3c96.
2016-04-03 23:19:38 +08:00
Xu Cheng
46c25d9833 test-bot: remove update-test 2016-04-03 21:39:59 +08:00
Xu Cheng
e158b5e4b1 pull: fix --legacy for legacy-homebrew repo 2016-04-03 21:22:39 +08:00
Mike McQuaid
276a797d37 Update documentation after repository split. 2016-04-03 14:03:33 +01:00
Xu Cheng
edf000e4cd Core/formula separation Part 2(b)
* move shell completion scripts to where can be auto picked up

Let's use switching new remote as opportunity to put shell completion
scripts to where they should be and avoid git conflict during the process.

* add Library/Formula and Library/Aliases symlinks

Formulae and Aliases has been relocated to homebrew/core tap.
The symlinks are pointed to new location to keep backward compatibility.

* remove formula_renames and tap_migrations

They have been replaced by the json files in the core tap.

* update: set new remote

* bump Homebrew version to 0.9.9
2016-04-03 18:34:17 +08:00
Andrew Janke
e70a3552d3 test-bot: exclude Taps dir from root cleanup 2016-04-03 14:31:12 +08:00
Andrew Janke
6283a274c8 test-bot: have --cleanup clean core repo as well as tested tap
Fixes Homebrew/homebrew#50651
2016-04-03 14:31:12 +08:00
Xu Cheng
232eccc428 test-bot: fix path in cleanup_before
We should remove PR lock files in the test tap rather than HOMEBREW_REPOSITORY.
2016-04-03 14:31:12 +08:00
Xu Cheng
df5bd0b796 pull: fix --legacy when pulling bottle from new repo 2016-04-03 12:15:47 +08:00
Martin Afanasjew
ade39af247 Revert "test-bot: clean up on Jenkins before building PR"
This reverts commit 51e4e6490bda0d981afd1787a6392ab588b0601c. This did
not work as intended, as the `git` command is executed in the context of
the tap the current job operates on, never for Homebrew/homebrew itself.
2016-04-03 12:15:47 +08:00
Martin Afanasjew
75961721ee test-bot: clean up on Jenkins before building PR
Wipe everything from the Homebrew prefix except for the `Library/Taps`
directory to avoid having to refetch `homebrew/core` every time.
2016-04-03 12:15:47 +08:00
Xu Cheng
bdd26d0446 test-bot: ensure tap is full clone 2016-04-03 00:34:09 +08:00
Xu Cheng
4366ea1889 test-bot: fix CI upload for core tap 2016-04-03 00:10:41 +08:00
Xu Cheng
c8fed576cb pull: auto fix legacy closes message 2016-04-03 00:10:41 +08:00
Xu Cheng
591ef25442 pull: fallback to old BrewTestBot git repo when necessary 2016-04-03 00:01:38 +08:00
Xu Cheng
deed8e566c test-bot: handle legacy formulae PR from Homebrew/homebrew
Closes Homebrew/homebrew#50635.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-03 00:01:38 +08:00
Xu Cheng
fa9a9ff5be tap-(un)pin/untap: better error message
Closes Homebrew/homebrew#49904.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-04-02 21:51:36 +08:00
Xu Cheng
360cd3cb56 pull: add --legacy flag
It will pull legacy formula PR from Homebrew/homebrew
TODO: remove it when it's not longer necessary
2016-04-02 21:51:36 +08:00
Xu Cheng
5560f5550d git: check homebrew/core existence before installing brewed git 2016-04-02 21:51:36 +08:00
Xu Cheng
2bb30fc5f0 --version/config: show core tap information 2016-04-02 21:51:36 +08:00
Xu Cheng
5bb8e8985d audit/test-bot/pull: fix for core/formula separation
All formulae are in taps now.
2016-04-02 21:51:36 +08:00
Xu Cheng
13141de0fd update-report: update for core/formula separation
Update the report logic, since now all formulae are in the taps.
2016-04-02 21:51:36 +08:00
Xu Cheng
56cb3325a6 remove migrate_taps
We don't need to migrate the tapped formulae from symlink-based to
directory-based structure any more.

Instead, we add core tap install check for `brew update-report` which
will be invoked by `brew update`.
2016-04-02 21:51:36 +08:00
Xu Cheng
a5cfc011e0 various: Homebrew/core is the core tap
Also make `Homebrew/homebrew` as an alias of this tap to keep
backward compatibility.
2016-04-02 21:51:36 +08:00
Mike McQuaid
6135da800e utils, gist-logs: improve/fix credential handling.
The API used (`Net::HTTP::Post`) does not handle basic authentication
credentials in the same way as `open` so fix both cases so they work.

Also, do some general usability tweaks to point out to people what could
be wrong with their tokens or credentials to help them debug.

Closes Homebrew/homebrew#50410.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2016-03-28 18:22:47 +08:00
Xu Cheng
b8a4677de0 --repository: support to show tap path
This can become handy when we separate core code and formulae. For
example, we could use `cd $(brew --repo homebrew/core)` to go to core
tap path.

Closes Homebrew/homebrew#50346.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-03-24 14:52:13 +08:00