Skip to content

chore(deps): bump lance 4.0.0 → 6.0.0, lancedb 0.27.2 → 0.29.0#27

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/lance-surrealdb-analysis-LXmug
May 28, 2026
Merged

chore(deps): bump lance 4.0.0 → 6.0.0, lancedb 0.27.2 → 0.29.0#27
AdaWorldAPI merged 1 commit into
mainfrom
claude/lance-surrealdb-analysis-LXmug

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented May 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bump lance + lance-index from =4.0.0 to =6.0.0 in surrealdb/core/Cargo.toml.
  • Bump lancedb from =0.27.2 to =0.29.0 (strict-pins lance = "=6.0.0", which forced the patch-level target — same forcing function as chore(deps): bump lance 4.0.0 → 6.0.0, lancedb 0.27.2 → 0.29.0 lance-graph#423).
  • Cascade: arrow-array 57 → 58, arrow-schema 57 → 58 (required — lance 6.0 public API takes arrow 58 types).
  • One source-code change: lance_index::DatasetIndexExt no longer re-exported by lance-index 6.0; now lives at lance::index::DatasetIndexExt. Single-line import fix in surrealdb/core/src/kvs/lance/mod.rs:79.
  • ndarray patch comment updated from lance-index 4.0lance-index 6.0 for accuracy.
  • Cargo.lock regenerated.

Why now

Pairs with AdaWorldAPI/lance-graph#423 (merged). Keeps the lance/lancedb pin aligned across the two repos that share the canonical Lance dataset. Surfaces Lance 6.0 schema-evolution primitives (Dataset::add_columns() and native versioning) that the OQ-MBX-8 question on kvs/lance schema design hinges on.

ndarray patch retained

lance-index 6.0 still depends on ndarray = "0.16", so the workspace [patch.crates-io] scope still applies. The comment in Cargo.toml now says "6.0" not "4.0" — the patch itself is unchanged.

Verification

cargo check -p surrealdb-core --features kv-lance --offline finishes clean in 5m 38s, no warnings, no unimplemented!() stubs left.

Workspace check (cargo check --workspace) was skipped in the local sandbox because surrealml/core → ort-sys tries to fetch a prebuilt ORT binary that returns HTTP 403 in this container. CI runners will not have this restriction. Unrelated to the lance bump.

Out of scope

  • deltalake API alignment (n/a — surrealdb-core doesn't depend on deltalake)
  • bindspace→mailbox migration on top of new Lance 6.0 versioning (queued for after this lands)

Test plan

  • CI green on the workspace build / test jobs
  • kv-lance feature compiles end-to-end on CI
  • No transitive arrow/datafusion drift beyond the documented two-line bump

https://claude.ai/code/session_01LiUiGeUDLje8KMnxB4FfA3


Generated by Claude Code

Summary by CodeRabbit

  • Chores
    • Updated optional Lance-related dependencies to newer versions for improved compatibility and performance.

Review Change Stack

Two-major bump for the lance family and one-major bump for lancedb.

Pins updated in surrealdb/core/Cargo.toml:
  - lance       =4.0.0  -> =6.0.0
  - lance-index =4.0.0  -> =6.0.0
  - lancedb     =0.27.2 -> =0.29.0
  - arrow-array  57     -> 58
  - arrow-schema 57     -> 58

Note: lance/lance-index pinned to =6.0.0 (not 6.0.1) because
lancedb 0.29.0 has a strict `=6.0.0` dependency on lance-index.

API surprises (fixed in place; no kv-lance schema changes):
  - DatasetIndexExt moved from lance_index::DatasetIndexExt to
    lance::index::DatasetIndexExt (so Dataset::create_index resolves).
  - lance 6.0 requires arrow 58 (previously 57); arrow-array/schema
    bumped accordingly to unify the dependency graph and resolve
    StreamingWriteSource / RecordBatchReader trait-bound errors.

Files touched:
  - Cargo.toml (workspace comment updated; ndarray patch unchanged
    -- lance-index 6.0 still depends on ndarray 0.16)
  - Cargo.lock (regenerated)
  - surrealdb/core/Cargo.toml (5 dep pins)
  - surrealdb/core/src/kvs/lance/mod.rs (1 import path)

No TODO(lance-bump) markers needed: every call site compiled
in-place after the import fix. `cargo check -p surrealdb-core
--features kv-lance` passes cleanly with no warnings.

https://claude.ai/code/session_01LiUiGeUDLje8KMnxB4FfA3
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 74d8b43f-3fd2-4cf7-b28b-73f7da3f758a

📥 Commits

Reviewing files that changed from the base of the PR and between 4973c15 and f4215f9.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • surrealdb/core/Cargo.toml
  • surrealdb/core/src/kvs/lance/mod.rs

📝 Walkthrough

Walkthrough

Lance ecosystem dependencies upgraded from 4.0 to 6.0, including lance, lancedb, and Arrow crate versions. Module imports adjusted to source DatasetIndexExt from the new lance::index location. Patch comment updated to reflect the changed version scope.

Changes

Lance 6.0 Upgrade

Layer / File(s) Summary
Dependency version upgrades
Cargo.toml, surrealdb/core/Cargo.toml
Lance, lance-index, and lancedb updated to 6.0.0 and 0.29.0 respectively. Arrow crate versions bumped to 58. Patch comment clarified for lance-index 6.0 scope.
Import wiring for relocated API
surrealdb/core/src/kvs/lance/mod.rs
DatasetIndexExt sourced from new lance::index module location while IndexType remains imported from lance_index.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A rabbit hops through Lance's new floor,
Where versions dance from four to six or more,
With DatasetIndexExt finding home,
In lance::index's brighter dome.
Dependencies aligned, the path runs clear! 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping lance and lancedb to newer versions in the dependency management.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/lance-surrealdb-analysis-LXmug

Comment @coderabbitai help to get the list of available commands and usage tips.

@AdaWorldAPI AdaWorldAPI merged commit 3b8c66a into main May 28, 2026
1 check was pending
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Actionable comments posted: 0

AdaWorldAPI pushed a commit that referenced this pull request Jun 16, 2026
…String/Bool/Float/Decimal/Datetime/Bytes/Uuid)

Catches up the C16c bridge to the AST surface PR #29 added on the
op-surreal-ast side. Without this, any `field_type`-derived
`ast::Kind::String` (etc.) in a Schema would fail to convert to
`catalog::Kind` once #29 merges.

# What this adds

`From<ast::Kind> for CatalogKind` gains 7 arms:

  ast::Kind::String   → CatalogKind::String
  ast::Kind::Bool     → CatalogKind::Bool
  ast::Kind::Float    → CatalogKind::Float
  ast::Kind::Decimal  → CatalogKind::Decimal
  ast::Kind::Datetime → CatalogKind::Datetime
  ast::Kind::Bytes    → CatalogKind::Bytes
  ast::Kind::Uuid     → CatalogKind::Uuid

All seven are 1:1 mirrors of existing `surrealdb_core::expr::kind::Kind`
variants. Option-wrapping (Rails-nullable, per codex P1 fix in PR #29)
flows through the pre-existing `ast::Kind::Option(inner)` arm:
`ast::Kind::String.optional()` → `catalog::Kind::Either([None, String])`.

# Dep pin

`op-surreal-ast` git branch ref updated from
`claude/op-surreal-ast-from-triples` (PR #26 era, pre-D-AR-5.2) to
`claude/op-surreal-ast-field-types-stacked` (PR #29 with the new
variants). Flip to `branch = "main"` after #29 merges.

# Tests

`+2` new under `--features op-bridge`:

- `d_ar_6_2_scalar_variants_map_one_to_one` — every new ast variant
  maps to the expected catalog variant.
- `d_ar_6_2_option_wrapped_scalar_bridges_via_either` — the
  Rails-nullable Option<String> → catalog Either(None, String) chain
  still works for the new variants.

# Forward-compat status (D-AR-6.3 deferred)

The `ast::FieldDefinition.assert: Option<String>` slot added in PR #27
is still ignored by the bridge (D-AR-6.3 follow-up). Lowering a
SurrealQL expression string to `catalog::Expr` requires either the
surrealdb-core SurrealQL parser (heavy) or a constrained
mini-parser for the few expressions the AR-shape extractor emits
(`$value != NONE` is the only one today). Punted to a focused PR.

# Iron-rule lock

Zero new types. Zero new traits. Seven additive match arms, all
1:1 with existing catalog variants. No behavioural drift on the
pre-existing 4 arms (Any/Int/Record/Option).
AdaWorldAPI pushed a commit that referenced this pull request Jun 17, 2026
The bridge has been pinned at the stranded
`claude/op-surreal-ast-field-types-stacked` branch since the
D-AR-5.2 work first went up as nexgen-rs#29. That PR landed on a
stacked branch instead of main and never made it back, so the
nexgen-rs `main` diverged from the bridge's view for several
sprints.

The D-AR-5.2 work has now re-landed via nexgen-rs#36 (Kind
variants + field_type consumer), and nexgen-rs `main` carries
significant downstream improvements:

- FK direction gating (#33) — only `belongs_to` emits a column
- Polymorphic FK fallback (#30) — `option<any>` for unknown
  targets
- Singularization tightening (#34, #35, #37) — fixes corpus
  quirks like `phases→Phase`, `children→Child`,
  `job_status→JobStatus`, `:big_integer→Decimal`
- Phantom-table guard + order-independent ASSERTs (#27/#28/#26)
- Rails type aliases (#37)

The bridge's `From<ast::Kind> for catalog::Kind` impl already
matches the 7 scalar variants the new main carries, so the bump
is mechanical — `cargo check --features op-bridge` passes with
no source changes needed.

Updates Cargo.lock to the new rev (44550a87 — the merge commit
of nexgen-rs#37 on main).
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