Skip to content

Commit f39b4dc

Browse files
tensornullCometAPI
andauthored
docs: record Registry Alpha release (#18)
Co-authored-by: CometAPI <support@cometapi.com>
1 parent 31b6890 commit f39b4dc

7 files changed

Lines changed: 154 additions & 84 deletions

File tree

AGENTS.md

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,31 @@ proves only its own evidence layer. Never invent or mock missing evidence.
4848
Never reset, rebase, discard work, force-update refs, delete or recreate an
4949
existing `dev`, or push `dev` to recover. Report the exact state instead.
5050

51-
## Current milestone: Public Preview
51+
## Current milestone: Registry Alpha
5252

53-
Public Preview ready; `0.1.0a1` Registry Alpha awaits explicit authorization.
53+
Registry Alpha is complete: `cometapi==0.1.0a1` is publicly available and its
54+
release and registry trust chain has been verified.
5455

5556
Private Remote Validation, the sanitized first history, private initialization,
56-
pre-visibility closeout, public visibility configuration, and Public Preview
57-
readiness are completed historical steps and must not be repeated. The
58-
canonical repository is public with protected branch and version-tag rules,
59-
Private Vulnerability Reporting, immutable releases, protected environments,
60-
public default-branch CI, and one authorized protected live-smoke result. No
61-
tag, release, PyPI publication, or Registry Alpha claim exists.
57+
pre-visibility closeout, public visibility configuration, Public Preview, and
58+
the first Registry Alpha release are completed historical steps and must not be
59+
repeated. The canonical repository is public with protected branch and
60+
version-tag rules, Private Vulnerability Reporting, immutable releases,
61+
protected environments, public default-branch CI, and protected release and
62+
registry evidence.
63+
64+
The accepted release evidence is:
65+
66+
| Field | Value |
67+
| --- | --- |
68+
| Release commit | `31b68904141489ca04932edbf305ccf88af09372` |
69+
| Recovery tag | `v0.1.0-alpha.1+recovery.1` |
70+
| Tag object | `fdc4a6cce31f4534f83903f3f95e7757a4d4049f` |
71+
| GitHub release | `https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.0-alpha.1%2Brecovery.1` |
72+
| Release workflow | `https://github.com/cometapi-dev/cometapi-python/actions/runs/30261746138` |
73+
| PyPI release | `https://pypi.org/project/cometapi/0.1.0a1/` |
74+
| Wheel SHA256 | `a6820347317943ca22f7632acbe354dd992f31a122a6172dfe45b57960e3a093` |
75+
| Source SHA256 | `98d86829ef14771e8b7ec180d452c6638289f49c14a39b7207be5c47cb64cde7` |
6276

6377
The accepted identity is:
6478

@@ -74,7 +88,7 @@ The accepted identity is:
7488
| Support and conduct | `support@cometapi.com` |
7589
| Security | `https://github.com/cometapi-dev/cometapi-python/security/advisories/new` |
7690

77-
At the Registry Alpha authorization gate:
91+
Post-alpha invariants:
7892

7993
1. Treat the dependency dispositions recorded in `ROADMAP.md` as authoritative
8094
for the listed pull requests. Process newly opened dependency pull requests
@@ -88,10 +102,13 @@ At the Registry Alpha authorization gate:
88102
4. Treat the recorded public rules, security reporting, immutable releases, and
89103
protected environments as readiness invariants. Any drift invalidates the
90104
readiness claim until it is explicitly authorized, restored, and verified.
91-
5. Stop before configuring the PyPI Trusted Publisher, changing release
92-
documentation, enabling Release Please, creating a tag or release, making a
93-
live release request, or publishing to PyPI unless the current maintainer
94-
request separately authorizes the applicable action.
105+
5. Keep the `pypi` environment approval assigned to the current release
106+
approver with self-review allowed; the reviewer is GitHub configuration and
107+
must not be hardcoded in repository files.
108+
6. Treat the recovery tag, GitHub release, and PyPI distributions as immutable.
109+
Any later live request, tag, release, Trusted Publisher change, publication,
110+
or other registry mutation requires separate explicit maintainer
111+
authorization.
95112

96113
## Repository independence
97114

@@ -259,14 +276,13 @@ passing. The gate must report every detected violation and fail until canonical
259276
identity, contacts, repository metadata, and durable public-facing content are
260277
complete.
261278

262-
Before preparing Registry Alpha, re-audit that `main` still requires pull
279+
Before preparing any later release, re-audit that `main` still requires pull
263280
requests and blocking CI with zero required approvals, force pushes and deletion
264281
remain blocked, administrator bypass remains emergency-only, version tags remain
265282
protected, immutable releases and Private Vulnerability Reporting remain
266283
enabled, and the `live-smoke` and `pypi` environments retain their reviewed
267-
protection boundaries. The one-time Public Preview live opt-in was reset to
268-
false after its successful run; enable it again only for a separately authorized
269-
monitoring request.
284+
protection boundaries. `LIVE_SMOKE_ENABLED` is `false`; enable it only for a
285+
separately authorized monitoring request.
270286

271287
Verification reports must list exact commands and outcomes, failed or
272288
unavailable checks, and unverified remote, live, and registry evidence as

ARCHITECTURE.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,14 @@ local mocked/package evidence
119119
-> public registry digest, provenance, install, import, and mocked smoke
120120
```
121121

122+
This complete trust chain executed successfully in
123+
[release workflow run 30261746138](https://github.com/cometapi-dev/cometapi-python/actions/runs/30261746138)
124+
for release commit `31b68904141489ca04932edbf305ccf88af09372`, recovery tag
125+
`v0.1.0-alpha.1+recovery.1`, and PyPI version `0.1.0a1`. The public wheel and
126+
source distribution matched the retained pre-publication digests, Trusted
127+
Publisher provenance was verified, and the clean registry install/import/mocked
128+
smoke passed.
129+
122130
The scheduled/manual default-branch smoke is an operational canary only; it
123131
does not prove the release commit. `COMETAPI_KEY` is exposed only to the
124132
protected exact-release live job. OIDC permission is exposed only to the

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ automation.
66

77
## [Unreleased]
88

9-
No user-visible changes are currently recorded beyond the initial alpha scope.
9+
### Changed
10+
11+
- Release documentation now records completed Registry Alpha publication,
12+
provenance, digest, clean-install, import, and mocked-call verification.
1013

1114
## [0.1.0a1] - 2026-07-27
1215

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Contributing to the CometAPI Python SDK
22

3-
Thank you for helping improve the SDK. The repository is preparing the
4-
unpublished `0.1.0a1` Registry Alpha candidate. Contributions must stay within
5-
the supported 0.1 scope described in `README.md`, `ROADMAP.md`, and
6-
`COMPATIBILITY.md`. The canonical repository is
3+
Thank you for helping improve the SDK. The repository has released the
4+
`0.1.0a1` Registry Alpha. Contributions must stay within the supported 0.1
5+
scope described in `README.md`, `ROADMAP.md`, and `COMPATIBILITY.md`. The
6+
canonical repository is
77
<https://github.com/cometapi-dev/cometapi-python>.
88

99
## Development setup

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# CometAPI Python SDK
22

3-
> **Pre-release:** `0.1.0a1` is approved for PyPI publication. Its API may
4-
> change before `0.1.0`.
3+
> **Pre-release:** `0.1.0a1` is available from PyPI. Its API may change before
4+
> `0.1.0`.
55
66
`cometapi` is a thin Python adapter over the official OpenAI SDK for the
77
OpenAI-compatible CometAPI endpoint. It changes the default API key and base
@@ -36,9 +36,10 @@ Install the exact alpha from PyPI with:
3636
python -m pip install --pre 'cometapi==0.1.0a1'
3737
```
3838

39-
Check the repository releases and
40-
[PyPI project page](https://pypi.org/project/cometapi/) for current package
41-
availability.
39+
See the immutable
40+
[GitHub prerelease](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.0-alpha.1%2Brecovery.1)
41+
and exact [PyPI release](https://pypi.org/project/cometapi/0.1.0a1/) for the
42+
published artifact.
4243

4344
## Authentication and configuration
4445

RELEASING.md

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ reason to repeat initialization.
6161

6262
The fail-closed content and identity gate was required before the historical
6363
first remote push and passed again before Public Preview readiness. Keep running
64-
it before Registry Alpha preparation and after public-document changes:
64+
it before later releases and after public-document changes:
6565

6666
```bash
6767
uv run python scripts/check_version.py --require-public-preview-docs
@@ -201,38 +201,31 @@ read-only by default; only the publishing job receives `id-token: write`.
201201
Publishing uses a protected `pypi` environment and concurrency control.
202202
Arbitrary-branch and manual publication are forbidden.
203203

204-
## Alpha release checklist
204+
## Alpha release checklist (completed)
205205

206206
For the current canonical repository, private initialization, pre-visibility
207207
closeout, public visibility, repository protection, environments, public
208-
default-branch CI, and the one-time Public Preview live smoke are completed
209-
historical prerequisites. Do not recreate or repeat them. The next external
210-
actions prepare Registry Alpha and require separate explicit authorization.
211-
This checklist defines dependency order, not standing permission: every remote
212-
mutation, live request, release action, and registry action must be explicitly
213-
authorized in the current maintainer request; stop otherwise.
214-
215-
Before continuing, re-audit the recorded Public Preview invariants: protected
216-
`main` and version tags, immutable releases, Private Vulnerability Reporting,
217-
the `live-smoke` and `pypi` environment boundaries, `LIVE_SMOKE_ENABLED=false`,
218-
absent `CODEOWNERS`, and disabled Release Please. Maintainers then execute the
219-
remaining authorized steps in order:
220-
221-
1. Confirm that the company-managed PyPI identity `dev@cometapi.com` owns or can
222-
create the unscoped PyPI package `cometapi`, and configure the
223-
Trusted Publisher for the exact repository, workflow, and `pypi`
224-
environment.
225-
2. Confirm the protected `COMETAPI_KEY`, the approved `COMETAPI_LIVE_MODEL`,
226-
and explicit authorization for the documented four-request, 16-token, 30-second,
227-
concurrency-one, stop-on-failure budget before creating the GitHub
228-
prerelease.
229-
3. Replace the pre-release availability notice and source-installation text in
230-
`README.md` with the release-neutral, maintainer-confirmed sentence
231-
`0.1.0a1` is approved for PyPI publication.” Date the `0.1.0a1` heading in
232-
`CHANGELOG.md`, remove its candidate/unpublished wording, and rerun every
208+
default-branch CI, the one-time Public Preview live smoke, and Registry Alpha
209+
are completed historical steps. Do not recreate or repeat them. This checklist
210+
records the dependency order that was executed; it grants no standing
211+
permission for later remote mutations, live requests, release actions, or
212+
registry actions.
213+
214+
The recorded Public Preview invariants were re-audited before release:
215+
protected `main` and version tags, immutable releases, Private Vulnerability
216+
Reporting, the `live-smoke` and `pypi` environment boundaries,
217+
`LIVE_SMOKE_ENABLED=false`, absent `CODEOWNERS`, and disabled Release Please.
218+
Maintainers then completed these steps in order:
219+
220+
1. Confirmed company-managed PyPI ownership and configured the Trusted
221+
Publisher for the exact repository, workflow, and `pypi` environment.
222+
2. Confirmed the protected `COMETAPI_KEY`, approved live model, and explicit
223+
authorization for the documented four-request, 16-token, 30-second,
224+
concurrency-one, stop-on-failure budget.
225+
3. Finalized the dated changelog and prerelease documentation and reran every
233226
candidate verification gate, including
234227
`uv run python scripts/check_version.py --expected 0.1.0a1 --require-changelog --require-releasable-docs`.
235-
4. Review the exact candidate and create the immutable SemVer recovery tag
228+
4. Reviewed the exact candidate and created the immutable SemVer recovery tag
236229
`v0.1.0-alpha.1+recovery.1` and corresponding GitHub prerelease. GitHub
237230
permanently reserved `v0.1.0-alpha.1` after its immutable release reached
238231
OIDC publication but failed before PyPI accepted any distribution. The
@@ -241,12 +234,11 @@ remaining authorized steps in order:
241234
for later releases. Keep Release Please disabled until a separate reviewed
242235
and tested `last-release-sha` bridge establishes this recovery commit as its
243236
previous-release boundary.
244-
5. Allow the release workflow to prove `immutable=true`, resolve the tag to the
245-
checked-out commit, verify that commit is reachable from the protected
246-
default branch, and run the bounded protected live suite against that exact
247-
commit. Only successful completion makes the protected PyPI approval
248-
eligible; approve that job after reviewing its retained artifact digests.
249-
6. Verify publication, provenance, public artifact identity and digest, clean
237+
5. The release workflow proved `immutable=true`, resolved the tag to the
238+
checked-out commit, verified that commit was reachable from the protected
239+
default branch, and ran the bounded protected live suite against that exact
240+
commit before the protected PyPI approval was granted.
241+
6. Verified publication, provenance, public artifact identity and digest, clean
250242
installation, import, and the public-registry mocked-call smoke.
251243

252244
Missing credentials, model/budget approval, environments, publisher
@@ -261,6 +253,28 @@ The version checker must normalize the SemVer tag and PEP 440 package spelling
261253
to the same `0.1.0a1` value across the tag, release manifest, package metadata,
262254
changelog, GitHub release, wheel, and source distribution.
263255

256+
### Completed Registry Alpha evidence
257+
258+
- Metadata [PR #16](https://github.com/cometapi-dev/cometapi-python/pull/16)
259+
merged as `6344c2d0e2e975360b42c887275c1950b82918ee`; recovery contract
260+
[PR #17](https://github.com/cometapi-dev/cometapi-python/pull/17) merged as
261+
release commit `31b68904141489ca04932edbf305ccf88af09372`.
262+
- Annotated tag `v0.1.0-alpha.1+recovery.1` has tag object
263+
`fdc4a6cce31f4534f83903f3f95e7757a4d4049f`, peels to the release commit,
264+
and identifies the
265+
[immutable GitHub prerelease](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.0-alpha.1%2Brecovery.1).
266+
- [Release workflow run 30261746138](https://github.com/cometapi-dev/cometapi-python/actions/runs/30261746138)
267+
passed the exact artifact gates, authorized protected live smoke, protected
268+
environment approval, PyPI OIDC Trusted Publishing, provenance check, public
269+
digest comparison, clean registry installation, imports, and mocked-call
270+
smoke.
271+
- The exact [PyPI release](https://pypi.org/project/cometapi/0.1.0a1/) has wheel
272+
SHA256 `a6820347317943ca22f7632acbe354dd992f31a122a6172dfe45b57960e3a093`
273+
and source-distribution SHA256
274+
`98d86829ef14771e8b7ec180d452c6638289f49c14a39b7207be5c47cb64cde7`.
275+
- `LIVE_SMOKE_ENABLED=false`. Release Please remains disabled until a separate
276+
reviewed and tested `last-release-sha` bridge is merged.
277+
264278
## Stable release sequence
265279

266280
```text

0 commit comments

Comments
 (0)