Skip to content

Commit c5b422c

Browse files
authored
fix: prevent stale mutable release claims (#34)
1 parent 0f71cca commit c5b422c

13 files changed

Lines changed: 970 additions & 62 deletions

.github/workflows/ci.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,8 @@ jobs:
4444
run: uv run pyright
4545
- name: Run offline unit and contract tests
4646
run: uv run pytest -m "not live"
47-
- name: Check release version agreement
48-
run: uv run python scripts/check_version.py --require-changelog
49-
- name: Check canonical public content and identity
50-
run: uv run python scripts/check_version.py --require-public-preview-docs
47+
- name: Check version agreement and durable public content
48+
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
5149
- name: Scan for credentials and scope mistakes
5250
run: uv run python scripts/check_secrets.py
5351
- name: Validate workflow syntax with checksum-pinned actionlint

AGENTS.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.
5050

5151
## Current milestone: Stable 0.1
5252

53-
Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
54-
maintenance release, and its release and registry trust chain has been
55-
verified. Do not begin 0.2 provider adapters without a separate maintainer
56-
request that authorizes that milestone.
53+
Verified stable `0.1.x` maintenance releases are available from PyPI. The
54+
public PyPI registry is authoritative for the latest published version.
55+
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
56+
current repository candidate and must agree; a candidate must not be described
57+
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
58+
versions only as dated immutable historical evidence. Do not begin 0.2 provider
59+
adapters without a separate maintainer request that authorizes that milestone.
5760

5861
Private Remote Validation, the sanitized first history, private initialization,
5962
pre-visibility closeout, public visibility configuration, Public Preview,
@@ -174,6 +177,12 @@ Post-stable invariants:
174177
release-link text in both source and built artifact metadata, and require
175178
each built long description to exactly match the source README. Post-release
176179
evidence changes must not rewrite README release state.
180+
11. Never encode a mutable "latest/current published patch version" in
181+
persistent guidance or current-state documentation. Query public PyPI when
182+
current registry state is required. Keep candidate version truth in
183+
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
184+
versions only in immutable historical evidence. The document/version
185+
checker must fail before merge or release when this boundary is violated.
177186

178187
## Repository independence
179188

@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
270279
uv run ruff format --check src tests scripts
271280
uv run pyright
272281
uv run pytest -m "not live"
273-
uv run python scripts/check_version.py --require-changelog
282+
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
274283
uv run python scripts/check_secrets.py
275284
uv run python scripts/check_workflows.py
276285
rm -rf dist

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
2626
uv run ruff format --check src tests scripts
2727
uv run pyright
2828
uv run pytest -m "not live"
29-
uv run python scripts/check_version.py --require-changelog
29+
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
3030
uv run python scripts/check_secrets.py
3131
uv run python scripts/check_workflows.py
3232
rm -rf dist

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
180180
uv run ruff format --check src tests scripts
181181
uv run pyright
182182
uv run pytest -m "not live"
183-
uv run python scripts/check_version.py --require-changelog
183+
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
184184
uv run python scripts/check_secrets.py
185185
uv run python scripts/check_workflows.py
186186
rm -rf dist

RELEASING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
8383
uv run ruff format --check src tests scripts
8484
uv run pyright
8585
uv run pytest -m "not live"
86-
uv run python scripts/check_version.py --require-changelog
86+
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
8787
uv run python scripts/check_secrets.py
8888
uv run python scripts/check_workflows.py
8989
rm -rf dist

ROADMAP.md

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

3-
Status: `0.1.2` stable maintenance released
3+
Status: Stable `0.1.x` maintenance active
44
Last updated: 2026-07-30
55
Repository contract: this roadmap is self-contained.
66
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
1212
to CometAPI while preserving official request, response, error, retry, timeout,
1313
sync, async, and streaming behavior.
1414

15-
Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
16-
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
17-
for the sanitized public repository. Protected repository configuration,
18-
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
19-
provenance, digest comparison, and public-registry smoke provide separate
20-
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
21-
0.2 scope.
15+
Private Remote Validation, Public Preview, the functional Registry Alpha, the
16+
first stable release, and verified `0.1.x` maintenance releases are complete
17+
for the sanitized public repository and recorded below as immutable evidence.
18+
Protected repository configuration, public default-branch CI, exact-release
19+
live smoke, PyPI OIDC publication, provenance, digest comparison, and
20+
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
21+
is active; no maintenance release activates 0.2 scope.
2222
Support and release claims remain limited to the evidence defined in this
2323
roadmap and `COMPATIBILITY.md`.
2424

0 commit comments

Comments
 (0)