Skip to content

Migrate Homebrew distribution to homebrew-core (blocked on notability thresholds) #28

Description

@apgiorgi

Goal

Distribute dci via homebrew-core so users get:

  • brew install dci — no tap qualifier
  • Discoverability via brew search dci and the formulae.brew.sh listing

The current tap works fine (brew install doitintl/dci-cli/dci auto-taps, so brew upgrade dci just works). This migration is about reach, not fixing anything broken.

Blocker: notability thresholds (as of 2026-07-22)

Homebrew's Package Acceptance Policy is enforced automatically by brew audit via hard-coded thresholds in Library/Homebrew/utils/shared_audits.rb (GITHUB_NOTABILITY_THRESHOLDS):

Submission path Required (any one of)
Community member (not repo owner/org) ≥75 stars, or ≥30 forks, or ≥30 watchers
Self-submitted (anyone from DoiT) ≥225 stars, or ≥90 forks, or ≥90 watchers

Snapshot of this repo on 2026-07-22: 2 stars / 1 fork / 1 watcher. A PR today fails audit in CI before human review, and burning a rejection hurts a future attempt.

Note: if an outside community member submits the formula, the lower 75/30/30 bar applies — but the policy also warns self-submission scrutiny extends to obviously-coordinated submissions, so don't game this.

Eligibility check (re-run anytime)

gh repo view doitintl/dci-cli --json stargazerCount,forkCount,watchers \
  -q '{stars: .stargazerCount, forks: .forkCount, watchers: .watchers.totalCount}'

Compare against the table above. Also re-check the thresholds in shared_audits.rb — they can change.

Migration checklist (when eligible)

  • Re-verify current policy: Acceptable Formulae, Package Acceptance Policy, and current shared_audits.rb thresholds
  • Write a build-from-source formula: core does not accept prebuilt binaries. url must point at the immutable tagged source tarball (.../archive/refs/tags/vX.Y.Z.tar.gz) with sha256; build with go build using -ldflags for version stamping (mirror .goreleaser.yaml flags); include a real test do block (e.g. dci --version)
  • Validate locally: brew install --build-from-source ./dci.rb, brew test dci, brew audit --new --formula dci (must pass clean, including notability)
  • Submit PR to Homebrew/homebrew-core following the Adding Software to Homebrew guide
  • After merge:
    • Update README install/upgrade sections to plain brew install dci / brew upgrade dci
    • Deprecate the tap formula (deprecate! in Formula/dci.rb pointing users at core) — keep the tap repo/redirect for existing installs
    • Retire the Homebrew formula sync from sync-manifests.yml (Scoop/WinGet parts stay)
    • Set up release automation for core: brew bump-formula-pr on tag (or rely on Homebrew's autobump, if the formula qualifies)
    • Update post-release-verify.yml smoke test to install from core

Context

  • Discussed and scoped on 2026-07-22: attempting submission now would auto-fail audit (2/1/1 vs 225/90/90 self-submitted), so the decision was to stay on the tap, keep this issue as the pickup point, and revisit when metrics qualify.
  • Growing stars/forks/watchers is the actual critical path here — that's promotion/adoption work, not engineering.

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