Skip to content

Commit 61aeb02

Browse files
author
CometAPI
committed
fix: bind immutable release workflow evidence
1 parent c97d017 commit 61aeb02

10 files changed

Lines changed: 418 additions & 218 deletions

AGENTS.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,11 @@ Post-stable invariants:
160160
The version gate must reject any `Unreleased` level-two heading before merge
161161
or release.
162162
13. A validated release-evidence block binds one canonical publication workflow
163-
run to its machine-readable identity marker. Every ancillary Actions run URL
164-
in that block requires an exact workflow-reference marker. The document gate
165-
must reject non-canonical URLs and undeclared, unused, malformed, duplicate,
166-
or contradictory run identities regardless of prose or Markdown labeling.
163+
run to its machine-readable identity marker and may contain no other Actions
164+
run URL. Keep preparatory implementation, CI, Release Please, failed-attempt,
165+
and recovery history outside that block. The document gate must reject
166+
non-canonical, wrapped, malformed, or contradictory workflow URLs regardless
167+
of prose or Markdown labeling.
167168

168169
## Repository independence
169170

ARCHITECTURE.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,12 @@ ambiguous external state and is forbidden.
164164

165165
Immutable run, tag, commit, registry, and digest records live only in the
166166
validated release-evidence blocks in `ROADMAP.md` and `RELEASING.md`. Each
167-
block binds the canonical publication run through its machine-readable identity
168-
and binds every ancillary workflow URL through an exact reference marker. The
169-
checker requires a canonical URL and rejects undeclared or unused run identities,
170-
so Markdown wording cannot disguise a contradictory workflow. Architecture
171-
documents mechanisms and boundaries, not a second historical ledger.
167+
block binds only the canonical publication run through its machine-readable
168+
identity; preparatory implementation, CI, Release Please, failed-attempt, and
169+
recovery history stays outside the block. The checker rejects every other run
170+
identity plus wrapped or malformed Actions URLs, so Markdown wording cannot
171+
disguise a contradictory workflow. Architecture documents mechanisms and
172+
boundaries, not a second historical ledger.
172173

173174
The scheduled/manual default-branch smoke is an operational canary only; it
174175
does not prove the release commit. `COMETAPI_KEY` is exposed only to the

RELEASING.md

Lines changed: 27 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,10 @@ any unmanaged `Unreleased` level-two heading so the generated layout remains
205205
valid on every patch release.
206206

207207
Each validated release-evidence block contains the immutable release identity
208-
and workflow history bound by machine-readable markers. The canonical
209-
publication run is part of the identity; every ancillary implementation CI,
210-
Release Please, failed-publication, or recovery URL requires an exact workflow
211-
reference marker. The document gate rejects non-canonical URLs and undeclared,
212-
unused, malformed, duplicate, or contradictory run identities regardless of
213-
prose or Markdown labeling.
208+
and only its canonical publication workflow. Preparatory implementation CI,
209+
Release Please, failed-publication, and recovery history remains outside the
210+
block. The document gate rejects every different run identity and every wrapped
211+
or malformed Actions URL regardless of prose or Markdown labeling.
214212

215213
Release mode (`check_version.py --require-releasable-docs`) also fails closed
216214
until project authorship, the canonical GitHub repository URL, the copyright
@@ -485,19 +483,17 @@ authorized.
485483

486484
### Completed first stable release evidence
487485

486+
- Selector-descendant fix [PR #23](https://github.com/cometapi-dev/cometapi-python/pull/23)
487+
passed [pull-request CI run 30358662050](https://github.com/cometapi-dev/cometapi-python/actions/runs/30358662050),
488+
squash-merged as `9cd60419130533d6920083e2f4bf295a3b5a4fd7`, and passed
489+
[default-branch CI run 30358990834](https://github.com/cometapi-dev/cometapi-python/actions/runs/30358990834).
490+
488491
<!-- cometapi-release-evidence:start version=0.1.0 date=2026-07-28 -->
489492
<!-- cometapi-release-identity tag=v0.1.0 commit=6f42981edcc6c252f8db997606671c3da84d1dd8 workflow-run=30359383715 wheel-sha256=8eae758688bb6c98274e48d8d81f882eeae760f69cfd2f5e125004881d60e90f sdist-sha256=e9308b44f6091200b5121e24d1a0e1b9ea3e6bcccc109d6de87554b1ab2a8bca -->
490-
<!-- cometapi-release-workflow-reference run=30358662050 -->
491-
<!-- cometapi-release-workflow-reference run=30358990834 -->
492-
493493

494494
- The immutable non-draft [GitHub release](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.0)
495495
and lightweight tag `v0.1.0` resolve to release commit
496496
`6f42981edcc6c252f8db997606671c3da84d1dd8` on protected `main`.
497-
- Selector-descendant fix [PR #23](https://github.com/cometapi-dev/cometapi-python/pull/23)
498-
passed [pull-request CI run 30358662050](https://github.com/cometapi-dev/cometapi-python/actions/runs/30358662050),
499-
squash-merged as `9cd60419130533d6920083e2f4bf295a3b5a4fd7`, and passed
500-
[default-branch CI run 30358990834](https://github.com/cometapi-dev/cometapi-python/actions/runs/30358990834).
501497
- Fresh first-attempt
502498
[recovery run 30359383715](https://github.com/cometapi-dev/cometapi-python/actions/runs/30359383715)
503499
passed immutable identity verification, the shared selector, an exact rebuild,
@@ -523,15 +519,6 @@ authorized.
523519

524520
### Completed configuration maintenance release evidence
525521

526-
<!-- cometapi-release-evidence:start version=0.1.1 date=2026-07-29 -->
527-
<!-- cometapi-release-identity tag=v0.1.1 commit=576e7503a0a8c1103faca5143e4b8d576f8e8b44 workflow-run=30429821548 wheel-sha256=27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5 sdist-sha256=64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8 -->
528-
<!-- cometapi-release-workflow-reference run=30419881169 -->
529-
<!-- cometapi-release-workflow-reference run=30420057230 -->
530-
<!-- cometapi-release-workflow-reference run=30423490399 -->
531-
<!-- cometapi-release-workflow-reference run=30424732041 -->
532-
<!-- cometapi-release-workflow-reference run=30429821579 -->
533-
534-
535522
- Configuration fix [PR #25](https://github.com/cometapi-dev/cometapi-python/pull/25)
536523
passed [pull-request CI run 30419881169](https://github.com/cometapi-dev/cometapi-python/actions/runs/30419881169)
537524
and squash-merged as `d02b1dba277ac72229b772d29ea1870b569edd88`.
@@ -551,10 +538,15 @@ authorized.
551538
received human owner approval at that exact head, and squash-merged as
552539
`576e7503a0a8c1103faca5143e4b8d576f8e8b44`. The release commit passed
553540
[default-branch CI run 30429821579](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821579).
541+
542+
<!-- cometapi-release-evidence:start version=0.1.1 date=2026-07-29 -->
543+
<!-- cometapi-release-identity tag=v0.1.1 commit=576e7503a0a8c1103faca5143e4b8d576f8e8b44 workflow-run=30429821548 wheel-sha256=27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5 sdist-sha256=64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8 -->
544+
554545
- First-attempt [release run 30429821548](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548)
555546
created and verified immutable non-draft release
556547
[v0.1.1](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.1)
557-
at the exact release commit, rebuilt and clean-installed both artifacts,
548+
at release commit `576e7503a0a8c1103faca5143e4b8d576f8e8b44`, rebuilt and
549+
clean-installed both artifacts,
558550
passed the four-request exact-release live suite, received protected `pypi`
559551
approval, published directly from top-level `publish.yml` by OIDC with
560552
attestations, and passed public registry verification.
@@ -578,16 +570,6 @@ authorized.
578570

579571
### Completed release-metadata maintenance evidence
580572

581-
<!-- cometapi-release-evidence:start version=0.1.2 date=2026-07-30 -->
582-
<!-- cometapi-release-identity tag=v0.1.2 commit=710c56491d9ef5f47cccff3ce837ab7e799455b0 workflow-run=30515861246 wheel-sha256=3f12c26ae1ae7a1de5ac19d8ef27a784b2bf592143c716493f1b0f35ec19daca sdist-sha256=21c8edc0586610de1a9a8cd39b54ed23d2b1e20552100f69f53938cb7678da3d -->
583-
<!-- cometapi-release-workflow-reference run=30509063138 -->
584-
<!-- cometapi-release-workflow-reference run=30509764960 -->
585-
<!-- cometapi-release-workflow-reference run=30510887049 -->
586-
<!-- cometapi-release-workflow-reference run=30511071674 -->
587-
<!-- cometapi-release-workflow-reference run=30511373822 -->
588-
<!-- cometapi-release-workflow-reference run=30515861285 -->
589-
590-
591573
- Metadata and runtime [PR #29](https://github.com/cometapi-dev/cometapi-python/pull/29)
592574
made packaged long descriptions release-neutral, added artifact assertions,
593575
pinned Release Please v5 to its Node 24 action commit, passed
@@ -611,11 +593,16 @@ authorized.
611593
received human owner approval at that exact head, and squash-merged as release
612594
commit `710c56491d9ef5f47cccff3ce837ab7e799455b0`. The release commit passed
613595
[default-branch CI run 30515861285](https://github.com/cometapi-dev/cometapi-python/actions/runs/30515861285).
596+
597+
<!-- cometapi-release-evidence:start version=0.1.2 date=2026-07-30 -->
598+
<!-- cometapi-release-identity tag=v0.1.2 commit=710c56491d9ef5f47cccff3ce837ab7e799455b0 workflow-run=30515861246 wheel-sha256=3f12c26ae1ae7a1de5ac19d8ef27a784b2bf592143c716493f1b0f35ec19daca sdist-sha256=21c8edc0586610de1a9a8cd39b54ed23d2b1e20552100f69f53938cb7678da3d -->
599+
614600
- First-attempt
615601
[release run 30515861246](https://github.com/cometapi-dev/cometapi-python/actions/runs/30515861246)
616602
created and independently verified immutable non-draft release
617603
[v0.1.2](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.2)
618-
at the exact release commit, rebuilt and clean-installed both artifacts,
604+
at release commit `710c56491d9ef5f47cccff3ce837ab7e799455b0`, rebuilt and
605+
clean-installed both artifacts,
619606
passed the bounded four-request exact-release live suite, received protected
620607
`pypi` approval, published directly from top-level `publish.yml` by OIDC with
621608
attestations, and passed public registry verification.
@@ -640,15 +627,6 @@ authorized.
640627

641628
### Completed release-claim maintenance evidence
642629

643-
<!-- cometapi-release-evidence:start version=0.1.3 date=2026-07-30 -->
644-
<!-- cometapi-release-identity tag=v0.1.3 commit=45429f373bbd11314ec43ba81904fdbb78db2522 workflow-run=30550536000 wheel-sha256=9ac2f8062a8554943649bffd7ec859fc90491f76bbe2b0165327722201417d6f sdist-sha256=07ded54606d50f44b689dad38cf93a74e1175370efaa33be84a3c01240d48e66 -->
645-
<!-- cometapi-release-workflow-reference run=30547956809 -->
646-
<!-- cometapi-release-workflow-reference run=30548315785 -->
647-
<!-- cometapi-release-workflow-reference run=30548348489 -->
648-
<!-- cometapi-release-workflow-reference run=30548842807 -->
649-
<!-- cometapi-release-workflow-reference run=30550533622 -->
650-
651-
652630
- Mutable-release-claim [PR #34](https://github.com/cometapi-dev/cometapi-python/pull/34)
653631
removed the published patch number from persistent guidance and extended the
654632
existing document/version checker through pull-request CI, release source and
@@ -672,11 +650,16 @@ authorized.
672650
received exact-head human owner approval, and squash-merged as release commit
673651
`45429f373bbd11314ec43ba81904fdbb78db2522`. The release commit passed
674652
[default-branch CI run 30550533622](https://github.com/cometapi-dev/cometapi-python/actions/runs/30550533622).
653+
654+
<!-- cometapi-release-evidence:start version=0.1.3 date=2026-07-30 -->
655+
<!-- cometapi-release-identity tag=v0.1.3 commit=45429f373bbd11314ec43ba81904fdbb78db2522 workflow-run=30550536000 wheel-sha256=9ac2f8062a8554943649bffd7ec859fc90491f76bbe2b0165327722201417d6f sdist-sha256=07ded54606d50f44b689dad38cf93a74e1175370efaa33be84a3c01240d48e66 -->
656+
675657
- First-attempt
676658
[release run 30550536000](https://github.com/cometapi-dev/cometapi-python/actions/runs/30550536000)
677659
created and independently verified immutable non-draft release
678660
[v0.1.3](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.3)
679-
and its lightweight tag at the exact release commit, rebuilt and
661+
and its lightweight tag at release commit
662+
`45429f373bbd11314ec43ba81904fdbb78db2522`, rebuilt and
680663
clean-installed both artifacts, passed the bounded four-request exact-release
681664
live suite, received protected `pypi` approval, published directly from
682665
top-level `publish.yml` by OIDC with attestations, and passed public registry

0 commit comments

Comments
 (0)