You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 16, 2025. It is now read-only.
This job automatically builds any pull requests submitted to Homebrew/homebrew. On success or failure it updates the pull request status (see more details on the [main Brew Test Bot wiki page](Brew-Test-Bot.md)). On a successful build it automatically uploads bottles.
This job automatically builds any pull requests submitted to Homebrew/homebrew-core. On success or failure it updates the pull request status (see more details on the [main Brew Test Bot wiki page](Brew-Test-Bot.md)). On a successful build it automatically uploads bottles.
This job is manually triggered to run [`brew test-bot`](https://github.com/Homebrew/homebrew/blob/master/Library/Homebrew/cmd/test-bot.rb) with user-specified parameters. On a successful build it automatically uploads bottles.
### Why does Homebrew prefer I install to `/usr/local`?
126
126
<aname="usrlocal"></a>
@@ -176,7 +176,7 @@ If it’s not in `man brew`, it’s probably an external command. These are docu
176
176
If it’s been a while, bump it with a “bump” comment. Sometimes we miss requests and there are plenty of them. Maybe we were thinking on something. It will encourage consideration. In the meantime if you could rebase the pull request so that it can be cherry-picked more easily we will love you for a long time.
177
177
178
178
### Can I edit formulae myself?
179
-
Yes! It’s easy! Just `brew edit $FORMULA`. You don’t have to submit modifications back to*Homebrew/homebrew*, just edit the formula as you personally need it and `brew install`. As a bonus `brew update` will merge your changes with upstream so you can still keep the formula up-to-date **with** your personal modifications!
179
+
Yes! It’s easy! Just `brew edit $FORMULA`. You don’t have to submit modifications back to*Homebrew/homebrew-core*, just edit the formula as you personally need it and `brew install`. As a bonus `brew update` will merge your changes with upstream so you can still keep the formula up-to-date **with** your personal modifications!
180
180
181
181
### Can I make new formulae?
182
182
Yes! It’s easy! Just `brew create URL` Homebrew will then open the
@@ -185,7 +185,7 @@ installs; try it: `brew install $FORMULA`. If you come up with any issues,
185
185
run the command with the `-d` switch like so: `brew install -d $FORMULA`,
186
186
which drops you into a debugging shell.
187
187
188
-
If you want your new formula to be part of *Homebrew/homebrew* or want
188
+
If you want your new formula to be part of *homebrew/core* or want
189
189
to learn more about writing formulae, then please read the [Formula Cookbook](Formula-Cookbook.md).
|**Formula**| The package definition |`/usr/local/Library/Taps/homebrew/homebrew-core/Formula/foo.rb`|
9
+
|**Keg**| The installation prefix of a **Formula**|`/usr/local/Cellar/foo/0.1`|
10
+
|**opt prefix**| A symlink to the active version of a **Keg**|`/usr/local/opt/foo `|
11
+
|**Cellar**| All **Kegs** are installed here |`/usr/local/Cellar`|
12
+
|**Tap**| An optional Git repository of **Formulae** and/or commands |`/usr/local/Library/Taps/homebrew/homebrew-versions`|
13
+
|**Bottle**| Pre-built **Keg** used instead of building from source |`qt-4.8.4.mavericks.bottle.tar.gz`|
14
14
15
15
## An Introduction
16
16
17
17
Homebrew uses Git for downloading updates and contributing to the project.
18
18
19
19
Homebrew installs to the `Cellar` it then symlinks some of the installation into `/usr/local` so that other programs can see what's going on. We suggest you `brew ls` a few of the kegs in your Cellar to see how it is all arranged.
20
20
21
-
Packages are installed according to their formulae, which live in `/usr/local/Library/Formula`. Check one out a simple one e.g. `brew edit etl` (or [etl](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/etl.rb)) or a more advanced one e.g. `brew edit git` or [Git](https://github.com/Homebrew/homebrew/tree/master/Library/Formula/git.rb).
21
+
Packages are installed according to their formulae, which live in `/usr/local/Library/Taps/homebrew/homebrew-core/Formula`. Check one out a simple one e.g. `brew edit etl` (or [etl](https://github.com/Homebrew/homebrew-core/blob/master/Formula/etl.rb)) or a more advanced one e.g. `brew edit git` or [Git](https://github.com/Homebrew/homebrew-core/blob/master/Formula/git.rb).
22
22
23
23
# Basic Instructions
24
24
@@ -29,7 +29,7 @@ Before submitting a new formula make sure your package:
29
29
* meets all our [Acceptable Formulae](Acceptable-Formulae.md) requirements
30
30
* isn't already in Homebrew (check `brew search $FORMULA`)
31
31
* isn't in another official [Homebrew tap](https://github.com/Homebrew)
32
-
* isn't already waiting to be merged (check the [issue tracker](https://github.com/Homebrew/homebrew/issues))
32
+
* isn't already waiting to be merged (check the [issue tracker](https://github.com/Homebrew/homebrew-core/issues))
33
33
* is still supported by upstream (i.e. doesn't require extensive patching)
34
34
* has a stable, tagged version (i.e. not just a GitHub repository with no versions). See [Interesting-Taps-&-Branches](Interesting-Taps-&-Branches.md) for where pre-release versions belong.
35
35
* passes all `brew audit --strict --online $FORMULA` tests.
@@ -44,7 +44,7 @@ Run `brew create` with a URL to the source tarball:
44
44
brew create https://example.com/foo-0.1.tar.gz
45
45
```
46
46
47
-
This creates `/usr/local/Library/Formula/foo.rb` and opens it in your `$EDITOR`. It'll look something like:
47
+
This creates `/usr/local/Library/Taps/homebrew/homebrew-core/Formula/foo.rb` and opens it in your `$EDITOR`. It'll look something like:
48
48
49
49
```ruby
50
50
classFoo < Formula
@@ -109,7 +109,7 @@ Homebrew’s OpenSSL is
109
109
to avoid conflicting with the system so sometimes formulae need to
110
110
have environment variables set or special configuration flags passed
111
111
to locate our OpenSSL. You can see this mechanism in the
formula. Usually this is unnecessary because when OpenSSL is specified
114
114
as a dependency Homebrew temporarily prepends the `$PATH` with that
115
115
prefix.
@@ -168,11 +168,11 @@ A Hash (e.g. `=>`) specifies a formula dependency with some additional informati
168
168
169
169
Sometimes there’s hard conflict between formulae, and it can’t be avoided or circumvented with [`keg_only`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#keg_only-class_method).
170
170
171
-
`mbedtls` is a good [example](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/mbedtls.rb) formula for minor conflict.
171
+
`mbedtls` is a good [example](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mbedtls.rb) formula for minor conflict.
172
172
173
173
`mbedtls` ships and compiles a "Hello World" executable. This is obviously non-essential to `mbedtls`’s functionality, and conflict with the popular GNU`hello` formula would be overkill, so we just remove it.
174
174
175
-
[pdftohtml](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/pdftohtml.rb) provides an example of a serious
175
+
[pdftohtml](https://github.com/Homebrew/homebrew-core/blob/master/Formula/pdftohtml.rb) provides an example of a serious
176
176
conflict, where both formula ship an identically-named binary that is essential to functionality, so a [`conflicts_with`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#conflicts_with-class_method) is preferable.
177
177
178
178
As a general rule, [`conflicts_with`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#conflicts_with-class_method) should be a last-resort option. It’s a fairly blunt instrument.
@@ -231,7 +231,7 @@ class Foo < Formula
231
231
end
232
232
```
233
233
234
-
[jrnl](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/jrnl.rb) is an example of a formula that does this well. Theend result means the user doesn't have use `pip` or Python and can just run `jrnl`.
234
+
[jrnl](https://github.com/Homebrew/homebrew-core/blob/master/Formula/jrnl.rb) is an example of a formula that does this well. Theend result means the user doesn't have use `pip` or Python and can just run `jrnl`.
235
235
236
236
[homebrew-pypi-poet](https://github.com/tdsmith/homebrew-pypi-poet) can help you generate resource stanzas for the dependencies of your Python application and [gdm](https://github.com/sparrc/gdm#homebrew) can help you generate go\_resource stanzas for the dependencies of your go application.
237
237
@@ -261,7 +261,7 @@ the `test do` block.
261
261
262
262
We want tests that don't require any user input andtest the basic functionality of the application. For example `foo build-foo input.foo` is a good testand (despite their widespread use) `foo --version`and`foo --help` are bad tests. However, a bad test is better than no test at all.
263
263
264
-
See [cmake](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/cmake.rb) for an example of a formula with a good test. The formula writes a basic `CMakeLists.txt` file into the test directory then calls CMake to generate Makefiles. Thistest checks that CMake doesn't e.g. segfault during basic operation. Another good example is [tinyxml2](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/tinyxml2.rb), which writes a small C++ source file into the test directory, compiles and links it against the tinyxml2 library and finally checks that the resulting program runs successfully.
264
+
See [cmake](https://github.com/Homebrew/homebrew-core/blob/master/Formula/cmake.rb) for an example of a formula with a good test. The formula writes a basic `CMakeLists.txt` file into the test directory then calls CMake to generate Makefiles. Thistest checks that CMake doesn't e.g. segfault during basic operation. Another good example is [tinyxml2](https://github.com/Homebrew/homebrew-core/blob/master/Formula/tinyxml2.rb), which writes a small C++ source file into the test directory, compiles and links it against the tinyxml2 library and finally checks that the resulting program runs successfully.
265
265
266
266
## Manuals
267
267
@@ -279,7 +279,7 @@ If you’re not sure about the name check the homepage, and check the Wikipedia
279
279
280
280
Where Homebrew already has a formula called `foo` we typically do not accept requests to replace that formula with something else also named `foo`. This is to avoid both confusing and surprising users’ expectation.
281
281
282
-
When two formulae share an upstream name, e.g. [`AESCrypt`](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/aescrypt.rb) and [`AESCrypt`](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/aescrypt-packetizer.rb) the newer formula must typically adapt the name to avoid conflict with the current formula.
282
+
When two formulae share an upstream name, e.g. [`AESCrypt`](https://github.com/Homebrew/homebrew-core/blob/master/Formula/aescrypt.rb) and [`AESCrypt`](https://github.com/Homebrew/homebrew/blob-core/master/Formula/aescrypt-packetizer.rb) the newer formula must typically adapt the name to avoid conflict with the current formula.
283
283
284
284
If you’re *still* not sure, just commit. We’ll apply some arbitrary rule and make a decision :wink:.
285
285
@@ -307,11 +307,11 @@ Everything is built on Git, so contribution is easy:
307
307
308
308
```shell
309
309
brew update # required in more ways than you think (initializes the brew git repository if you don't already have it)
310
-
cd /usr/local
310
+
cd $(brew --repo homebrew/core)
311
311
# Create a new git branch for your formula so your pull request is easy to
312
312
# modify if any changes come up during review.
313
313
git checkout -b <some-descriptive-name>
314
-
git add Library/Formula/foo.rb
314
+
git add Formula/foo.rb
315
315
git commit
316
316
```
317
317
@@ -481,7 +481,7 @@ Instead of `git diff | pbcopy`, for some editors `git diff >> path/to/your/formu
481
481
482
482
# Advanced Formula Tricks
483
483
484
-
If anything isn’t clear, you can usually figure it out by `grep`ping the `Library/Formula` directory. Please submit a pull request to amend this document if you think it will help!
484
+
If anything isn’t clear, you can usually figure it out by `grep`ping the `$(brew --repo homebrew/core` directory. Please submit a pull request to amend this document if you think it will help!
485
485
486
486
## Unstable versions (`devel`, `head`)
487
487
@@ -744,7 +744,7 @@ end
744
744
745
745
[`option`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#option-class_method) names should be prefixed with the words `with` or `without`. For example, an option to run a test suite should be named `--with-test` or `--with-check` rather than `--test`, and an option to enable a shared library `--with-shared` rather than `--shared` or `--enable-shared`.
746
746
747
-
Note that [`option`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#option-class_method)s that aren’t `build.with? ` or `build.without?` should be deprecated with [`deprecated_option`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#deprecated_option-class_method). See [wget](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/wget.rb#L27-L31) for an example.
747
+
Note that [`option`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#option-class_method)s that aren’t `build.with? ` or `build.without?` should be deprecated with [`deprecated_option`](http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula#deprecated_option-class_method). See [wget](https://github.com/Homebrew/homebrew-core/blob/master/Formula/wget.rb#L27-L31) for an example.
748
748
749
749
750
750
## File level operations
@@ -804,7 +804,7 @@ system "make" # separate make and make install steps
804
804
system"make", "install"
805
805
```
806
806
807
-
If that fixes it, please open an [issue](https://github.com/Homebrew/homebrew/issues) so that we can fix it for everyone.
807
+
If that fixes it, please open an [issue](https://github.com/Homebrew/homebrew-core/issues) so that we can fix it for everyone.
0 commit comments