Repository navigation
release: 0.9.0 (the r1007 network) - #24
Conversation
Breaking (0.x minor): the vendored federation contract and the expected genesis are r1007's (#23), and an r1006 node is refused. - pyproject.toml, citrate_sdk.__version__ and the citrate-labs-sdk entry in uv.lock: 0.8.0 to 0.9.0. - CHANGELOG [0.9.0]. - README now names the r1007 book and genesis. Tests: pytest 966 passed, 8 skipped, including test_publish_metadata (__version__ equals the pyproject version) and the r1007 network guard. Not tagged or released: the lead tags after merge. Signed-off-by: Larry Klosowski <larryklosowski@proton.me> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019cgBjDQkjCEEZwG1zJNnQi
BerryManifold
left a comment
There was a problem hiding this comment.
Automated Codex static review of 87d6e10fd309e66c0a3cd85d038c657f3c06effb is complete. Result: clean; details retained privately. Details and coverage limits are recorded in the project's private review log. No tests were executed by this reviewer. Both account submissions represent the same Codex review, not independent reviews.
Matr0xshka
left a comment
There was a problem hiding this comment.
Automated Codex static review of 87d6e10fd309e66c0a3cd85d038c657f3c06effb is complete. Result: clean; details retained privately. Details and coverage limits are recorded in the project's private review log. No tests were executed by this reviewer. Both account submissions represent the same Codex review, not independent reviews.
BerryManifold
left a comment
There was a problem hiding this comment.
MAC independent reviewer agent, not Codex, not DGX. Reviewed head 87d6e10.
- No stale 0.8.0 in anything published:
pyproject.tomlversionandcitrate_sdk/__init__.py__version__are 0.9.0. The only0.8.0left in the tree are the unrelated dependencieseth-hashandeth-keysin uv.lock, plus CHANGELOG history. - Lockfile:
uv.lock's self entrycitrate-labs-sdk(editable) is 0.9.0, the only lock change.uv-lock-checkcovers consistency. - Publish gates:
tests/test_publish_metadata.pyasserts__version__equals the built distribution's version, which fails the release's test job on any drift.- The manual
workflow_dispatchpath additionally refuses artifacts that are notcitrate_labs_sdk-<typed version>. - A GitHub release publishes the built
pyprojectversion (0.9.0).
- README and CHANGELOG: r1007 wording, accurate.
P3: the release: published path does not compare the release tag to pyproject. Tag the release exactly v0.9.0.
CI is green. No P1/P2.
Matr0xshka
left a comment
There was a problem hiding this comment.
MAC independent reviewer agent, not Codex, not DGX. Reviewed head 87d6e10.
- Versions are consistent. 0.8.0 becomes 0.9.0 in
pyproject.toml(citrate-labs-sdk),citrate_sdk/__init__.py__version__, and the package's own entry inuv.lock. The remaining0.8.0strings inuv.lockareeth-hashandeth-keys. - The CHANGELOG is accurate.
v0.8.0..mainis exactly #23 (the r1007 contract), and the entry describes it. The named APIs exist (CitrateClient,pinned_send,verify_wallet_address_on_chain,WrongNetworkError), and the genesis and the 28 post-genesis contracts match #579. The README is updated to r1007. - Release:
publish.ymlruns onrelease: published, or on dispatch frommainwith an exactpublish_version. It runs test, then build (python -m build,twine check, the key-share wheel tripwire), then publishes the singlecitrate-labs-sdkdist through PyPI OIDC. A GitHub Releasev0.9.0on this commit publishescitrate-labs-sdk 0.9.0, and nothing else.
Note for the release step: this workflow does not run on a bare v* tag push. The tag needs a GitHub Release published from it, unlike sdk-js.
P3, pre-existing: the built-version check runs only on the dispatch path. On the release path nothing compares the release tag with the built version. Adding WANT=${GITHUB_REF_NAME#v} for release events would close that.
No P1. CI is green. Approved.
This is the version bump for the r1007 release, as the owner approved. PyPI currently has
citrate-labs-sdk0.8.0.0.8.0 to 0.9.0, a minor bump: the change is breaking, and the package is 0.x. #23 moved the vendored federation contract and the expected genesis to r1007, so the client and managers refuse an r1006 node.
pyproject.toml,citrate_sdk.__version__and thecitrate-labs-sdkentry inuv.lockgo to0.9.0.CHANGELOG.mdgets[0.9.0] - 2026-11-12: the r1007 network, covering the network change and the moved post-genesis addresses.README.md: the network text names the r1007 book (citrate-chain rootcontracts/addresses/40204.json) and its genesis.Tests: pytest 966 passed, 8 skipped. That includes
test_publish_metadata, which checks that__version__equals the pyproject version, and the r1007 network guard. The local pre-push gate passed through the normal hook.Not tagged or released. The lead tags after merge.
🤖 Generated with Claude Code
https://claude.ai/code/session_019cgBjDQkjCEEZwG1zJNnQi