From aad61ea9fde14b6b2ab9eccfd5858d39d8d04272 Mon Sep 17 00:00:00 2001 From: Ryan Codrai Date: Tue, 9 Jun 2026 21:54:23 +0100 Subject: [PATCH] Release: turbovec 0.7.1 (Python) + 0.8.1 (Rust crate) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python 0.7.0 -> 0.7.1: two data-safety fixes in the integration wrappers (intra-batch duplicate-id orphaning #90; upsert delete-before-validate #89) plus the macOS source-build fix for the extension (#92). Rust crate 0.8.0 -> 0.8.1: no behavior change — non-behavioral cleanup only (warnings, doc comments), re-released to keep crates.io in sync with the source tree. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 29 +++++++++++++++++++++++++++-- Cargo.lock | 4 ++-- turbovec-python/Cargo.toml | 2 +- turbovec-python/pyproject.toml | 2 +- turbovec/Cargo.toml | 2 +- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e49e6fa4..e7dfec32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,26 @@ appears under each surface it touches. ## [Unreleased] -### turbovec — Python package +## turbovec 0.7.1 (Python package) + turbovec 0.8.1 (Rust crate) — 2026-06-09 + +Bug-fix release. Two data-safety fixes in the Python integration wrappers' +add/upsert paths, plus a source-build fix for the Python extension on macOS. +The Rust crate is functionally unchanged — only non-behavioral cleanups — +but is re-released to keep crates.io in sync with the source tree. No +on-disk format change (still `.tv` / `.tvim` v3). + +### turbovec — Rust crate (current: 0.8.0 → next: 0.8.1) + +#### Changed + +- Internal cleanup only, **no behavior change** — the published crate + behaves identically to 0.8.0. Cleared three build warnings (two unused + bindings in the NEON scoring kernels; the scalar `score_query_into_heap` + fallback is now `cfg`-gated out of `aarch64` builds, where the NEON + kernel is always used and it was dead code) and corrected stale SIMD + module/kernel doc comments. + +### turbovec — Python package (current: 0.7.0 → next: 0.7.1) #### Fixed @@ -32,6 +51,12 @@ appears under each surface it touches. delete is now deferred until after the add succeeds (Agno captures the previous generation's handles and removes them after `insert`). Fixes #89. +- **Plain `cargo build` of the extension now links on macOS.** Building + `turbovec-python` from source failed with "symbol(s) not found for + architecture arm64" because nothing emitted the Python extension-module + linker args (maturin injects them; a bare `cargo build` did not). Added a + `build.rs` calling `pyo3_build_config::add_extension_module_link_args()`. + Prebuilt wheels were unaffected. Fixes #92. ## turbovec 0.7.0 (Python package) + turbovec 0.8.0 (Rust crate) — 2026-05-30 @@ -750,6 +775,6 @@ turbovec 0.4.4 or later. `schema_version` field; loaders reject unknown versions instead of silently misinterpreting bytes. -[Unreleased]: https://github.com/RyanCodrai/turbovec/compare/v0.8.0...HEAD +[Unreleased]: https://github.com/RyanCodrai/turbovec/compare/v0.8.1...HEAD [py-v0.4.2]: https://github.com/RyanCodrai/turbovec/compare/py-v0.4.1...py-v0.4.2 [py-v0.4.1]: https://github.com/RyanCodrai/turbovec/compare/py-v0.4.0...py-v0.4.1 diff --git a/Cargo.lock b/Cargo.lock index a68c345e..1ca39fe8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1134,7 +1134,7 @@ dependencies = [ [[package]] name = "turbovec" -version = "0.8.0" +version = "0.8.1" dependencies = [ "faer", "ndarray", @@ -1148,7 +1148,7 @@ dependencies = [ [[package]] name = "turbovec-python" -version = "0.7.0" +version = "0.7.1" dependencies = [ "numpy", "pyo3", diff --git a/turbovec-python/Cargo.toml b/turbovec-python/Cargo.toml index 8cfc72cd..190092e8 100644 --- a/turbovec-python/Cargo.toml +++ b/turbovec-python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "turbovec-python" -version = "0.7.0" +version = "0.7.1" edition = "2021" rust-version = "1.70" diff --git a/turbovec-python/pyproject.toml b/turbovec-python/pyproject.toml index 166cd434..09bfec1e 100644 --- a/turbovec-python/pyproject.toml +++ b/turbovec-python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "turbovec" -version = "0.7.0" +version = "0.7.1" description = "Fast vector quantization with 2-4 bit compression and SIMD search" readme = "README.md" requires-python = ">=3.9" diff --git a/turbovec/Cargo.toml b/turbovec/Cargo.toml index b48103b6..df85f7b9 100644 --- a/turbovec/Cargo.toml +++ b/turbovec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "turbovec" -version = "0.8.0" +version = "0.8.1" edition = "2021" rust-version = "1.70" description = "Fast vector quantization with 2-4 bit compression and SIMD search"