98 Commits

Author SHA1 Message Date
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
caf87c0336
Warn about undocumented non-private APIs. 2024-05-01 11:35:20 +02:00
Markus Reiter
c76170a456
Hide #to_s in docs. 2024-04-26 14:04:55 +02:00
Douglas Eichelberger
24cf6076e8 brew style --fix 2023-04-24 20:42:39 -07:00
Mike McQuaid
1bb44979ee
Disable and delete code for 3.5.0
The next planned release will be 3.5.0 so let's fix things up for there.
2022-05-30 14:59:14 +01:00
Mike McQuaid
38e1b3d64b
Deprecations, disables, deletions for 3.4.0 2022-02-22 14:28:32 +00:00
Bo Anderson
00b588068f
formula: add keg_only_reason to formula hash 2021-12-11 23:30:06 +00:00
Mike McQuaid
f65d525693
Deprecations/disables for 3.3.0/4.0.0.
Deprecate, disable and remove code for Homebrew 3.3.0 or 4.0.0
(whichever the next release ends up being).
2021-10-19 16:36:42 +01:00
Mike McQuaid
a6e4e195c1
rubocops/lines: recommend on_os/OS.os? based on context.
Recommend the use of `on_macos` and `on_linux` unless we're in
`def install`, `def post_install` or `test do` in which case recommend
`OS.mac?` and `OS.linux?` instead.
2021-09-08 13:18:07 +01:00
Mike McQuaid
c37794e653
formula_support: deprecate bottle :unneeded/:disabled in 3.3.0
We'll no longer need this DSL so let's move towards deprecation.
2021-06-30 17:35:10 +01:00
Markus Reiter
da9289eff0 Add more type signatures. 2020-11-13 12:26:36 +01:00
EricFromCanada
3768b7a6e9 apidoc: update comment wording, punctuation, formatting 2020-11-06 00:21:02 -05:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Mike McQuaid
373650d00d
KegOnlyReason: add reason helpers, rename valid. 2020-04-12 13:12:02 +01:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
EricFromCanada
20167e5f1b Adjust comments to tidy API docs output. 2018-10-18 21:42:43 -04:00
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +02:00
Shaun Jackman
8a1fa28f9c KegOnlyReason: Reasons related to macOS valid only on macOS 2018-08-15 10:14:17 -07:00
Mike McQuaid
9580afb222 formula_support: deprecate more keg_only reasons.
It's unnecessary extra complexity to have versions that are keg-only on
some versions of macOS and not others.

Initially this was to only do so on old versions of OS X and Xcode but
the discussion in https://github.com/Homebrew/brew/pull/4081 meant that
it made more sense to remove them all.
2018-04-17 11:17:18 +01:00
Mike McQuaid
85edbd28b1 Remove Xcode.installed? guards.
It's safe since 600d58f4ca3d85894c66a38802965fd94d4ea469 when
MacOS::Xcode.version started returning `Version::NULL` where
appropriate.
2018-04-17 10:58:51 +01:00
Mike McQuaid
3bf5cc9d52 formula_support: remove duplicated odeprecated.
These are already present in compat.
2018-01-21 13:39:14 +00:00
Mike McQuaid
77f1768108 Disable and add more deprecations.
These have all been deprecated/compat for a while.
2018-01-18 09:47:33 +00:00
Markus Reiter
9bee9ca575 Use “squiggly” heredocs. 2017-10-18 14:39:09 +02:00
Dominyk Tiller
0a10ca61dc
formula_support: add provided_pre_high_sierra keg_only 2017-07-30 00:21:33 +01:00
Markus Reiter
3b4ee58c49 Refactor using Forwardable and DelegateClass. 2017-06-28 09:25:31 +02:00
Dominyk Tiller
25ffa301b8
formula_support: keg_only style harmonisation 2017-05-01 19:22:40 +01:00
Mike McQuaid
eadbd95d2c audit: check system dupe deps on new formulae.
Provide a gentle nudge to users to check if these dependencies are
definitely required.
2017-03-19 20:45:21 +02:00
Mike McQuaid
dac66c4ada Add keg_only :versioned_formula.
This is used to indicate a formula is a version of another formula.
This will be used to provide a consistent interface for older formulae
versions and replaces the use of `conflicts_with`.
2017-01-17 10:50:04 +00:00
Mike McQuaid
3f9cce0a03 Use new "macOS" naming where appropriate.
Not quite a mass replacement as I've used OS X and Mac OS X where
describing specific older versions and added compatibility methods
for things in the DSL.
2016-09-18 19:57:19 +01:00
Mike McQuaid
6693915399 rubocop --auto-correct all remaining files.
But remove some manual `.freeze`s on constants that shouldn't be
constants.
2016-09-17 16:14:13 +01:00
Martin Afanasjew
25baaa61ac formula_support: don't fail without CLT/Xcode
`Formula#keg_only?` could fail if it was invoked on a formula with a
`:provided_until_xcode43` or `:provided_until_xcode5` reason given to
`keg_only`, if neither the Command Line Tools nor Xcode was installed.
Check whether Xcode is installed before querying the Xcode version.

Closes #317.
2016-06-05 12:49:38 +02:00
Baptiste Fontaine
be1ac34117 BottleDisableReason: enforce the use of :disable
Closes Homebrew/homebrew#45337.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-10-26 21:22:00 +01:00
Baptiste Fontaine
774a508d1a audit: warn about unknown bottle modifiers
This prevents typos like `bottle :uneeded` or `bottle :disable`

Closes Homebrew/homebrew#45264.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-10-23 19:44:19 +08:00
Xu Cheng
b5032ad2cb Formula: add bottle disable DSL 2015-10-19 21:41:36 +08:00
Dominyk Tiller
48ba192a3b formula_support: add Pre El Capitan keg_only 2015-09-08 15:28:22 +01:00
Dominyk Tiller
4f549da115 formula_support: add provided_pre_mavericks
Closes Homebrew/homebrew#42460.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-08-04 21:26:36 +01:00
Baptiste Fontaine
ea08e4fb16 KegOnlyReason: print only the explanation if there’s one
Closes Homebrew/homebrew#42073.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-07-28 20:40:28 +02:00
Jack Nagel
f4027cc9ac "Mac OS X" -> "OS X" in copy 2015-06-16 20:02:10 -04:00
Jack Nagel
ddeac0284b Don't use undent on keg-only reasons
It will cut off the beginning of any interpolated lines.

Fixes Homebrew/homebrew#32259.
2014-09-12 20:54:41 -05:00
Shaun Jackman
8e3e0be6d1 gettext, readline: Add keg_only :shadowed_by_osx
Closes Homebrew/homebrew#31951.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-08-28 17:01:38 -05:00
Jack Nagel
af804f7475 Remove another unnecessary default argument 2014-08-08 01:34:45 -05:00
Adam Vandenberg
88865416e9 document FormulaConflict 2014-05-12 21:22:01 -07:00
Jack Nagel
6b001f1e3b Add keg-only reason symbols for Xcode 4.3 and Xcode 5
Closes Homebrew/homebrew#28095.
2014-04-03 09:12:51 -05:00
Jack Nagel
8f1f1d8d8a Make keg_only validation lazy 2014-04-01 21:35:22 -05:00
Jack Nagel
a31fcb554c Move SoftwareSpec to a separate file 2013-09-14 10:16:52 -05:00
Jack Nagel
f6536e9c8b Reject versions that aren't strings 2013-06-28 21:18:04 -05:00
Jack Nagel
033ef09518 Detect versions in tag specs
Closes Homebrew/homebrew#18300.
Closes Homebrew/homebrew#20891.
2013-06-28 21:17:23 -05:00
Jack Nagel
74b60a561c Simplify custom version scheme handling 2013-06-28 21:17:12 -05:00
Jack Nagel
8b9a3a560f Separate formula conflicts from requirements
Closes Homebrew/homebrew#20357.
2013-06-09 13:45:25 -05:00
Mike McQuaid
bf828aa36b Bottle DSL: allow checksums access. 2013-06-08 16:41:44 +01:00