27 Commits

Author SHA1 Message Date
Douglas Eichelberger
ed4129b580 Remove removable constants 2024-10-07 19:45:48 -07:00
Douglas Eichelberger
8033fcf4a6 Fix brew style docs 2024-10-07 18:59:27 -07:00
Douglas Eichelberger
2d16333bbc Replace removable constants with overridable methods 2024-10-07 18:33:03 -07:00
Douglas Eichelberger
f4a6dce64a Fix ENV 2024-10-05 12:18:29 -07:00
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
28a80a6ebf
Avoid writable_real? 2024-03-27 06:26:32 +00:00
Douglas Eichelberger
eb7c3e52a0 Require SystemInclude only where needed 2024-01-31 11:42:01 -08:00
Michael Cho
7412487891
extend/os/mac/keg: codesign on Intel if invalid signature 2023-08-23 11:48:13 -07:00
Douglas Eichelberger
6397229f68 Enable types in extensions, etc. 2023-04-01 18:56:42 -07:00
Mike McQuaid
4a0e16fbd9
dev-cmd/bottle: use gnu-tar's --mtime.
This allows us to remove all the manual timestamp fiddling and lets
`gnu-tar` handle it for us instead (as-per the most recent
recommendations on https://reproducible-builds.org/docs/archives/).
2022-12-12 16:47:56 +00:00
Caleb Xu
5a4840dbc8
extend/os/mac: ensure writable file for codesign 2022-10-13 17:56:53 -04:00
Lukas Oberhuber
4eea117e84 ofail if debug-symbols cannot be extracted. 2022-07-30 11:41:05 +01:00
Lukas Oberhuber
e46a61e181 rename & inline dsymutil to prepare_debug_symbols 2022-07-30 11:08:52 +01:00
Lukas Oberhuber
d195f22522 Connecting up --debug-symbols flag
This connects the calling of dsymutil and the retention of temporary
files. Still need to connect compilation to flag.
2022-07-26 12:15:53 +01:00
Lukas Oberhuber
2d4c792b0b Make one function 2022-07-26 10:00:05 +01:00
Lukas Oberhuber
e1ea9da507 Conceptual draft of dsym support for macos 2022-07-26 00:00:45 +01:00
danielnachun
4c19d67176
extend/os/mac/keg.rb: move codesign_patched_binary here 2022-04-08 18:09:25 -07:00
Carlo Cabrera
c59a42b24e
formula_cellar_checks: check for cpuid instruction when needed
This implements the second audit discussed in #11608.
2021-07-04 00:31:31 +01:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Steven Peters
34bf7c9bf5 os/mac/keg: Frameworks -> MUST_BE_WRITABLE_DIRS
Also add it to MUST_EXIST_SUBDIRECTORIES.
2019-10-23 00:36:23 -07:00
Steven Peters
c2cb6cfa79
os/mac/keg.rb: uniq.sort -> sort.uniq
Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
2019-10-21 12:26:01 -07:00
Steven Peters
8d30912e16 os/mac/keg: Frameworks -> MUST_EXIST_DIRECTORIES 2019-10-19 17:56:36 -07:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
Mike McQuaid
d1ea6f38d3
Fix mutable constants violations. 2019-04-19 21:46:20 +09:00
Shaun Jackman
4cbcf3ef2a Keg::MUST_EXIST_DIRECTORIES: Frameworks is for macOS 2018-10-23 21:51:29 -07:00