Skip to content

Commit 360ff19

Browse files
committed
docs: improve Autobump documentation
1 parent 726f83c commit 360ff19

File tree

3 files changed

+35
-36
lines changed

3 files changed

+35
-36
lines changed

docs/Autobump.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,42 @@
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+
## Overview
8+
9+
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.
810

911
## Excluding packages from autobumping
1012

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:
13+
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:
14+
15+
* an active `deprecate!` or `disable!` call
16+
* a `livecheck do` block containing a `skip` call
17+
* a `no_autobump!` call
18+
19+
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.
20+
21+
## Autobump exclusion reasons
1222

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
23+
When using `no_autobump!`, a reason for exclusion must be provided.
1624

17-
There are other formula or cask-specific reasons listed in the Formula Cookbook and Cask Cookbook respectively.
25+
There are two ways to indicate the reason. The preferred way is to use a pre-existing symbol to indicate the reason. The available symbols are listed below and can be found in [`NO_AUTOBUMP_REASONS_LIST`](https://rubydoc.brew.sh/top-level-namespace.html#NO_AUTOBUMP_REASONS_LIST-constant):
1826

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).
27+
* `:incompatible_version_format`: the package has a version format that can only be updated manually
28+
* `:bumped_by_upstream`: updates to the package are handled by the upstream developers
2029

21-
The reasons can be specified by their symbols:
30+
These reasons can be specified by their symbols:
2231

2332
```ruby
2433
no_autobump! because: :bumped_by_upstream
2534
```
2635

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

2938
```ruby
3039
no_autobump! because: "some unique reason"
3140
```
3241

33-
If there are multiple packages with a similar custom reason, it be added to `NO_AUTOBUMP_REASONS_LIST`.
42+
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: 9 additions & 5 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,25 @@ 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 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).
658+
659+
A custom reason can also be provided if none of the available symbols fit, for example:
658660

659661
```ruby
660662
no_autobump! because: "some unique reason"
661663
```
662664

663-
Refer to [Autobump](Autobump.md) page for more information about the autobump process in Homebrew.
665+
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.
666+
667+
Refer to the [Autobump](Autobump.md) page for more information about the autobump process in Homebrew.
664668

665669
### Stanza: `name`
666670

docs/Formula-Cookbook.md

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -748,37 +748,23 @@ 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 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-
```
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).
774760

775-
A custom reason can be provided if none of the available symbols fits:
761+
A custom reason can also be provided if none of the available symbols fit, for example:
776762

777763
```ruby
778764
no_autobump! because: "some unique reason"
779765
```
780766

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

783769
### URL download strategies
784770

0 commit comments

Comments
 (0)