Skip to content

docs(homebrew): document GHCR upload layout gap (blob vs native OCI)#831

Open
brandonpayton wants to merge 1 commit into
mainfrom
gascity/kd-1mr/kd-7xjc-document-ghcr-bottle-upload-layout-gap-blob-only-upload-
Open

docs(homebrew): document GHCR upload layout gap (blob vs native OCI)#831
brandonpayton wants to merge 1 commit into
mainfrom
gascity/kd-1mr/kd-7xjc-document-ghcr-bottle-upload-layout-gap-blob-only-upload-

Conversation

@brandonpayton

Copy link
Copy Markdown
Member

What

Adds a GHCR Upload Layout section to docs/homebrew-publishing.md recording
that today's bottle upload (scripts/homebrew-ghcr-upload.sh, oras push) is
blob-addressable for the Kandelo VFS fetcher but is not in Homebrew's
native version-tagged OCI layout, so a stock guest brew install against the
GHCR root_url cannot resolve the bottle. Guest brew install remains
unsupported.

Why

The homebrew-all convoy (kd-1mr) is fanning out across ~73 packages. Without
this note, the tap "looking like a tap" (real Formula/*.rb, a GHCR root_url)
implies brew tap && brew install works — it does not. This records the latent
blocker so the fan-out does not bake a non-native layout into many packages
under a false install promise.

Docs-only; no code change. This is step 2 (docs-only) of the implementation
sequence in
docs/plans/2026-07-01-homebrew-builtin-vs-custom-bottle-publishing-research.md
(PR #823). Reconciliation to the native OCI layout (brew pr-upload --upload-only, or teaching the uploader to emit a version-tagged OCI index) is
deferred until guest brew install is a committed goal.

Verification (docs-only)

  • git diff --check: clean.
  • Added prose wraps within the doc's convention; the only long line is an
    unbreakable doc-path reference.
  • Facts cross-checked against the checkout: upload tag/media-type/blob URL
    (scripts/homebrew-ghcr-upload.sh), root_url
    (.github/workflows/reusable-homebrew-bottle-publish.yml
    scripts/homebrew-bottle-build.sh), and blob-direct consumption
    (host/src/homebrew-vfs-fetch.ts).
  • No code, ABI, package-archive, Node, or browser suites are triggered by a
    docs-only change.

Bead: kd-7xjc (discovered from kd-1i0u; blocks kd-1mr).

🤖 Generated with Claude Code

Add a "GHCR Upload Layout" section to docs/homebrew-publishing.md recording
that today's bottle upload (scripts/homebrew-ghcr-upload.sh, oras push) is
blob-addressable for the Kandelo VFS fetcher but is not in Homebrew's native
version-tagged OCI layout, so a stock guest `brew install` against the GHCR
root_url cannot resolve the bottle. Guest brew install remains unsupported.

Prevents the homebrew-all package fan-out from implying `brew tap && brew
install` works across packages. Docs-only; no code change. Reconciliation to
the native OCI layout (brew pr-upload --upload-only, or a version-tagged index
emitter) is deferred until guest brew install is a committed goal, per the
bottle-publishing research doc's implementation sequence.

Bead: kd-7xjc

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant