Skip to content

fix(release): restore the unreleased 0.6.0 train#297

Open
Nelson Spence (Fieldnote-Echo) wants to merge 5 commits into
mainfrom
codex/restore-v0.6.0
Open

fix(release): restore the unreleased 0.6.0 train#297
Nelson Spence (Fieldnote-Echo) wants to merge 5 commits into
mainfrom
codex/restore-v0.6.0

Conversation

@Fieldnote-Echo

@Fieldnote-Echo Fieldnote-Echo commented Jul 19, 2026

Copy link
Copy Markdown
Member

What changed

  • restore every lockstep Rust and Python package version from the erroneous unreleased 0.7.0 metadata to 0.6.0
  • restore the README dependency example and threat-model status to 0.6.0
  • collapse the two unpublished changelog sections into one 0.6.0 release section
  • state the public 0.5.x manifest-v1 compatibility break accurately
  • replace the stale OrdinalDB branch-specific un-patch note with the real root plus standalone-consumer release gate
  • regenerate the root and fuzz lockfiles at 0.6.0

Why

Neither 0.6.0 nor 0.7.0 has been published or tagged; registries still serve 0.5.0. The schema-v2 and typed-verification work is unreleased work for the intended 0.6.0 train, so the later 0.7.0 release metadata was premature.

This is a forward metadata correction. It deliberately keeps the schema-v2 implementation and all post-0.5.0 hardening; it does not rewrite history or back-release an older commit.

Impact

Downstream consumers such as OrdinalDB can continue targeting the intended ordvec = "0.6.0" and ordvec-manifest = "0.6.0" APIs and schema-v2 behavior once the release is published.

Validation

  • python3 tests/release_publish_invariants.py
  • bash tests/release_signed_release_invariants.sh
  • cargo package -p ordvec --locked --allow-dirty
  • core tests: default, experimental, test-utils, and no-default-features
  • manifest tests: no-default-features and all-features
  • FFI build and tests
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo fmt --all -- --check
  • cargo deny check

@codecov

codecov Bot commented Jul 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

fix(release): restore unreleased 0.6.0 metadata (was 0.7.0)

🐞 Bug fix ⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Revert all workspace crate/binding versions and lockfiles from 0.7.0 to 0.6.0.
• Normalize changelog/docs to represent 0.6.0 as next unreleased release.
• Adjust releasing docs for downstream patch removal and lockfile regeneration gates.
Diagram

graph TD
  A["Release metadata (0.6.0)"] --> B["Rust crates (Cargo.toml)"] --> C["Rust lockfiles (Cargo.lock)"]
  A --> D["Python packages (pyproject.toml)"] --> E["Python __version__"]
  A --> F["Docs (README/CHANGELOG/etc)"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Automate version propagation (single source of truth)
  • ➕ Reduces risk of future Rust/Python/doc version skew
  • ➕ Makes release-train corrections less error-prone
  • ➕ Can be enforced in CI via a single invariant check
  • ➖ Requires adding/maintaining a release script or tooling
  • ➖ May need repository-wide conventions for where version is sourced
2. Use cargo-workspace versioning + generate Python versions at build time
  • ➕ Rust crates can share one workspace version cleanly
  • ➕ Python version can be derived during build to avoid duplicated literals
  • ➖ May complicate Python packaging expectations (static version in metadata)
  • ➖ Could require maturin/packaging changes and extra CI coverage

Recommendation: For this one-off correction, the PR’s direct edits are the safest and clearest approach (they match what registries will publish). Consider a follow-up to introduce a single version source plus CI invariants to prevent a future accidental bump to an unreleased train across Cargo.toml/pyproject/version/docs.

Files changed (15) +48 / -52

Documentation (4) +32 / -36
CHANGELOG.mdCollapse unreleased notes under 0.6.0 and clarify v1 break +24/-29

Collapse unreleased notes under 0.6.0 and clarify v1 break

• Renames the unreleased section from 0.7.0 to 0.6.0 and merges the previously split 0.6.0/0.7.0 content. Updates the manifest v2 breaking-change wording to correctly describe the 0.5.x manifest-v1 compatibility break.

CHANGELOG.md

README.mdRestore dependency example to ordvec = "0.6" +1/-1

Restore dependency example to ordvec = "0.6"

• Updates the public Cargo dependency snippet to reference the intended 0.6 series instead of 0.7.

README.md

RELEASING.mdUpdate downstream un-patch instructions for OrdinalDB release gate +6/-5

Update downstream un-patch instructions for OrdinalDB release gate

• Replaces the branch-specific un-patch note with guidance covering both OrdinalDB’s root workspace and standalone consumers. Adds explicit steps to remove all patches, regenerate each lockfile, and confirm crates.io consumption post-publish.

RELEASING.md

THREAT_MODEL.mdSet threat model status to v0.6.0 +1/-1

Set threat model status to v0.6.0

• Updates the threat model status banner from v0.7.0 to v0.6.0 to reflect the restored release train metadata.

THREAT_MODEL.md

Other (11) +16 / -16
Cargo.lockRestore workspace crate versions to 0.6.0 in root lockfile +5/-5

Restore workspace crate versions to 0.6.0 in root lockfile

• Updates locked package entries for ordvec, ordvec-ffi, ordvec-manifest, and Python binding crates from 0.7.0 back to 0.6.0. Keeps the resolved dependency graph consistent with the restored release train.

Cargo.lock

Cargo.tomlSet ordvec crate version back to 0.6.0 +1/-1

Set ordvec crate version back to 0.6.0

• Changes the root crate version from 0.7.0 to 0.6.0 to match the intended unreleased release train.

Cargo.toml

Cargo.lockRestore ordvec version to 0.6.0 in fuzz lockfile +1/-1

Restore ordvec version to 0.6.0 in fuzz lockfile

• Adjusts the fuzz workspace lockfile entry for ordvec from 0.7.0 back to 0.6.0 to keep fuzz builds aligned with the release train.

fuzz/Cargo.lock

Cargo.tomlSet ordvec-ffi crate version back to 0.6.0 +1/-1

Set ordvec-ffi crate version back to 0.6.0

• Restores the ordvec-ffi crate’s package version from 0.7.0 to 0.6.0 for lockstep release alignment.

ordvec-ffi/Cargo.toml

Cargo.tomlSet ordvec-manifest Python binding crate version to 0.6.0 +1/-1

Set ordvec-manifest Python binding crate version to 0.6.0

• Restores the Rust-side maturin crate version from 0.7.0 to 0.6.0.

ordvec-manifest-python/Cargo.toml

pyproject.tomlRestore Python package version to 0.6.0 +1/-1

Restore Python package version to 0.6.0

• Updates the published Python package metadata version from 0.7.0 to 0.6.0.

ordvec-manifest-python/pyproject.toml

__init__.pySync ordvec_manifest __version__ to 0.6.0 +1/-1

Sync ordvec_manifest version to 0.6.0

• Updates the runtime-exposed __version__ constant to match the restored 0.6.0 package metadata.

ordvec-manifest-python/python/ordvec_manifest/init.py

Cargo.tomlRestore ordvec-manifest version and ordvec dependency to 0.6.0 +2/-2

Restore ordvec-manifest version and ordvec dependency to 0.6.0

• Sets ordvec-manifest’s crate version back to 0.6.0 and aligns its path dependency constraint on ordvec to 0.6.0.

ordvec-manifest/Cargo.toml

Cargo.tomlSet ordvec Python binding crate version back to 0.6.0 +1/-1

Set ordvec Python binding crate version back to 0.6.0

• Restores the Rust-side maturin crate version from 0.7.0 to 0.6.0.

ordvec-python/Cargo.toml

pyproject.tomlRestore ordvec Python package version to 0.6.0 +1/-1

Restore ordvec Python package version to 0.6.0

• Updates the published Python package metadata version from 0.7.0 to 0.6.0.

ordvec-python/pyproject.toml

__init__.pySync ordvec Python __version__ to 0.6.0 +1/-1

Sync ordvec Python version to 0.6.0

• Updates the runtime-exposed __version__ constant to match the restored 0.6.0 package metadata.

ordvec-python/python/ordvec/init.py

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

* fix(manifest): harden canonical writes for v0.6.0

* fix(manifest): close canonical write races

* fix(manifest): canonicalize equivalent JSON numbers

* test(manifest): make inode swap deterministic

* fix(manifest): normalize typed signed zero

* Harden v0.6.0 release gates and first-run surfaces (#299)

* ci: harden v0.6 release gates

* docs: polish v0.6.0 first-run surfaces

* fix(release): fail closed across audit gaps

* fix(ci): configure fuzz advisory manifest once
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.

2 participants