Skip to content

Reconcile release docs and fix a release-provenance retry bug - #26

Merged
gitkodak merged 2 commits into
mainfrom
doc-reconciliation-2026-08-13
Aug 14, 2026
Merged

Reconcile release docs and fix a release-provenance retry bug#26
gitkodak merged 2 commits into
mainfrom
doc-reconciliation-2026-08-13

Conversation

@gitkodak

Copy link
Copy Markdown
Owner

Summary

  • Reconciled RELEASING.md, CHANGELOG.md and CLAUDE.md against actual repo/Jira/GitHub state:
    • RELEASING.md step 7 still said git push origin main, which now fails outright under the branch protection KAN-192 added; rewrote it to push a branch, open a PR, wait for required checks, then tag.
    • RELEASING.md's closing section claimed GitHub Release artifact-attachment was still undecided, contradicting its own step 9 (which already does it, shipped at 0.10.0).
    • CHANGELOG.md dated 0.11.1 a day ahead of the release commit's local date; regenerated the man page (make docs) since its header date derives from that entry.
    • CLAUDE.md claimed the GitHub repo description matches pyproject.toml; it doesn't (deliberately, per discussion) — rewrote the paragraph to say so.
    • Jira (KAN-114/KAN-144 children) matched TODO.md/CLAUDE.md throughout, so no ticket-status changes were needed.
  • Fixed a real bug in release-provenance.yml found by external review: a workflow_dispatch retry against a release that already carries .intoto.jsonl attestation bundles would download those too, attest them, and re-upload them as wheel.intoto.jsonl.intoto.jsonl, growing the release assets on every retry. Fixed by selecting only the three intended artifact types (*.whl, *.tar.gz, unifi-map.1) instead of downloading everything.

Test plan

  • make check (ruff format/lint + 681 tests) passes clean
  • make docs produces no further changes (man page/flag reference regenerated and committed)
  • make build produces a working wheel/sdist, both containing the man page
  • Reviewed on validate before this PR
  • Two independent reviews of the two commits found no remaining issues

🤖 Generated with Claude Code

sakodak and others added 2 commits August 13, 2026 23:25
Found by checking rather than re-reading: RELEASING.md step 7 still said
`git push origin main`, which now fails outright under the branch
protection KAN-192 added; its closing section also claimed GitHub Release
artifact-attachment was still undecided when step 9 already does it
(shipped 0.10.0). CHANGELOG.md dated 0.11.1 a day ahead of the release
commit's local date, which also left the generated man page's header
stale (`make docs` regenerated it). CLAUDE.md's claim that the GitHub repo
description matches pyproject.toml was false; rewritten to document that
the divergence is now intentional.

Jira (KAN-114/KAN-144 children) matched TODO.md/CLAUDE.md throughout, so
no ticket status changes were needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gh release download had no filter, so a workflow_dispatch retry against
a release that already carries .intoto.jsonl bundles from an earlier
pass would pull those down too. attest-build-provenance then signed the
bundles themselves, and the upload loop wrote them back out as
wheel.intoto.jsonl.intoto.jsonl, growing the release assets and
producing provenance for provenance on every retry instead of cleanly
re-attesting the wheel, sdist and man page.

Fixed by selecting the three intended artifact types with -p rather
than downloading everything. Found by external review of 90a4229/389f381.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown

Greptile Summary

The PR reconciles release documentation and generated man-page metadata with current repository state, and narrows provenance downloads to wheel, sdist, and man-page assets.

  • Excludes existing attestation bundles when retrying release provenance generation.
  • Updates the protected-branch release procedure and clarifies GitHub Release versus PyPI policy.
  • Corrects the 0.11.1 date in the changelog and generated man page.
  • Documents the intentional difference between package and GitHub repository descriptions.

Confidence Score: 4/5

The release instructions should be corrected before merging because the documented post-squash pull can fail or place the release tag on a commit outside origin/main.

After a squash merge, the local release commit and remote squash commit are divergent, so pulling before tagging does not reliably put local HEAD at the commit on origin/main.

Files Needing Attention: RELEASING.md

Important Files Changed

Filename Overview
.github/workflows/release-provenance.yml Restricts release downloads to the three intended artifact types, preventing recursive attestation of existing bundles.
RELEASING.md Updates the protected-branch release flow, but the post-squash pull can fail on divergent histories or tag a local merge commit rather than origin/main.
CHANGELOG.md Corrects the 0.11.1 release date to match the release commit’s local date.
unifi-map.1 Regenerates the man-page header consistently with the corrected changelog date.
CLAUDE.md Documents the intentional divergence between the GitHub repository description and package-facing descriptions.

Reviews (1): Last reviewed commit: "Stop a release-provenance retry from re-..." | Re-trigger Greptile

Comment thread RELEASING.md
Comment on lines +118 to 119
git checkout main && git pull origin main
git tag -a vX.Y.Z -m "…" # annotated, summarising the headline changes

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Tag targets a divergent local commit

After the release PR is squash-merged, the local release commit and the new squash commit on origin/main have diverged. git pull origin main therefore either stops for a reconciliation strategy or creates a local merge commit, causing the tag to miss the actual commit on origin/main.

Suggested change
git checkout main && git pull origin main
git tag -a vX.Y.Z -m "…" # annotated, summarising the headline changes
git fetch origin main
git tag -a vX.Y.Z origin/main -m "…" # annotated, summarising the headline changes

Context Used: CLAUDE.md (source)

@gitkodak
gitkodak merged commit 5f8da21 into main Aug 14, 2026
10 checks passed
@gitkodak
gitkodak deleted the doc-reconciliation-2026-08-13 branch August 14, 2026 04:38
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.

2 participants