Files
lancedb/Cargo.toml
Dan RammerandClaude Opus 5 0ed17a653b feat: update lance dependency to v12.0.0 (#4216)
Targets `release/v0.39`, not `main`. That branch was cut from
`56bbd19f`, the last commit on `main` still pinned to lance 12, and
carries eight backported fixes; it will publish the next stable lancedb
on the lance 12.0.0 release.

## What changed

Rust workspace lance crates and `java/pom.xml` `lance-core` move from
`v12.0.0-beta.18` to
[`v12.0.0`](https://github.com/lance-format/lance/releases/tag/v12.0.0).
No compatibility fixes were needed.

Because the target is a stable lance, `ci/set_lance_version.py` takes
the `set_stable_version` path, so the workspace dependencies drop their
`git` and `tag` fields and resolve from crates.io. That switch is
required for the release itself — `cargo publish` rejects a crate with
git dependencies — and `Cargo.lock` now has zero `lance-format/lance`
references.

## Validation

* `python3 ci/validate_stable_lance.py` passes — the gate the `Create
Release Commit` workflow runs for a stable release.
* `cargo fmt --all`, `git diff --check` clean.
* All lance 12.0.0 crates confirmed published on crates.io, and
`org.lance:lance-core:12.0.0` on Maven Central.
* Full build and test verification is delegated to this PR's CI, which
also exercises the eight backported fixes on the branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 15:47:16 -05:00

92 lines
2.8 KiB
TOML

[workspace]
members = ["rust/lancedb", "nodejs", "python"]
resolver = "2"
[workspace.package]
edition = "2024"
authors = ["LanceDB Devs <dev@lancedb.com>"]
license = "Apache-2.0"
repository = "https://github.com/lancedb/lancedb"
description = "Serverless, low-latency vector database for AI applications"
keywords = ["lancedb", "lance", "database", "vector", "search"]
categories = ["database-implementations"]
rust-version = "1.91.0"
[workspace.dependencies]
lance = { "version" = "=12.0.0", default-features = false }
lance-core = "=12.0.0"
lance-datagen = "=12.0.0"
lance-file = "=12.0.0"
lance-io = { "version" = "=12.0.0", default-features = false }
lance-index = "=12.0.0"
lance-linalg = "=12.0.0"
lance-namespace = "=12.0.0"
lance-namespace-impls = { "version" = "=12.0.0", default-features = false }
lance-table = "=12.0.0"
lance-testing = "=12.0.0"
lance-datafusion = "=12.0.0"
lance-encoding = "=12.0.0"
lance-arrow = "=12.0.0"
lancedb = { path = "rust/lancedb", default-features = false }
ahash = "0.8"
# Note that this one does not include pyarrow
arrow = { version = "58.0.0", optional = false }
arrow-array = "58.0.0"
arrow-buffer = "58.0.0"
arrow-data = "58.0.0"
arrow-ipc = "58.0.0"
arrow-ord = "58.0.0"
arrow-schema = "58.0.0"
arrow-select = "58.0.0"
arrow-cast = "58.0.0"
arrow-flight = { version = "58.0.0", features = ["flight-sql-experimental"] }
async-trait = "0"
bytes = "1"
datafusion = { version = "54.0.0", default-features = false }
datafusion-catalog = "54.0.0"
datafusion-common = { version = "54.0.0", default-features = false }
datafusion-execution = "54.0.0"
datafusion-expr = "54.0.0"
datafusion-functions = "54.0.0"
datafusion-physical-plan = "54.0.0"
datafusion-physical-expr = "54.0.0"
datafusion-sql = "54.0.0"
env_logger = "0.11"
half = { "version" = "2.7.1", default-features = false, features = [
"num-traits",
] }
futures = "0.3"
log = "0.4"
metrics = "0.24"
metrics-util = "0.19"
moka = { version = "0.12", features = ["future"] }
object_store = "0.14.1"
pin-project = "1.0.7"
rand = "0.9"
snafu = "0.8"
url = "2"
num-traits = "0.2"
regex = "1.10"
semver = "1.0.25"
serde = "1"
serde_json = "1"
tempfile = "3.5.0"
tokio = { version = "1.23", features = ["rt-multi-thread", "sync"] }
tonic = { version = "0.14", features = ["tls-native-roots", "tls-ring"] }
uuid = { version = "1.7.0", features = ["v4", "v7"] }
chrono = { version = "0.4", default-features = false, features = ["clock"] }
[profile.ci]
debug = "line-tables-only"
inherits = "dev"
incremental = false
# This rule applies to every package except workspace members (dependencies
# such as `arrow` and `tokio`). It disables debug info and related features on
# dependencies so their binaries stay smaller, improving cache reuse.
[profile.ci.package."*"]
debug = false
debug-assertions = false
strip = "debuginfo"
incremental = false