From e9be7c1058fffea174522c248bd0550ed8fc6f34 Mon Sep 17 00:00:00 2001 From: Rocky Date: Wed, 2 Sep 2026 14:07:19 +0600 Subject: [PATCH 1/2] chore: bump engine pin v0.3.1 -> v0.3.2 Automated by scripts/bindings/bump.sh (corvid-db/corvid): 5 textual substitution(s) across 3 file(s). The golden CI on this branch is the verdict for the new pin. --- Cargo.lock | 2 +- Cargo.toml | 2 +- docs/PLAN.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84e2902..1971767 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,7 +5,7 @@ version = 4 [[package]] name = "corvid" version = "0.3.1" -source = "git+https://github.com/corvid-db/corvid.git?tag=v0.3.1#9fe89c15a3ab8eaae369990f90ed85671302c716" +source = "git+https://github.com/corvid-db/corvid.git?tag=v0.3.2#9fe89c15a3ab8eaae369990f90ed85671302c716" dependencies = [ "redb", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index 95bd422..2cbf242 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ pyo3 = { version = "0.29", features = ["abi3-py311"] } # The engine, pinned to the exact release tag (docs/PLAN.md §2: the # binding pins exact engine tags; corvid is not on crates.io). -corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.1" } +corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" } [dev-dependencies] # Test-only: the variant-inventory snapshot test (src/error.rs) diff --git a/docs/PLAN.md b/docs/PLAN.md index eb62c8c..97cb040 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -18,7 +18,7 @@ variants are additive later, decided by the FFI bench). | --- | --- | | The pyo3 crate (engine-binding layer AND idiom layer — see §3) | `src/*.rs` — `DbPy`/`CollectionPy`/`QueryPy`, value mapping, error mapping, predicates | | The public package | `python/corvid/__init__.py` re-exports `corvid._native`; `__init__.pyi` + `py.typed` carry the full typing | -| The golden-suite port | `tests/test_golden.py` driving `tests/golden/*.txt` (vendored byte-identical from the v0.3.1 release — the pinned engine tag; the same fixtures the C smoke suite and corvid-node run) | +| The golden-suite port | `tests/test_golden.py` driving `tests/golden/*.txt` (vendored byte-identical from the v0.3.2 release — the pinned engine tag; the same fixtures the C smoke suite and corvid-node run) | | Packaging | `pyproject.toml` (maturin, one cp311-abi3 wheel per platform), README (install-pending note), LICENSE (MIT), `.gitignore` | | CI | `.github/workflows/ci.yml` — surface gate + lint + golden suite × 4 platform legs (linux-x64/arm64, macos-arm64, windows-x64) × {3.14, 3.13, 3.12, 3.11} + `maturin build` smoke | @@ -35,7 +35,7 @@ totals test pre-scans all files for exactly 267). Two architectures were on the table: 1. **(chosen)** A Rust pyo3 crate that links the engine crate directly - (`corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.1" }` + (`corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" }` — corvid is not on crates.io) and exposes the OOP surface through native pyo3 classes, built into a Python extension module by maturin. @@ -220,4 +220,4 @@ Documented corners: | Variadic `and_`/`or_` (trailing underscores) | Python keywords; mirrors the JS binding's variadic `and`/`or` | | Counter + Arc exclusivity for `compact` | mirrors the ABI §4.13 gate exactly; pinned by admin.txt | | pyo3 0.29, maturin 1.x | current crates.io stable lines | -| Vendored golden fixtures (byte-identical to the v0.3.1 tag — the pinned engine version) | stable text; the suite must run offline and per-PR (verified identical to `crates/corvid-ffi/golden/`) | +| Vendored golden fixtures (byte-identical to the v0.3.2 tag — the pinned engine version) | stable text; the suite must run offline and per-PR (verified identical to `crates/corvid-ffi/golden/`) | From 6442091cf2fdb4809be7d789865266d22418a1a3 Mon Sep 17 00:00:00 2001 From: Rocky Date: Wed, 2 Sep 2026 14:25:53 +0600 Subject: [PATCH 2/2] adopt v0.3.2: engine dep key corvid -> corvid-db (package renamed; lib ident corvid unchanged) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only the dependency KEY moves — [lib] name = "corvid" keeps every use corvid::… compiling. Cargo.lock re-resolved to corvid-db 0.3.2 at ?tag=v0.3.2#b726ac5 (the textual bump alone left the v0.3.1 rev and the old package name). scripts/surface-gate.sh's Cargo.toml pin pattern tracks the new key; PLAN's dep example updated. Vendored golden fixtures verified byte-identical to the v0.3.2 release archive (all eight files). Verified locally: surface-gate ok (172 mapped / baseline 155), fmt + clippy -D warnings clean, maturin build, pytest 25/25. --- .gitignore | 1 + Cargo.lock | 8 ++++---- Cargo.toml | 6 ++++-- docs/PLAN.md | 8 +++++--- scripts/surface-gate.sh | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index cbc56dd..220e23c 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ python/corvid/_native.* # test scratch tests/work/ .pytest_cache/ +wheels/ diff --git a/Cargo.lock b/Cargo.lock index 1971767..0c0d613 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,9 +3,9 @@ version = 4 [[package]] -name = "corvid" -version = "0.3.1" -source = "git+https://github.com/corvid-db/corvid.git?tag=v0.3.2#9fe89c15a3ab8eaae369990f90ed85671302c716" +name = "corvid-db" +version = "0.3.2" +source = "git+https://github.com/corvid-db/corvid.git?tag=v0.3.2#b726ac5a1ebace9f94dc12007a4e06927241cf4c" dependencies = [ "redb", "thiserror", @@ -15,7 +15,7 @@ dependencies = [ name = "corvid-python" version = "0.1.0" dependencies = [ - "corvid", + "corvid-db", "pyo3", "redb", ] diff --git a/Cargo.toml b/Cargo.toml index 2cbf242..7e3e94a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,8 +20,10 @@ crate-type = ["cdylib"] pyo3 = { version = "0.29", features = ["abi3-py311"] } # The engine, pinned to the exact release tag (docs/PLAN.md §2: the -# binding pins exact engine tags; corvid is not on crates.io). -corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" } +# binding pins exact engine tags; the engine PACKAGE is corvid-db — +# bare `corvid` is an unrelated crates.io crate — its LIB ident is +# corvid, so `use corvid::…` is unchanged). +corvid-db = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" } [dev-dependencies] # Test-only: the variant-inventory snapshot test (src/error.rs) diff --git a/docs/PLAN.md b/docs/PLAN.md index 97cb040..f8ffb3e 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -35,9 +35,11 @@ totals test pre-scans all files for exactly 267). Two architectures were on the table: 1. **(chosen)** A Rust pyo3 crate that links the engine crate directly - (`corvid = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" }` - — corvid is not on crates.io) and exposes the OOP surface through - native pyo3 classes, built into a Python extension module by + (`corvid-db = { git = "https://github.com/corvid-db/corvid.git", tag = "v0.3.2" }` + — the engine package is `corvid-db` with lib ident `corvid`; bare + `corvid` on crates.io is an unrelated crate) and exposes the OOP + surface through native pyo3 classes, built into a Python extension + module by maturin. 2. Python-side FFI (ctypes/cffi against the release `cdylib` artifacts, or unpacking wheels of them). diff --git a/scripts/surface-gate.sh b/scripts/surface-gate.sh index 3c5c4ed..2e277b4 100755 --- a/scripts/surface-gate.sh +++ b/scripts/surface-gate.sh @@ -42,7 +42,7 @@ for cand in "$ROOT/fetch.sh" "$ROOT/Cargo.toml"; do if [ -f "$cand" ]; then p="$(awk -F'"' ' /^CORVID_VERSION="/ { print $2; exit } - /^corvid = \{ git = / && match($0, /tag = "v[0-9]+\.[0-9]+\.[0-9]+"/) { + /^corvid-db = \{ git = / && match($0, /tag = "v[0-9]+\.[0-9]+\.[0-9]+"/) { s = substr($0, RSTART, RLENGTH); sub(/^tag = "/, "", s); sub(/"$/, "", s); print s; exit }' "$cand")" if [ -n "$p" ]; then pin="$p"; break; fi