Skip to content

[Release/Docs] Align ADR 0003 build-backend pin with protected package authority #313

Description

@seonghobae

Protected-main release-evidence documentation defect — refreshed 2026-08-30

Protected main is exact b84f0c94154043a3473939c01bb6471de5a129ae.

At that exact tree, two protected release-evidence documents disagree with the executable package authority:

  • docs/adr/0003-reproducible-release-evidence.md is exact blob 6740fbe8d3fb86ab4c2edfe88e5b4e80a4561e78, remains Status: Proposed, and specifies uv 0.12.3 with backend requirement uv_build==0.12.1 in both Context and Decision; and
  • docs/doctoring/reproducible-release-evidence.md is exact blob eb91f782d93cf33c0fb9b379a695e8f009193943 and likewise tells operators that the governed path uses/requires uv_build==0.12.1, including its operator-verification and build-toolchain-failure instructions.

The same protected tree's pyproject.toml, exact blob 701c84e7cbff2e9942986c0d3f6e4b746cd48ddc, instead declares:

[build-system]
requires = ["uv_build==0.12.3"]
build-backend = "uv_build"

Thus the defect is broader than ADR 0003 alone: both the Proposed decision record and the protected operator doctoring contract are stale relative to the exact PEP 517 package authority. This is a bounded release/provenance documentation defect, not proof of package-build failure or wrong published artifacts. The ADR remains Proposed; do not invent an Accepted historical decision.

Exact executable evidence for the current protected package path

Release Acceptance run 32098143650 / job 95593334211 on unchanged #233 head 5951b7a4d779903b8924abaef2a387cae50b7f54 previously established exact-source reproducibility for the current protected package authority: exact checkout verification, CPython 3.14.7, uv 0.12.3, exact checked-out pyproject.toml requiring uv_build==0.12.3, two independent git archive source trees, two clean uv build --no-sources executions, byte-identical wheel/sdist identity, and bounded evidence named for the exact source commit.

Accordingly, the implemented package/reproducibility path represented by protected main@b84f0c9 is consistent with uv 0.12.3 + uv_build==0.12.3, while both ADR 0003 and the reproducibility doctoring note still name uv_build==0.12.1. Exact PR-head Release Acceptance is engineering evidence; it is not a GitHub Release, tag, publication, signing, trusted-builder attestation, or release authorization.

Active dependency-update boundary

Draft Dependabot #260 remains open/mechanically mergeable on branch dependabot/uv/uv-build-0.12.5, updating the backend from 0.12.3 to 0.12.5. It has no formal reviews in the fresh inventory and remains ACTIVE-PR evidence only.

Its earlier exact-head CI failure was traced to the same two protected weakref cleanup coverage arcs addressed by dependency-root #233, not to a demonstrated uv_build==0.12.5 incompatibility. Therefore do not classify the dependency update as broken merely from that inherited 99.96% coverage result, and do not copy #233's tests into a competing Dependabot branch. Keep package authority dynamic: immediately before eventual documentation repair and merge, resolve the then-protected package pin again rather than hard-coding either 0.12.3 or branch-only 0.12.5 as future truth.

Required acceptance once the authoritative docs/package surface is writer-safe

Repair the release decision/operator record through normal protected governance:

  • update the Proposed ADR's build frontend/backend contract to match the then-current protected package/workflow authority, or create/index a successor if repository ADR policy requires one without pretending ADR 0003 was ever Accepted;
  • update docs/doctoring/reproducible-release-evidence.md in the same governed truth change so its Evidence boundary, Operator verification and Build-toolchain failure sections describe the exact then-authoritative frontend/backend contract rather than a predecessor pin;
  • preserve an auditable historical note that protected b84f0c9... and exact-source Release Acceptance proved the uv 0.12.3 + uv_build==0.12.3 path;
  • explain that PEP 517 build-system requirements resolve independently from ordinary project dependencies and are not made authoritative merely by uv.lock;
  • keep ACTIVE dependency updates such as build(deps-dev): bump uv-build from 0.12.3 to 0.12.5 #260 separate from IMPLEMENTED-ON-PROTECTED-MAIN truth until they integrate;
  • preserve exact-source release acceptance: exact checked-out source, Python 3.14 support, two clean source trees/builds, deterministic wheel/sdist comparison, and content-bounded evidence identity;
  • keep reproducibility separate from signing, trusted-builder provenance, SBOM, attestation, publication, independent approval, and release authorization;
  • do not create/publish a version merely to close this docs defect; and
  • if source/workflow/test changes become necessary, require exact 100% owned-production statement/branch coverage, 100% public docstrings, supported Python including 3.14, package/lock/build, exact-source Security/SAST, SBOM/provenance/release evidence, zero valid findings/threads, and then-live review/governance on one unchanged final head.

Issue #305 separately owns the protected CHANGELOG statement that incorrectly refers to a setuptools backend floor. Keep the defects distinct unless one writer-safe governed change truthfully resolves both without broadening ownership.

Current writer boundary — refreshed 2026-08-30

Do not patch ADR 0003, the reproducibility doctoring note, pyproject.toml, release workflows, or canonical docs from a new competing branch now.

Current #316 classification removes several false historical writer blockers from the older body:

The intended package/release surfaces are nevertheless occupied by actual current writers:

Draft #229 is the active canonical-documentation overlay and retains three formal CHANGES_REQUESTED reviews, but its current changed-file set is limited to PRD/TRD, DATA_GOVERNANCE, THREAT_MODEL, DOCUMENTATION_FITNESS, TRACEABILITY, ADR index, UML/ERD and their status-contract tests; it does not currently change ADR 0003 or docs/doctoring/reproducible-release-evidence.md. That non-overlap is not a declaration that either release-doc path is free: the complete non-default branch inventory still contains 123 non-default refs, so exact changed-path comparison of every potentially documentation/release-affecting no-PR/open-PR head is required immediately before any docs mutation.

Thus removing historical false leases and identifying #229 non-overlap do not establish a writer-safe release-doc lane. Before any future source/documentation mutation, freshly refetch protected main, exact ADR 0003/doctoring/package/workflow blobs, every open PR/issue, complete non-default branch inventory and intended-path changed sets, relevant reviews/threads, release evidence, and every live governance surface. Start only from an explicit non-default branch at the then-exact protected-main commit after the exact intended surface is genuinely writer-safe.

Completion boundary

Close only after both protected release documents and the exact package/workflow authority agree through normal review, and a fresh exact-source reproducibility run proves the documented build frontend/backend contract on the final integrated head. Documentation agreement alone is insufficient if the actual build path differs; green builds do not cure stale acquisition/release documentation.

Refs #145, #198, #200, #229, #233, #244, #247, #260, #305, #313, #316.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ci-cdCI, GitHub Actions, checks, release, or supply chainbugSomething isn't workingpriority: mediumNormal-priority or P2 workstatus: blockedBlocked by conflict, dependency, or required prerequisitetype: bugDefect or incorrect behavior

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions