Skip to content

Get flue into homebrew-core (brew install flue) #123

Description

@karngyan

Today flue installs via brew install karnstack/tap/flue. The goal is plain brew install flue, which means getting a formula accepted into homebrew/homebrew-core.

Where we stand (2026-08-19)

  • Repo: 9 stars, 0 forks, 0 watchers, created 2026-07-28
  • License: MIT (accepted by core)
  • Latest release: v0.9.1, tagged (pre-1.0 is fine for core)
  • Name flue is free in core (formula and cask APIs both 404)
  • Current tap ships a goreleaser cask with prebuilt binaries

Gate 1: notability (the real blocker)

Homebrew audits new formulae and rejects with:

GitHub repository not notable enough (<30 forks, <30 watchers and <75 stars)

It also requires the repo to be at least 30 days old.

  • Repo reaches 30 days old (around 2026-08-27, fixes itself)
  • Reach 75 GitHub stars (or 30 forks, or 30 watchers)

No engineering workaround exists. Maintainers close PRs that fail this check.

Gate 2: core builds from source

Core does not accept prebuilt binaries, so the cask approach does not carry over. We need a formula that builds from the source tarball of the tag.

Complication: web/embed.go uses go:embed, and the goreleaser before hook builds web/dist and relay/dist before any go build. Two options:

  1. Include built web/dist and relay/dist in the release source tarball, keeping the formula pure Go with depends_on "go" => :build and std_go_args. Recommended.
  2. Add node and pnpm as build deps and run the web build inside the formula. Reviewers dislike heavy JS toolchains for Go binaries, and it is more fragile in their CI.
  • Decide asset strategy (option 1 recommended)
  • Write Formula/f/flue.rb with a working test do block

Submission checklist (once both gates pass)

  • brew install --build-from-source ./flue.rb passes locally
  • brew test flue passes
  • brew audit --new --strict --online flue passes clean
  • Open PR against homebrew/homebrew-core, get through review and bottle CI (all supported macOS versions plus Linux)

After merge

  • Add a livecheck block so autobump can pick the formula up later
  • Automate version bumps (brew bump-formula-pr from CI on each release)
  • Decide fate of karnstack/tap: deprecate the cask, or keep it as the fast channel since tap binaries ship same day while core bottles wait on review

The formula work itself is about a day. Star count is the wall, so until both gates pass the tap stays the correct home.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions