26 Commits

Author SHA1 Message Date
Douglas Eichelberger
eed660e784 Move remaining OS extensions to prepend 2024-10-05 12:18:29 -07:00
Issy Long
45978435e7
rubocop: Use Sorbet/StrictSigil as it's better than comments
- Previously I thought that comments were fine to discourage people from
  wasting their time trying to bump things that used `undef` that Sorbet
  didn't support. But RuboCop is better at this since it'll complain if
  the comments are unnecessary.

- Suggested in https://github.com/Homebrew/brew/pull/18018#issuecomment-2283369501.

- I've gone for a mixture of `rubocop:disable` for the files that can't
  be `typed: strict` (use of undef, required before everything else, etc)
  and `rubocop:todo` for everything else that should be tried to make
  strictly typed. There's no functional difference between the two as
  `rubocop:todo` is `rubocop:disable` with a different name.

- And I entirely disabled the cop for the docs/ directory since
  `typed: strict` isn't going to gain us anything for some Markdown
  linting config files.

- This means that now it's easier to track what needs to be done rather
  than relying on checklists of files in our big Sorbet issue:

```shell
$ git grep 'typed: true # rubocop:todo Sorbet/StrictSigil' | wc -l
    268
```

- And this is confirmed working for new files:

```shell
$ git status
On branch use-rubocop-for-sorbet-strict-sigils
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Library/Homebrew/bad.rb
        Library/Homebrew/good.rb

nothing added to commit but untracked files present (use "git add" to track)

$ brew style
Offenses:

bad.rb:1:1: C: Sorbet/StrictSigil: Sorbet sigil should be at least strict got true.
^^^^^^^^^^^^^

1340 files inspected, 1 offense detected
```
2024-08-12 15:24:27 +01:00
Issy Long
0e81efcccb
sorbet: Comment more files that can't be strict because of undef
- Found with
  `grep -rL "# typed: strict" Library/Homebrew | xargs grep -l "undef "`.
- This stops people from trying to bump them and
  getting an error that they can't fix because
  [it's a Sorbet limitation](https://sorbet.org/docs/error-reference#3008),
  wasting contributor time.
2024-08-09 18:23:00 +01:00
Bo Anderson
71d51faa55
Introduce tag for implicit dependencies 2023-07-04 13:40:58 +01:00
EricFromCanada
d0de6ac249
svn: always install brewed version on macOS if required
Stock SVN on macOS 10.14 and earlier now throws errors with some certificate providers.
2021-11-09 13:56:40 -05:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Dawid Dziurla
dbbc14040d
extend/os/mac: install svn on catalina and newer 2020-08-18 12:50:34 +02:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
Mike McQuaid
1aa8ad09e2
Deprecate macOS versions below Mavericks
And remove all dead/unneeded code.
2019-01-27 12:27:47 +00:00
Mike McQuaid
170c5493a4
Update deprecations
- Add some `odeprecated`
- Make some `odeprecated` now `odisabled`
- Remove `odisabled` code.
- Remove old update migrations
- Remove GCC 4.0 compiler
- Remove Tiger-only code
- Remove 32-bit-only code
- Remove use of LD64
- Remove GCC 4.3 - 4.8 support.
2019-01-08 19:13:46 +00:00
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +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
Maxim Belkin
d25fc5ce50 Code refactoring 2018-02-19 09:54:36 +00:00
Maxim Belkin
1b74f21492
Removing unnecessary arguments 2018-02-16 15:08:55 -06:00
Maxim Belkin
5a92976120
Fixing brew-style offenses 2018-02-16 10:49:43 -06:00
Maxim Belkin
444b292df9
zip and bzip2 dependencies when needed
On some systems identified as Linux, zip and bzip2 might
not be available. Therefore, on such platforms we add them
unconditionally as dependencies when required. On Mac, these
dependencies are always satisfied.
2018-02-16 10:41:14 -06:00
Mike McQuaid
27be33b245 Deprecate Git, Subversion requirements.
These rely on `default_formula` to be useful and are better following
the `*_dep_if_needed` pattern.
2018-01-10 13:19:50 +00:00
Shaun Jackman
5d9149a4b9 LD64Dependency is needed on macOS only
Move ld64_dependency.rb to os/mac/.
2018-01-03 10:52:12 -08:00
Mike McQuaid
d54e670a64 requirements: move more to compat. 2017-12-30 20:56:55 +00:00
Mike McQuaid
38ce994007 Deprecate more requirements.
These are ones that were either already deprecated due to audit rules
or are just a simple `which` with a `default_formula` so should just
be a dependency.
2017-12-23 16:53:25 +00:00
Mike McQuaid
5b178c2892 dependency_collector: cleanup optional system deps 2017-12-23 16:36:33 +00:00
ilovezfs
a53eca8cde dependency_collector: need xz dep on <= macOS 10.8
Mountain Lion: http://opensource.apple.com/source/libarchive/libarchive-25.1/config.h
  `/* #undef HAVE_LIBLZMA */`

Mavericks: http://opensource.apple.com/source/libarchive/libarchive-29/config.h
  `#define HAVE_LIBLZMA 1`
2016-10-16 05:48:37 -07:00
Mike McQuaid
b1a16deb19 Use BSD tar's libarchive LZMA support if available
Avoid using an unnecessary `xz` dependency when it's not needed.
2016-10-15 13:10:37 +01:00
Bob W. Hogg
57c2c560a1 one less block in mac dep 2016-09-22 08:36:10 -04:00
Bob W. Hogg
769cab7e4f follow the pattern more closely 2016-09-22 08:31:50 -04:00
Bob W. Hogg
5c926b1db3 make names more generic 2016-09-22 08:31:50 -04:00