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 }}
Repository navigation
Expand language-specific formula guidance - #24479
Have you checked for other open Pull Requests for the same change?
Have you explained what your changes do? Performance claims (e.g. "this is faster") must include brew benchmark results.
Have you explained why you'd like these changes included, not just what they do?
For bug fixes, have you given step-by-step brew commands to reproduce the bug?
Have you written new tests (excluding integration tests)? Here's an example.
Have you successfully run brew lgtm (style, typechecking and tests) locally?
I did not use AI/LLM to create this PR, or I disclosed the tool/model below and reviewed its output; I did not attribute commits to AI and will answer maintainer questions and review comments myself without AI/LLM.
Codex with GPT 6.1 Sol at Extra High effort, with local review and testing.
Review was skipped as selected files did not have any reviewable changes.
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: f3702f82-bcfc-4bef-a799-9b0e37b6268d
Commits
Reviewing files that changed from the base of the PR and between bd7f1a7 and 0a6aa70.
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
Trigger review
Summary
Summary by CodeRabbit
Documentation
Added formula-authoring guidance for a broad range of language ecosystems, covering dependencies, reproducible fetching, offline builds, installation layouts, runtime environments and functional testing.
Expanded Go and Rust guidance, including module fetching, build helpers and offline installation.
Added Perl installation and module-path examples for common project types.
Updated links to language-specific authoring guidance and documented Homebrew helpers for Shards and Swift.
Refined heading-style exceptions for language and technology names.
The documentation adds authoring guidance for additional language ecosystems. It also updates related navigation, build-helper references, and Vale heading exceptions.
Changes: Formula authoring documentation
Layer / File(s)
Summary
Documentation links and helper references docs/Language-Runtimes-and-Packages.md, docs/Formula-Cookbook.md
The runtime and package guide links to language-specific authoring guidance. The cookbook adds Shards and Swift helpers and removes examples for Go build flags.
C/C++, Go, and Rust guidance docs/Language-Specific-Formulae.md
The authoring guide adds compiler, dependency-fetching, installation, and helper guidance for C/C++, Go, and Rust.
Build and package workflows docs/Language-Specific-Formulae.md
The guide adds dependency, build, installation, and runtime instructions for Perl, Fortran, Lua, shell scripts, Vala, Swift, Haskell, Tcl/Tk, OCaml, and Zig.
Runtime ecosystems and heading rules docs/Language-Specific-Formulae.md, docs/vale-styles/Homebrew/Headings.yml
The guide adds PHP, .NET, Erlang and Elixir, Crystal, and other ecosystem notes. The Vale heading exceptions include names used by the new guidance.
Merge Risk: Moderate · previous review bd7f1
Correct the GoReleaser resource warning and Perl installation example before merging so contributors do not create incorrectly identified or unusable formula binaries.
Pre-merge checks: 3 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Out of Scope Changes check
The Go section and the Go cross-reference in docs/Formula-Cookbook.md implement #24474. The pull request also adds guidance that #24474 does not request. At head, docs/Language-Specific-Formulae.md co…
Remove the non-Go ecosystem sections added to docs/Language-Specific-Formulae.md. This includes at least ## C and C++, ## Perl and ## Rust, and the other added sections listed in the summary (Fortran, Lua, shell scripts, Vala, Swift, …
Passed checks: 3 passed
Check name
Status
Explanation
Title check
The title "Expand language-specific formula guidance" matches the main change. The PR adds a new language-specific formula guide and updates the related docs, Vale heading rules, and cross-links. The …
Description check
The description states the goals of making language build helpers and runtime layouts discoverable and explaining GoReleaser metadata. This relates directly to the changes in the Language-Specific For…
Linked Issues check
Issue #24474 asks for a dedicated Go section in Language-Specific Formulae. The section should help contributors find Go features, including GoReleaser ldflags support. At head, docs/Language-Specif…
Full details: Title check
Explanation
The title "Expand language-specific formula guidance" matches the main change. The PR adds a new language-specific formula guide and updates the related docs, Vale heading rules, and cross-links. The title is specific and concise. It does not name every language, which is expected.
Full details: Description check
Explanation
The description states the goals of making language build helpers and runtime layouts discoverable and explaining GoReleaser metadata. This relates directly to the changes in the Language-Specific Formulae, Formula Cookbook, and Language Runtimes docs. It also references the linked issue, so it is not off-topic.
Full details: Linked Issues check
Explanation
Issue #24474 asks for a dedicated Go section in Language-Specific Formulae. The section should help contributors find Go features, including GoReleaser ldflags support. At head, docs/Language-Specific-Formulae.md contains a ## Go section. It covers the Go toolchain and GOTOOLCHAIN=local. It covers module download in fetch, std_go_args, and the output:, ldflags:, gcflags: and tags: options. It also covers ldflags: :goreleaser, the metadata set (main.version, main.commit, main.date, main.builtBy) and the limits of the helper. At head, docs/Formula-Cookbook.md links to Language-Specific Formulae#go for std_go_args. The issue has no separate coding or automated-test requirement. The documentation requirement is met.
Full details: Out of Scope Changes check
Explanation
The Go section and the Go cross-reference in docs/Formula-Cookbook.md implement #24474. The pull request also adds guidance that #24474 does not request. At head, docs/Language-Specific-Formulae.md contains ## C and C++, ## Perl and ## Rust sections. Their content covers CMake builds, CPAN resources and Cargo fetch helpers. The supplied summary lists further added sections for Fortran, Lua, shell scripts, Vala, Swift, Haskell, Tcl/Tk, OCaml, Zig, PHP, .NET, Erlang/Elixir and Crystal. The file read was truncated at 16000 bytes, so those sections were not verified at head. The docs/Formula-Cookbook.md diff at head adds Shards and Swift to the list of helper build systems. This edit does not concern Go. The supplied summary also lists supporting edits in docs/vale-styles/Homebrew/Headings.yml and docs/Language-Runtimes-and-Packages.md. These serve the non-Go sections. The unrelated sections and edits remain at head, so the previous FAIL still applies.
Resolution
Remove the non-Go ecosystem sections added to docs/Language-Specific-Formulae.md. This includes at least ## C and C++, ## Perl and ## Rust, and the other added sections listed in the summary (Fortran, Lua, shell scripts, Vala, Swift, Haskell, Tcl/Tk, OCaml, Zig, PHP, .NET, Erlang/Elixir and Crystal). Revert the Shards and Swift addition in the helper list in docs/Formula-Cookbook.md. Revert the docs/vale-styles/Homebrew/Headings.yml exceptions that only support removed sections. Revert the docs/Language-Runtimes-and-Packages.md link change if it only supports removed sections. Keep the ## Go section and the Go cross-references in docs/Formula-Cookbook.md. Move the removed guidance to separate issues and pull requests.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: 3c801f9e-3290-4b3e-bfd1-d2f87b1e784b
Commits
Reviewing files that changed from the base of the PR and between 96d2a24 and 41de043.
Files selected for processing: 4
docs/Formula-Cookbook.md
docs/Language-Runtimes-and-Packages.md
docs/Language-Specific-Formulae.md
docs/vale-styles/Homebrew/Headings.yml
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.
⚠️ Outside diff range comments (1)
Minor · Populate bin before wrapping the installed commands. · Language-Specific-Formulae.md:325-327
docs/Language-Specific-Formulae.md:325-327 Minor · Functional Correctness · Quick win
Populate bin before wrapping the installed commands.
make install places the commands under libexec/bin, but bin.env_script_all_files scans bin as its source. Because this example never populates bin, it creates no wrappers and the installed commands are not exposed as formula commands.
Suggested fix
system "perl", "Makefile.PL", "INSTALL_BASE=#{libexec}"
system "make", "install"
+ bin.install libexec/"bin"/*
bin.env_script_all_files libexec/"bin", PERL5LIB: ENV.fetch("PERL5LIB")
Review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: CHILL
Plan: Advanced
Run ID: 5acf8dd8-b1c4-4a7e-8e63-871ef378fa3c
Commits
Reviewing files that changed from the base of the PR and between 14c5067 and bd7f1a7.
Files selected for processing: 1
docs/Language-Specific-Formulae.md
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24474
brew benchmarkresults.brewcommands to reproduce the bug?brew lgtm(style, typechecking and tests) locally?Codex with GPT 6.1 Sol at Extra High effort, with local review and testing.