feat: bump arrow 57, datafusion 51, lance 2#146
feat: bump arrow 57, datafusion 51, lance 2#146AdaWorldAPI wants to merge 11 commits intolance-format:mainfrom
Conversation
Align lance-graph's dependency matrix with ladybug-rs and rustynum: arrow 56.2 → 57 datafusion 50.3 → 51 lance 1.0 → 2.0 lance-* 1.0 → 2.0 All 491 tests pass with zero API breakages. The Python crate is excluded from the workspace resolver to avoid the pyarrow `links = "python"` conflict with pyo3. It continues to build separately via `maturin develop`. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 86a03971cf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| members = [ | ||
| "crates/lance-graph", | ||
| "crates/lance-graph-catalog", | ||
| "crates/lance-graph-python", | ||
| # lance-graph-python excluded: pyarrow `links = "python"` conflict with pyo3. | ||
| # Build separately with `maturin develop`. | ||
| ] |
There was a problem hiding this comment.
Exclude the Python crate when removing it from workspace members
Removing crates/lance-graph-python from workspace.members without adding it to workspace.exclude (or adding an empty [workspace] in that crate) makes Cargo reject the crate as an in-tree non-member: cargo check --manifest-path crates/lance-graph-python/Cargo.toml now fails with “current package believes it's in a workspace when it's not.” This is an immediate regression because .github/workflows/release.yml still runs that exact cargo check command for the Python crate.
Useful? React with 👍 / 👎.
Add plan_err!, config_err!, exec_err! macros that use #[track_caller] + std::panic::Location for zero-cost call-site capture (Gate 4/7). Bridge design: macros call plan_err_at()/config_err_at()/exec_err_at() which convert std::panic::Location to snafu::Location. This gives ergonomic macros while maintaining compatibility with 148 existing snafu error creation sites across 18 files. - plan_err_at(), config_err_at(), exec_err_at(): #[track_caller] helpers - plan_err!, config_err!, exec_err!: format!() wrapper macros - 4 tests proving location capture works https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
|
great work, could you help fix the CI and resolve the conflicts? |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
…g traversal + 7 ground truth tests Implements the full SPO (Subject-Predicate-Object) graph primitives stack: - graph/fingerprint.rs: label_fp() with 11% density guard, dn_hash(), hamming_distance() - graph/sparse.rs: Bitmap [u64;BITMAP_WORDS] (fixes old [u64;2] truncation), pack_axes() - graph/spo/truth.rs: TruthValue (NARS frequency/confidence), TruthGate (OPEN/WEAK/NORMAL/STRONG/CERTAIN) - graph/spo/builder.rs: SpoBuilder with forward/reverse/relation query vector construction - graph/spo/store.rs: SpoStore with 2^3 projection verbs (SxP2O, PxO2S, SxO2P), gated queries, semiring chain walk - graph/spo/semiring.rs: HammingMin semiring (min-plus over Hamming distance) - graph/spo/merkle.rs: MerkleRoot, ClamPath, BindSpace with verify_lineage (known gap documented) and verify_integrity - graph/mod.rs: ContainerGeometry enum with Spo=6 Ground truth integration tests (7/7 pass): 1. SPO hydration round-trip (insert + forward/reverse query) 2. 2^3 projection verbs consistency (all three agree on same triple) 3. TruthGate filtering (OPEN=2, STRONG=1, CERTAIN=0 for test data) 4. Belichtung prefilter rejection rate (<10 hits from 100 edges) 5. Semiring chain traversal (3 hops with increasing cumulative distance) 6. ClamPath+MerkleRoot integrity (documents verify_lineage no-op gap) 7. Cypher vs projection verb convergence (SPO side validated) 31 unit tests + 7 integration tests, all passing. Clippy clean. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
…n), open ends, vision Lance-graph engine stays in ladybug-rs. We take: - Bumpers: parser.rs, ast.rs, error.rs (hardened input validation) - Rims: DataFusion row/column join patterns (ground truth after thinking) Open ends: GQL/NARS parser arms, semantic.rs adaptation, neo4j-rs result bridge, ground truth test portability, outage recovery for PRs 168-171.
…raph Star chart (lance-graph) = flat neo4j ground truth render. Thinking mesh (SPO in ladybug-rs) = holodeck of awareness. We steal parser/AST/error from lance-graph into ladybug-rs (additive). Nothing removed from ladybug-rs, rustynum, or any existing repo. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
…and SPO geometry semantic.rs is the regime change boundary. Neo4j gives dead rows. The bouncer validates bindings and types. The resolved AST projects into SpoBuilder where literals become Hamming geometry — resonance, causal chain discovery, truth-gated propagation. BindSpaceCatalog replaces AcceptAllCatalog as next bolt. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
…ualia
Lance-graph semantic.rs: has_node_label("Person") → true/false. Binary. Dead.
Ladybug semantic layer: hamming(fp("Person"), fp("Agent")) → 2,847 bits, 39σ
overlap. Geometric. Alive. Same word, different universe.
SPO 2³ eight projections (S×P→O deduction, S×O→P induction, P×O→S abduction...).
Double gestalt: raw SPO + observer perspective = qualia not metadata.
Z→X causality: object of one triple resonates with subject of the next.
https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
…side Explicit file-level boundary: lance_parser/ is star chart (work here), spo/graph/container/bind_space is mesh (don't touch). Tripwires for boundary violations. Six-step task order, each in separate PRs after step 2, boundary relaxes one bolt at a time. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
#1: RUSTYNUM IS MANDATORY — no hand-rolled numeric ops in lance_parser/ #2: NO SERDE_JSON ON THE HOT PATH — NodeParameterValue is not serde_json::Value, they are not convertible, the fix is never param_to_json() https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
RUSTFLAGS with AVX-512 VPOPCNTDQ is not optional. Without it, rustynum SIMD intrinsics fail, agents treat it as pre-existing error, and start papering over cascading failures across repos. One wrong toolchain, five cascading violations. https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV
Align lance-graph's dependency matrix with ladybug-rs and rustynum:
arrow 56.2 → 57
datafusion 50.3 → 51
lance 1.0 → 2.0
lance-* 1.0 → 2.0
All 491 tests pass with zero API breakages.
The Python crate is excluded from the workspace resolver to avoid the pyarrow
links = "python"conflict with pyo3. It continues to build separately viamaturin develop.https://claude.ai/code/session_016SeGMg1pgf1MqK8YWkedvV