Skip to content

Release v0.9.0 - #173

Merged
xeonvs merged 1 commit into
mainfrom
release/v0.9.0
Sep 3, 2026
Merged

Release v0.9.0#173
xeonvs merged 1 commit into
mainfrom
release/v0.9.0

Conversation

@xeonvs

@xeonvs xeonvs commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Release scope

Prepare stable toolkit 0.9.0 for the exact authorized issue set:

The stable Release workflow owns issue and milestone closure; this PR deliberately uses no closing keywords.

Reviewed implementation evidence

  • Feature PR Prepare v0.9.0 unprotected-target integrity release #171 reviewed head: 3441e8a77d71b026db89a896d6374f6cb0a09b99
  • Feature squash merge: 3c7e38c08a48c9af1d0b0c5e10ecf0ac8b5eacc3
  • Development publication: run 33732297187, version 0.8.8.dev83
  • Development wheel SHA-256: 706dfce3991a00b9e93aa65f19bb30baa6b323eab57d8c449d170310a63bbfaf
  • Development sdist SHA-256: b22e1fa5eacade47a130e21474442034aee28c93b5f6880a652981efb353de99
  • Codex Security scan cecd81ce-bc01-42eb-bedf-a4a2a44a096c: zero reportable findings; not rerun
  • OCR 1.11.3 qualification: run 33725971286, evidence SHA-256 6ad0e1f607b2ddcbb9e7b25e4432d6102ec22d7ef6847c2858c8fb22d38cc0f2

Repository release mutations

  • set stable/next versions to 0.9.0 / 0.9.1
  • bind deterministic source epoch 1788423271 and exact sorted authorization issues [167,168,169,170,172]
  • render the complete Towncrier section and remove consumed fragments
  • pin the published GitLab example and configuration reference to toolkit 0.9.0
  • archive the repository-complete plan with external stable delivery pending and return PLANS.md to its inactive template

Validation

  • complete quality gate: 1,487 tests plus 408 subtests, 86.38% coverage, all scoped floors passed
  • focused release/documentation contracts: 71 passed
  • OCR compatibility manifest validation, frozen Ruff format, dependency audit, pinned Gitleaks, and diff checks passed
  • two source-epoch-controlled builds are byte-identical and pass Twine
  • stable build hashes: wheel fda7a7c5a09e836f20692ff20f1449ee8114749da0be248ff24680367e0d9f60; sdist 720825c10dcdc38e403b66c18ab17dd9b2fd8a36919a96973634b5ed08fd391c
  • archive privacy and clean wheel/sdist installs with ocr-ci --help passed on Python 3.12, 3.13, and 3.14

External handoff

Stable TestPyPI/PyPI publication, registry and Release byte equality, PEP 740 provenance, GitHub attestations, annotated tag, immutable five-asset GitHub Release, release receipt validation, supported-Python readback installs, issue receipts/closure, milestone closure, and branch cleanup remain pending until this exact reviewed release head is squash-merged.

@xeonvs
xeonvs merged commit 39ff90a into main Sep 3, 2026
13 checks passed
@xeonvs
xeonvs deleted the release/v0.9.0 branch September 3, 2026 08:33
@xeonvs
xeonvs deployed to testpypi-public-disclosure September 3, 2026 08:36 — with GitHub Actions Active
@xeonvs
xeonvs deployed to pypi-production September 3, 2026 08:37 — with GitHub Actions Active
xeonvs added a commit that referenced this pull request Sep 3, 2026
## Goal

Reconcile repository truth after completed stable v0.9.0 publication.
The archived v0.9.0 plan still said `external stable delivery pending`,
although the immutable Release, tag, Actions receipts, issue closure,
milestone closure, branch cleanup, and synchronized `main` already
existed.

This is a `no-release` documentation/process correction in the same PR.
It does not modify toolkit runtime, package or next-release versions,
OCR compatibility, dependencies, workflows, tags, Release assets,
registry artifacts, attestations, provenance, or the immutable receipt.

## Delivered

1. Records the exact external v0.9.0 closure evidence in the current
archived plan and index.
2. Adds `.release-reconciled-version=0.9.0` as the single
machine-readable external-closure marker.
3. Defines two valid lifecycle states: a release PR has a newer
`.release-version` and a pending current archive section; its
post-publication `no-release` closure PR aligns both markers and
completes that section.
4. Adds one focused existing-suite contract for marker, current archive
status, and index consistency.
5. Returns `PLANS.md` to its inactive template after validation and
self-review.

## Validation

- `uv run pytest -q tests/test_operations_docs.py` — 30 passed
- `uv run pytest -q tests/test_distribution_contents.py
tests/test_release_authorization.py` — 26 passed
- focused Ruff check and format check
- `git diff --check`
- `./scripts/gitleaks.sh origin/main HEAD`
- complete range self-review; no runtime/package/workflow changes

## External evidence already read back

- Release PR #173 merge and annotated `v0.9.0` target:
`39ff90a5eb58072f4a5ef5ea6657ba4cadbe1bb0`
- Stable workflow: #33734006965, successful
- Immutable GitHub Release: `v0.9.0`
- Release receipt SHA-256:
`1cc0d0641ea76675f403084c21e0f35b97c611e1ea11ea8328d3af7de6236857`
- Issues #167, #168, #169, #170, and #172: closed by GitHub Actions
receipts
- Milestone #11 `v0.9.0`: closed with 0 open / 5 closed
- `main == origin/main == v0.9.0^{}` at stable release closure; release
branch deleted

No closing keywords are used; the release issues are already closed.
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