DO-NOT-MERGE · Keep the internal docs/audit archive (88 files) out of the published sdist#223
Merged
Merged
Conversation
The wheel only packages src/bonfire, but the source distribution defaults to the whole VCS tree, so it shipped the entire docs/audit/ build-audit archive (88 files) to PyPI. Those are development-process artifacts, not shippable documentation. Add a hatch sdist exclude so they stay out of the release artifact. Verified by building the sdist before and after: docs/audit file count in the tarball drops from 88 to 0, while src/, pyproject, and the public docs (adr/, architecture, product/, release-gates) remain. twine check passes and a wheel still builds cleanly from the extracted sdist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
The published source distribution still packaged the entire internal
docs/audit/build-process archive — 88 files — and shipped it to PyPI.The wheel is already clean (it only packages
src/bonfire), but the sdistdefaults to the whole VCS tree, so every audit artifact under
docs/audit/went out in the release tarball. A large majority of those files carry
internal-only content (absolute developer paths, internal branch names,
internal role vocabulary, and internal tracker IDs in both filenames and
bodies) — exactly the class of content that does not belong in a public
release artifact.
This is pre-existing on the base branch; it is not introduced by any
recent code-doc removal.
Why this approach
Two defensible fixes exist: scrub the in-repo files, or stop shipping them.
A separate, in-flight PR handles scrubbing the in-repo copies. This PR adds
the belt-and-suspenders packaging guard so the archive can never reach PyPI
regardless of whether the in-repo scrub reaches the whole tree:
Public docs (
docs/adr/,docs/architecture.md,docs/product/,docs/release-gates.md, ...) are untouched and still ship.How to verify
Gate results (run from the worktree)
docs/auditcount: 88 -> 0 (before/after build, anchored)src/bonfire+pyproject.toml: retained (152 entries)twine check dist/*: PASSEDdocs/audit)ruff check src/ tests/: All checks passed!ruff format --check src/ tests/: 311 files already formattedpyproject.tomlparses; only change is the new[tool.hatch.build.targets.sdist]sectionMerge policy
Operator merges — do not auto-merge. This PR is a packaging guard; the
human gates the merge.