Skip to content

Commit a10e423

Browse files
authored
Merge pull request #20393 from AlternateRT/docs-improve-autobump
docs: improve Autobump documentation
2 parents 0a9fec1 + 54cfbe1 commit a10e423

File tree

4 files changed

+26
-46
lines changed

4 files changed

+26
-46
lines changed

Library/Homebrew/autobump_constants.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# The valid symbols for passing to `no_autobump!` in a `Formula` or `Cask`.
1010
# @api public
1111
NO_AUTOBUMP_REASONS_LIST = T.let({
12-
incompatible_version_format: "incompatible version format",
13-
bumped_by_upstream: "bumped by upstream",
12+
incompatible_version_format: "the package has a version format that can only be updated manually",
13+
bumped_by_upstream: "updates to the package are handled by the upstream developers",
1414
requires_manual_review: "a manual review of this package is required for inclusion in autobump",
1515
}.merge(NO_AUTOBUMP_REASONS_INTERNAL).freeze, T::Hash[Symbol, String])

docs/Autobump.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,35 @@
11
---
2-
last_review_date: "2025-06-16"
2+
last_review_date: "2025-08-06"
33
---
44

55
# Autobump
66

7-
[BrewTestBot](BrewTestBot.md) automatically checks for available updates of packages that are in Homebrew's "autobump list" for official repositories. These packages should not have to be bumped (i.e versions increased) manually by a contributor. Instead, every 3 hours a GitHub Action opens a new pull request to upgrade to the latest version of a formula/cask, if needed.
7+
In official repositories, [BrewTestBot](BrewTestBot.md) automatically checks for available updates to packages that are in Homebrew's "autobump list". These packages do not need to be bumped (i.e. have their version number increased) manually by a contributor. Instead, every 3 hours, a GitHub Action opens a new pull request to upgrade them to the latest version, if needed.
88

99
## Excluding packages from autobumping
1010

11-
By default, all new formulae and casks from [Homebrew/core](https://github.com/Homebrew/homebrew-core) and [Homebrew/cask](https://github.com/Homebrew/homebrew-cask) repositories are autobumped. To exclude a package from being autobumped, it must:
11+
By default, all new formulae and casks from the [Homebrew/core](https://github.com/Homebrew/homebrew-core) and [Homebrew/cask](https://github.com/Homebrew/homebrew-cask) repositories are autobumped. To exclude a package from the autobump list, it must have one of the following:
1212

13-
1. have a `deprecate!` or `disable!` call
14-
2. have a `livecheck do` block containing a `skip` call
15-
3. has no `no_autobump!` call
13+
* an active `deprecate!` or `disable!` call
14+
* a `livecheck do` block containing a `skip` call
15+
* a `no_autobump!` call
1616

17-
There are other formula or cask-specific reasons listed in the Formula Cookbook and Cask Cookbook respectively.
17+
Other formula and cask specific reasons for why a package is not autobumped are listed in the [Formula Cookbook](Formula-Cookbook.md) and [Cask Cookbook](Cask-Cookbook.md) respectively.
1818

19-
To use `no_autobump!`, a reason for exclusion must be provided. We prefer use of one of the supported symbols. These can be found in the [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant).
19+
## Autobump exclusion reasons
2020

21-
The reasons can be specified by their symbols:
21+
When using `no_autobump!`, a reason for exclusion must be provided.
22+
23+
There are two ways to indicate the reason. The preferred way is to use a pre-existing symbol, which can be found in [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant), for example:
2224

2325
```ruby
2426
no_autobump! because: :bumped_by_upstream
2527
```
2628

27-
If none of the existing reasons fit, a custom reason can be provided as a string:
29+
If these pre-existing reasons do not fit, a custom reason can be specified:
2830

2931
```ruby
3032
no_autobump! because: "some unique reason"
3133
```
3234

33-
If there are multiple packages with a similar custom reason, it be added to `NO_AUTOBUMP_REASONS_LIST`.
35+
If there are multiple packages with a similar custom reason, it can be added as a new symbol to `NO_AUTOBUMP_REASONS_LIST`.

docs/Cask-Cookbook.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
last_review_date: 2025-05-18
2+
last_review_date: "2025-05-18"
33
---
44

55
# Cask Cookbook
@@ -646,21 +646,19 @@ Refer to the [`brew livecheck`](Brew-Livecheck.md) documentation for how to writ
646646

647647
### Stanza: `no_autobump!`
648648

649-
The `no_autobump!` stanza excludes the cask for autobump list. That means the future updates will be handled by Homebrew contributors rather than by an automated process.
649+
The `no_autobump!` stanza excludes a cask from the autobump list. This means all updates are to be handled manually by submitting pull requests to the `Homebrew/homebrew-cask` repository.
650650

651-
To use this stanza, a reason must be provided. The preferred way is to use one of the available symbols. These symbols can be found in the [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant).
651+
`no_autobump!` requires a reason to be provided with the `because:` paramater. It accepts a string or a symbol that corresponds to a preset reason, for example:
652652

653653
```ruby
654654
no_autobump! because: :incompatible_version_format
655655
```
656656

657-
A custom reason can be provided if none of the available symbols fits:
657+
A complete list of allowed symbols can be found in [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant).
658658

659-
```ruby
660-
no_autobump! because: "some unique reason"
661-
```
659+
Casks that use `strategy :extract_plist` in their `livecheck` block or have `version :latest` are always excluded from the autobump list and do not require `no_autobump!` to be declared.
662660

663-
Refer to [Autobump](Autobump.md) page for more information about the autobump process in Homebrew.
661+
Refer to the [Autobump](Autobump.md) page for more information about the autobump process in Homebrew.
664662

665663
### Stanza: `name`
666664

docs/Formula-Cookbook.md

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -748,37 +748,17 @@ For `url`/`regex` guidelines and additional `livecheck` block examples, refer to
748748

749749
### Excluding formula from autobumping
750750

751-
By default, all new formulae in the Homebrew/core repository are autobumped. It means that future updates will be handled automatically by Homebrew CI jobs, and contributors do not have to do it manually.
751+
By default, all new formulae in the `Homebrew/homebrew-core` repository are autobumped. This means that future updates are handled automatically by Homebrew CI jobs, and contributors do not have to submit pull requests.
752752

753-
Sometimes, we want to exclude a formula from this list, for one reason or another. It can be done by adding the `no_autobump!` method in the formula definition, for example:
753+
Sometimes, we want to exclude a formula from this list, for one reason or another. This can be done by adding the `no_autobump!` method in the formula definition; a reason must be provided with the `because:` parameter. It accepts a string or a symbol that corresponds to a preset reason, for example:
754754

755755
```ruby
756-
class Foo < Formula
757-
# ...
758-
url "https://example.com/foo-1.0.tar.gz"
759-
760-
livecheck do
761-
url "https://example.com/foo/download.html"
762-
regex(/href=.*?foo[._-]v?(\d+(?:\.\d+)+)\.t/i)
763-
end
764-
765-
no_autobump! because: :bumped_by_upstream
766-
end
756+
no_autobump! because: :bumped_by_upstream
767757
```
768758

769-
To use this method, a reason must be provided. The preferred way is to use one of the available symbols. These reasons can be found in the [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant).
770-
771-
```ruby
772-
no_autobump! because: :incompatible_version_format
773-
```
774-
775-
A custom reason can be provided if none of the available symbols fits:
776-
777-
```ruby
778-
no_autobump! because: "some unique reason"
779-
```
759+
A complete list of allowed symbols can be found in [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant).
780760

781-
More information about the autobump process can be found on the [Autobump](Autobump.md) page.
761+
See our [Autobump](Autobump.md) documentation for more information about the autobump process.
782762

783763
### URL download strategies
784764

0 commit comments

Comments
 (0)