[codex] Prepare 0.4 release version parity#174
Conversation
|
/agentic_review |
3afb7ed to
9a643ee
Compare
There was a problem hiding this comment.
Code Review
This pull request updates the project version to 0.4.0 across all crates and bindings, documents the lockstep release pipeline for ordvec-manifest, and introduces new release invariant checks in Python and Shell scripts. The review feedback highlights a Python 3.10 compatibility issue with tomllib in the new invariant script, a potential null-pointer panic in the Go bindings, and suggests regex robustness improvements for parsing version strings.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Signed-off-by: Nelson Spence <nelson@projectnavi.ai>
9a643ee to
ef3dc00
Compare
|
/agentic_review |
Code Review by Qodo
1.
|
Review Summary by QodoPrepare 0.4 release version parity with lockstep manifest publishing
WalkthroughsDescription• Bumps all crates and Python bindings to version 0.4.0 for lockstep release • Adds release version-sync invariant covering Cargo manifests, Python package metadata, and documentation • Restructures release workflow to defer manifest crate packaging until core crate publishes to crates.io • Separates core and manifest asset staging into distinct draft-release jobs with independent provenance • Adds Go version/ABI accessors and narrows Python API parity documentation Diagramflowchart LR
A["Version Bump<br/>0.3.0 → 0.4.0"] --> B["Release Invariants<br/>Check"]
B --> C["Build Core Crate"]
C --> D["Attest & Provenance<br/>Core"]
D --> E["Stage Core Assets<br/>release-assets-draft"]
E --> F["Publish Core<br/>publish-crate"]
F --> G["Build Manifest<br/>build-manifest-crate"]
G --> H["Attest & Provenance<br/>Manifest"]
H --> I["Stage Manifest Assets<br/>release-manifest-assets-draft"]
I --> J["Publish Manifest<br/>publish-manifest-crate"]
J --> K["Un-draft Release<br/>publish-github-release"]
File Changes2. ordvec-python/Cargo.toml
|
|
Code review by qodo was updated up to the latest commit ef3dc00 |
Signed-off-by: Nelson Spence <nelson@projectnavi.ai>
…-parity # Conflicts: # tests/release_publish_invariants.py
Summary
This prepares the stacked release work for a lockstep
0.4.0cut across the repo’s published and release-visible surfaces.0.4.0pyproject.toml, Python__version__, manifest dependency version, FFI version, changelog entry, threat-model release status, andfuzz/Cargo.lockordvec-manifestis packaged, attested, staged, and published after the matching coreordvecversion is on crates.ioWhy
A fresh lockstep
ordvec-manifestrelease cannot be packaged normally before the matchingordvecversion exists on crates.io. This branch makes that dependency order explicit: publish and byte-verify the core crate first, then package/attest/stage/publish the manifest crate with normalcargo package --lockedsemantics.Validation
bash tests/release_publish_invariants.shbash tests/release_signed_release_invariants.sh/tmp/ordvec-actionlint/actionlint .github/workflows/release.yml .github/workflows/ci.yml .github/workflows/fuzz.ymlcargo metadata --manifest-path fuzz/Cargo.toml --locked --format-version 1 >/tmp/ordvec-fuzz-metadata.jsoncargo metadata --no-deps --format-version 1 --locked >/tmp/ordvec-metadata.jsoncargo test -p ordvec-manifest --no-default-featurescargo test -p ordvec-manifest --all-featurescargo build -p ordvec-ffi --releaseGOCACHE=/tmp/ordvec-go-build go test -count=1 ./...inordvec-goPYTHONPATH=ordvec-python/python python3 -c 'import ordvec; print(ordvec.__version__)'cargo publish -p ordvec --dry-run --locked --allow-dirtycargo package -p ordvec-manifest --lockedcurrently fails before core0.4.0is on crates.io, then verified the CI wrapper defers only that exact resolver failure to the release workflow afterpublish-crate