44 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
Markus Reiter
480e264d9a
Lint Ruby docs. 2024-05-01 11:35:21 +02:00
Markus Reiter
0f0055ede4
Make documentation @api private by default. 2024-04-26 19:04:20 +02:00
Douglas Eichelberger
eb7c3e52a0 Require SystemInclude only where needed 2024-01-31 11:42:01 -08:00
Issy Long
f682147598
Fix RuboCop Style/RedundantFreeze offenses 2024-01-18 22:20:01 +00:00
Markus Reiter
8274920217
Rename OS::Mac::Version to MacOSVersion. 2023-05-09 05:08:38 +02:00
Douglas Eichelberger
24cf6076e8 brew style --fix 2023-04-24 20:42:39 -07:00
Issy Long
3e7a46f474
rubocop: Drop "v" from Naming/MethodParameterName allowlist
- This was an easy fix, "v" => "version".
2023-03-08 14:40:55 +00:00
Bo Anderson
fb358071ce
os/mac/sdk: use unversioned SDK if matching version isn't found 2022-05-16 16:18:48 +01:00
fn ⌃ ⌥
61a7ffb999 development_tools: add type signatures 2021-09-29 15:12:53 -07:00
Bo Anderson
dae1d89780
os/mac/sdk: use MacOSX11.sdk symlink 2021-08-11 14:19:22 +01:00
Bo Anderson
450bc4ab33
Fix brew style 2021-03-26 14:11:03 +00:00
Bo Anderson
8c81a2822c os/mac/sdk: read version from SDKSettings 2021-02-10 12:22:47 +00:00
carlocab
a51b105b1d
os/mac/sdk: refactor out sdk_version 2020-12-29 10:50:09 +00:00
carlocab
c77c942291
os/mac/sdk: parse version from SDKSettings.json
This implements feedback from https://github.com/Homebrew/brew/pull/10072.
2020-12-23 15:17:45 +00:00
carlocab
3f0ed01a2a
sdk: use unversioned SDK path on Big Sur
Fixes https://github.com/Homebrew/homebrew-core/issues/67075.

This implements @fxcoudert's suggestion in the issue linked above.
2020-12-21 11:45:45 +00:00
Mike McQuaid
a70d891122
os/mac/sdk: refactor for readability. 2020-11-30 16:00:31 +00:00
Misty De Meo
fec6fc4b4f
SDK: allow SDK mismatches if major version matches 2020-11-30 16:00:31 +00:00
Mike McQuaid
016893c132
os/mac/sdk: use OS::Mac.sdk_version.
This should allow the correct SDK to be found.

Fixes https://github.com/Homebrew/brew/issues/9324
2020-11-27 20:18:56 +00:00
Markus Reiter
da9289eff0 Add more type signatures. 2020-11-13 12:26:36 +01:00
Jonathan Chang
ab7b757400 rubocop: fix Style/NegatedIfElseCondition 2020-11-10 23:28:31 +11:00
EricFromCanada
3768b7a6e9 apidoc: update comment wording, punctuation, formatting 2020-11-06 00:21:02 -05:00
Markus Reiter
bf7fe45e89
Merge pull request #8896 from reitermarkus/sorbet-inline
Inline type annotations.
2020-10-13 10:40:53 +02:00
Markus Reiter
6ea9b32f70 Fix version comparison in SDK#latest_sdk. 2020-10-12 04:35:53 +02:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Markus Reiter
90d70ad932 Refactor OS::Mac::Version. 2020-10-05 15:58:17 +02:00
Markus Reiter
3efaf89787 Document SDK. 2020-08-26 03:13:59 +02:00
Bo Anderson
9297b18aa6 Add SDK availability diagnostic 2020-07-01 16:07:14 +01:00
Bo Anderson
bb33a59c7b os/mac/sdk: add SDK source attribute 2020-04-07 16:43:32 +01:00
Bo Anderson
20d9f436ca os/mac/sdk: prioritise SDK matching OS version 2020-03-08 20:08:33 +00: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
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +02:00
Misty De Meo
b66f2b207e
SDK: minor readability tweaks 2018-08-08 10:45:48 -07:00
Misty De Meo
5765dac86c
Xcode: allow requesting Xcode/CLT SDKs specifically 2018-08-08 10:45:48 -07:00
Misty De Meo
4f8a751579
SDK: allow finding CLT SDK path where present 2018-08-08 10:45:48 -07:00
Misty De Meo
8450ffa8ad
OS::Mac: look up CLT SDK on 10.14+ 2018-08-08 10:45:45 -07:00
Mike McQuaid
f421374af1 os/mac/sdk: fix Rubocop warnings. 2016-09-11 17:49:27 +01:00
Xu Cheng
de1049f1f1
various: proper escape dot in regex 2016-07-13 19:11:46 +08:00
Mike McQuaid
504152038c os/mac/sdk: fix bad locate reference.
Closes #216.
2016-05-08 17:23:47 +01:00
Tim D. Smith
fe37cc5271 Revert "Avoid constructing paths by string interpolation"
This reverts commit 8c7f3d859e8f715b6c63e4fe75e7a636aee4167f.
2016-03-19 19:14:50 +08:00
Tim D. Smith
87781f2a37 Avoid constructing paths by string interpolation
Closes Homebrew/homebrew#50154.
2016-03-19 19:14:50 +08:00
Misty De Meo
3a1d7e7259 MacOS: refactor sdk_path lookup
* Pull SDK lookup code into a new `locator` class, which caches its
  results
* SDKLocator only queries one SDK location, not all SDK locations
* Build a map of all installed SDKs inside that location, instead of
  just the requested SDK
* Ask xcrun for --show-sdk-platform-path first so that all SDKs can be
  found, instead of asking xcodebuild for a specific SDK
* Add a new `SDK` class, which tracks the version and the prefix; add a
  new `MacOS.sdk` method which returns an `SDK` instance instead of a
  bare path; MacOS.sdk_path still returns a bare path
2015-12-07 13:17:43 -08:00