- This way we can do the more intuitive:
```
$ brew contributions --repos=brew,core rslpolster@gmail.com
Person rslpolster@gmail.com directly authored 1580 commits and co-authored 125 commits to brew, core in all time.
```
- Before each AGM it's currently a manual process for a PLC member to
search commit logs and GitHub to figure out who contributed to
Homebrew, so who should remain a member.
- I noticed that [looking at commits for a
user](https://github.com/Homebrew/homebrew-core/commits?author=issyl0&since=2022-01-01&until=2023-01-01)
would not count `Co-Authored-By`, which happens a lot now there's an
autosquash action on PRs in `Homebrew/homebrew-core`, say if someone
fixed a formula's build or tests or whatever and then the PR got
auto-merged.
- Here's `brew contributions` that uses `git log` to be able to go back
through all time or a specific time period (`--from`, `--to`). It's up
to individual PLC discretion for "activity", but it does at least go
some way to automating the data retrieval.
- Example (I can use my username as `--email` because my username is in
all of the email addresses that I use for committing to Homebrew):
```
$ brew contributions --email=issyl0 --repos=brew,core
Person issyl0 directly authored 732 commits and co-authored 31 commits to brew, core in all time.
```
This complements my other two GCC-on-Linux PRs (#13631, #13633), however
they are both reliant on bottles eventually being (re-)poured.
Let's try to speed that up by returning an error message from `brew doctor`
whenever a user has formulae installed that would benefit from a `brew reinstall`.
- This is needed for https://github.com/Homebrew/brew/pull/13603 because `Homebrew/homebrew-versions` is deprecated (legitimately), but `OFFICIAL_CASK_TAPS` spits out `versions` as a repo, which could then be interpreted as `Homebrew/versions` rather than `Homebrew/cask-versions` which it actually is.
This is not necessary.
In addition,
1. Avoid an error when `formula.tap` is `nil`.
2. Use the more suggestive `gcc.dep.rpaths.migrated` as the setting
name.
When GCC 12 ships (Homebrew/homebrew-core#106755) ships, most (all?)
Linux bottles that depend on GCC will break.
Let's fix that by using the same trick for handling divergent formula
revisions when migrating formulae from linuxbrew-core (#11982). We set
the recorded `version_scheme` to -1, which spoofs the formula being
outdated. When `brew upgrade` installs GCC 12, the broken formulae will
have their bottles reinstalled too.
This works because the reinstallation will also rewrite the existing
RPATHs to point to the new version of GCC instead (#13631). This should
handle most of the breakage.
Error: tried to create Proc object without a block
Do not report this issue until you've run `brew update` and tried again.
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/pr-pull.rb:372:in `proc'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/pr-pull.rb:372:in `pr_check_conflicts'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/pr-pull.rb:439:in `block in pr_pull'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/pr-pull.rb:429:in `each'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/pr-pull.rb:429:in `pr_pull'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:93:in `<main>'
Error: Process completed with exit code 1.
https://github.com/Homebrew/homebrew-core/runs/7634004090?check_suite_focus=true#step:10:15
This should help keep bottles that require GCC working when
Homebrew/homebrew-core#106755 is merged.
This only works on freshly-poured bottles. Previously installed bottles
will still break on systems with a host GCC older than GCC 11.
This change will prevent us having to run some long running builds
multiple times and to rely on luck to get things merged without conflicts.
The check takes less than 30 secondes on my local setup.
There's no point in saving old ones because the debug symbols will only
for the newest bulid anyway.
Currently blows away what was there before, which isn't ideal for a dev
workflow. Maybe that should be changed, given a tar file should be a tar
file, so shouldn't change. But there are many different types of files.