From eea4095b188bf2ba2fa95d934a2f5d6c2c9e661c Mon Sep 17 00:00:00 2001 From: Lance Release Bot Date: Thu, 18 Jun 2026 20:03:56 +0000 Subject: [PATCH 1/5] chore: release candidate 8.0.0-rc.1 --- .bumpversion.toml | 2 +- Cargo.lock | 52 +++++++++++++++++++-------------------- Cargo.toml | 44 ++++++++++++++++----------------- java/lance-jni/Cargo.lock | 44 ++++++++++++++++----------------- java/lance-jni/Cargo.toml | 2 +- java/pom.xml | 2 +- python/Cargo.lock | 44 ++++++++++++++++----------------- python/Cargo.toml | 2 +- 8 files changed, 96 insertions(+), 96 deletions(-) diff --git a/.bumpversion.toml b/.bumpversion.toml index fc6364e2e1e..f4ecb46a1c3 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "8.0.0-beta.19" +current_version = "8.0.0-rc.1" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)(-(?P(beta|rc))\\.(?P\\d+))?" serialize = [ "{major}.{minor}.{patch}-{prerelease}.{prerelease_num}", diff --git a/Cargo.lock b/Cargo.lock index d08341ddfe9..c9afdf21f62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1119,9 +1119,9 @@ dependencies = [ [[package]] name = "bitvec" -version = "1.0.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" dependencies = [ "funty", "radium", @@ -3076,7 +3076,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4380,7 +4380,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "all_asserts", "approx", @@ -4483,7 +4483,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4531,7 +4531,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrayref", "paste", @@ -4540,7 +4540,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4580,7 +4580,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4613,7 +4613,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4632,7 +4632,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "proc-macro2", "quote", @@ -4641,7 +4641,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -4686,7 +4686,7 @@ dependencies = [ [[package]] name = "lance-examples" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "all_asserts", "arrow", @@ -4712,7 +4712,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -4751,7 +4751,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "datafusion", "geo-traits", @@ -4765,7 +4765,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "approx", "arc-swap", @@ -4842,7 +4842,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-arith", @@ -4890,7 +4890,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "approx", "arrow-array", @@ -4909,7 +4909,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "async-trait", @@ -4921,7 +4921,7 @@ dependencies = [ [[package]] name = "lance-namespace-datafusion" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-schema", @@ -4937,7 +4937,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -5001,7 +5001,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -5019,7 +5019,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -5065,7 +5065,7 @@ dependencies = [ [[package]] name = "lance-test-macros" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "proc-macro2", "quote", @@ -5074,7 +5074,7 @@ dependencies = [ [[package]] name = "lance-testing" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-schema", @@ -5087,7 +5087,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "icu_segmenter", "jieba-rs", @@ -5100,7 +5100,7 @@ dependencies = [ [[package]] name = "lance-tools" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "clap", "lance-core", diff --git a/Cargo.toml b/Cargo.toml index 39a5bc597bd..3d978ec1c27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ resolver = "3" [workspace.package] -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" @@ -57,27 +57,27 @@ rust-version = "1.91.0" [workspace.dependencies] arc-swap = "1.7" libc = "0.2.176" -lance = { version = "=8.0.0-beta.19", path = "./rust/lance", default-features = false } -lance-arrow = { version = "=8.0.0-beta.19", path = "./rust/lance-arrow" } -lance-core = { version = "=8.0.0-beta.19", path = "./rust/lance-core" } -lance-datafusion = { version = "=8.0.0-beta.19", path = "./rust/lance-datafusion" } -lance-datagen = { version = "=8.0.0-beta.19", path = "./rust/lance-datagen" } -lance-derive = { version = "=8.0.0-beta.19", path = "./rust/lance-derive" } -lance-encoding = { version = "=8.0.0-beta.19", path = "./rust/lance-encoding" } -lance-file = { version = "=8.0.0-beta.19", path = "./rust/lance-file" } -lance-geo = { version = "=8.0.0-beta.19", path = "./rust/lance-geo" } -lance-index = { version = "=8.0.0-beta.19", path = "./rust/lance-index" } -lance-io = { version = "=8.0.0-beta.19", path = "./rust/lance-io", default-features = false } -lance-linalg = { version = "=8.0.0-beta.19", path = "./rust/lance-linalg" } -lance-namespace = { version = "=8.0.0-beta.19", path = "./rust/lance-namespace" } -lance-namespace-impls = { version = "=8.0.0-beta.19", path = "./rust/lance-namespace-impls" } +lance = { version = "=8.0.0-rc.1", path = "./rust/lance", default-features = false } +lance-arrow = { version = "=8.0.0-rc.1", path = "./rust/lance-arrow" } +lance-core = { version = "=8.0.0-rc.1", path = "./rust/lance-core" } +lance-datafusion = { version = "=8.0.0-rc.1", path = "./rust/lance-datafusion" } +lance-datagen = { version = "=8.0.0-rc.1", path = "./rust/lance-datagen" } +lance-derive = { version = "=8.0.0-rc.1", path = "./rust/lance-derive" } +lance-encoding = { version = "=8.0.0-rc.1", path = "./rust/lance-encoding" } +lance-file = { version = "=8.0.0-rc.1", path = "./rust/lance-file" } +lance-geo = { version = "=8.0.0-rc.1", path = "./rust/lance-geo" } +lance-index = { version = "=8.0.0-rc.1", path = "./rust/lance-index" } +lance-io = { version = "=8.0.0-rc.1", path = "./rust/lance-io", default-features = false } +lance-linalg = { version = "=8.0.0-rc.1", path = "./rust/lance-linalg" } +lance-namespace = { version = "=8.0.0-rc.1", path = "./rust/lance-namespace" } +lance-namespace-impls = { version = "=8.0.0-rc.1", path = "./rust/lance-namespace-impls" } lance-namespace-datafusion = { version = "=7.0.0-beta.9", path = "./rust/lance-namespace-datafusion" } lance-namespace-reqwest-client = "0.8.6" -lance-select = { version = "=8.0.0-beta.19", path = "./rust/lance-select" } -lance-tokenizer = { version = "=8.0.0-beta.19", path = "./rust/lance-tokenizer" } -lance-table = { version = "=8.0.0-beta.19", path = "./rust/lance-table" } -lance-test-macros = { version = "=8.0.0-beta.19", path = "./rust/lance-test-macros" } -lance-testing = { version = "=8.0.0-beta.19", path = "./rust/lance-testing" } +lance-select = { version = "=8.0.0-rc.1", path = "./rust/lance-select" } +lance-tokenizer = { version = "=8.0.0-rc.1", path = "./rust/lance-tokenizer" } +lance-table = { version = "=8.0.0-rc.1", path = "./rust/lance-table" } +lance-test-macros = { version = "=8.0.0-rc.1", path = "./rust/lance-test-macros" } +lance-testing = { version = "=8.0.0-rc.1", path = "./rust/lance-testing" } approx = "0.5.1" # Note that this one does not include pyarrow arrow = { version = "58.0.0", optional = false, features = ["prettyprint"] } @@ -104,7 +104,7 @@ half = { "version" = "2.1", default-features = false, features = [ "num-traits", "std", ] } -lance-bitpacking = { version = "=8.0.0-beta.19", path = "./rust/compression/bitpacking" } +lance-bitpacking = { version = "=8.0.0-rc.1", path = "./rust/compression/bitpacking" } bitpacking = "0.9" bitvec = "1" bytes = "1.11.1" @@ -143,7 +143,7 @@ datafusion-substrait = { version = "53.0.0", default-features = false } dirs = "6.0.0" either = "1.0" fst = { version = "0.4.7", features = ["levenshtein"] } -fsst = { version = "=8.0.0-beta.19", path = "./rust/compression/fsst" } +fsst = { version = "=8.0.0-rc.1", path = "./rust/compression/fsst" } futures = "0.3" geoarrow-array = "0.8" geoarrow-schema = "0.8" diff --git a/java/lance-jni/Cargo.lock b/java/lance-jni/Cargo.lock index 1a5978d5782..ade9d7ea011 100644 --- a/java/lance-jni/Cargo.lock +++ b/java/lance-jni/Cargo.lock @@ -929,9 +929,9 @@ dependencies = [ [[package]] name = "bitvec" -version = "1.0.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" dependencies = [ "funty", "radium", @@ -2479,7 +2479,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "rand 0.9.4", @@ -3665,7 +3665,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arc-swap", "arrow", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -3780,7 +3780,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrayref", "paste", @@ -3789,7 +3789,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -3827,7 +3827,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -3859,7 +3859,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -3876,7 +3876,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "proc-macro2", "quote", @@ -3885,7 +3885,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -3920,7 +3920,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -3950,7 +3950,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "datafusion", "geo-traits", @@ -3964,7 +3964,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arc-swap", "arrow", @@ -4032,7 +4032,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-arith", @@ -4073,7 +4073,7 @@ dependencies = [ [[package]] name = "lance-jni" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4109,7 +4109,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4124,7 +4124,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "async-trait", @@ -4136,7 +4136,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-ipc", @@ -4185,7 +4185,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4200,7 +4200,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4237,7 +4237,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "icu_segmenter", "rust-stemmers", diff --git a/java/lance-jni/Cargo.toml b/java/lance-jni/Cargo.toml index 4df708de9d7..8dea693d874 100644 --- a/java/lance-jni/Cargo.toml +++ b/java/lance-jni/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lance-jni" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" edition = "2024" authors = ["Lance Devs "] rust-version = "1.91" diff --git a/java/pom.xml b/java/pom.xml index 33b4d45bf01..d96397e8069 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -7,7 +7,7 @@ org.lance lance-core Lance Core - 8.0.0-beta.19 + 8.0.0-rc.1 jar Lance Format Java API diff --git a/python/Cargo.lock b/python/Cargo.lock index 6acf34203ab..a67fba82cbe 100644 --- a/python/Cargo.lock +++ b/python/Cargo.lock @@ -1059,9 +1059,9 @@ dependencies = [ [[package]] name = "bitvec" -version = "1.0.1" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" dependencies = [ "funty", "radium", @@ -2859,7 +2859,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4067,7 +4067,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arc-swap", "arrow", @@ -4141,7 +4141,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4183,7 +4183,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrayref", "paste", @@ -4192,7 +4192,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4230,7 +4230,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4262,7 +4262,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4279,7 +4279,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "proc-macro2", "quote", @@ -4288,7 +4288,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -4323,7 +4323,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-arith", "arrow-array", @@ -4353,7 +4353,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "datafusion", "geo-traits", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arc-swap", "arrow", @@ -4436,7 +4436,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-arith", @@ -4477,7 +4477,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4492,7 +4492,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "async-trait", @@ -4504,7 +4504,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-ipc", @@ -4553,7 +4553,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow-array", "arrow-buffer", @@ -4568,7 +4568,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "arrow", "arrow-array", @@ -4607,7 +4607,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "icu_segmenter", "jieba-rs", @@ -6045,7 +6045,7 @@ dependencies = [ [[package]] name = "pylance" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" dependencies = [ "alloc-stdlib", "arrow", diff --git a/python/Cargo.toml b/python/Cargo.toml index 12b14cd82a2..4b87ba019f3 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pylance" -version = "8.0.0-beta.19" +version = "8.0.0-rc.1" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" From 11ea361fc408dc9fb6632a40ebd32fa486a310e0 Mon Sep 17 00:00:00 2001 From: Weston Pace Date: Wed, 24 Jun 2026 10:29:01 -0700 Subject: [PATCH 2/5] refactor!: rename FMIndexIndexDetails to FMIndexDetails (#7397) I'm not sure if the original naming was intentional or not. However, it required a special case in `get_plugin_name_from_details_name` to rename `fmindex` to `fm` so I'm guessing it was accidental? We are trying to convert indexes to be "generic plugins" and this means we cannot have special cases lying around. An index's short-name is the name of the type URL minus the suffix `IndexDetails`. So if we want `fm` then it should be `FmIndexDetails` (which this PR implements). If we want `fmindex` then it should be `FmIndexIndexDetails` (which it had before). If we want both then we should invent some kind of formal alias mechanism where an index plugin can register potential aliases. However, I think it'd be simplest to avoid that. This change would be a breaking change to any existing FM indexes! That index type has not (AFAIK) been formally released yet so I think this is ok. However, if this misses the 8.0.0 release then we will probably need to find a different way (and possibly forever be locked into carrying around this special case). --------- Co-authored-by: Claude Sonnet 4.6 --- protos/index.proto | 2 +- rust/lance-index/src/registry.rs | 9 ++------- rust/lance-index/src/scalar/fmindex.rs | 8 +++----- rust/lance/src/index.rs | 4 ++-- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/protos/index.proto b/protos/index.proto index b1045f8977c..a72207b59fe 100644 --- a/protos/index.proto +++ b/protos/index.proto @@ -248,4 +248,4 @@ message BloomFilterIndexDetails {} message RTreeIndexDetails {} -message FMIndexIndexDetails {} \ No newline at end of file +message FMIndexDetails {} \ No newline at end of file diff --git a/rust/lance-index/src/registry.rs b/rust/lance-index/src/registry.rs index 1abab781635..bd7448240fe 100644 --- a/rust/lance-index/src/registry.rs +++ b/rust/lance-index/src/registry.rs @@ -44,12 +44,7 @@ impl IndexPluginRegistry { fn get_plugin_name_from_details_name(&self, details_name: &str) -> String { let details_name = Self::normalize_plugin_name(details_name); if details_name.ends_with("indexdetails") { - let plugin_name = details_name.replace("indexdetails", ""); - if plugin_name == "fmindex" { - "fm".to_string() - } else { - plugin_name - } + details_name.replace("indexdetails", "") } else { details_name } @@ -87,7 +82,7 @@ impl IndexPluginRegistry { registry.add_plugin::(); registry.add_plugin::(); registry.add_plugin::(); - registry.add_plugin::(); + registry.add_plugin::(); #[cfg(feature = "geo")] registry.add_plugin::(); diff --git a/rust/lance-index/src/scalar/fmindex.rs b/rust/lance-index/src/scalar/fmindex.rs index cdf19f0304c..0ed144d5275 100644 --- a/rust/lance-index/src/scalar/fmindex.rs +++ b/rust/lance-index/src/scalar/fmindex.rs @@ -1378,7 +1378,7 @@ impl ScalarIndex for FMIndexScalarIndex { ) -> Result { let files = write_partitioned_fmindex_stream(new_data, dest).await?; Ok(CreatedIndex { - index_details: prost_types::Any::from_msg(&pb::FmIndexIndexDetails {}).unwrap(), + index_details: prost_types::Any::from_msg(&pb::FmIndexDetails {}).unwrap(), index_version: FMINDEX_INDEX_VERSION, files, }) @@ -1708,7 +1708,7 @@ impl ScalarIndexPlugin for FMIndexPlugin { ) -> Result { let files = write_partitioned_fmindex_stream(data, store).await?; Ok(CreatedIndex { - index_details: prost_types::Any::from_msg(&pb::FmIndexIndexDetails {}).unwrap(), + index_details: prost_types::Any::from_msg(&pb::FmIndexDetails {}).unwrap(), index_version: FMINDEX_INDEX_VERSION, files, }) @@ -1740,9 +1740,7 @@ impl ScalarIndexPlugin for FMIndexPlugin { fri: Option>, cache: &LanceCache, ) -> Result> { - let _ = details - .to_msg::() - .unwrap_or_default(); + let _ = details.to_msg::().unwrap_or_default(); Ok(FMIndexScalarIndex::load(store, fri, cache).await? as Arc) } async fn load_statistics( diff --git a/rust/lance/src/index.rs b/rust/lance/src/index.rs index 6a61e6fb0d6..e80b5f5cac1 100644 --- a/rust/lance/src/index.rs +++ b/rust/lance/src/index.rs @@ -291,7 +291,7 @@ fn segment_has_fmindex_details(segment: &IndexMetadata) -> bool { segment .index_details .as_ref() - .is_some_and(|details| details.type_url.ends_with("FMIndexIndexDetails")) + .is_some_and(|details| details.type_url.ends_with("FMIndexDetails")) } // Cache keys for different index types @@ -460,7 +460,7 @@ fn legacy_type_name(index_uri: &str, index_type_hint: Option<&str>) -> String { "BloomFilter" => IndexType::BloomFilter.to_string(), "RTree" => IndexType::RTree.to_string(), "Inverted" => IndexType::Inverted.to_string(), - "FMIndex" => IndexType::Fm.to_string(), + "FMIndex" | "FM" => IndexType::Fm.to_string(), "Json" => IndexType::Scalar.to_string(), "Flat" | "Vector" => IndexType::Vector.to_string(), other if other.contains("Vector") => IndexType::Vector.to_string(), From 42888072e4ed2427179345d95af3ce4811cbfe51 Mon Sep 17 00:00:00 2001 From: Lance Release Bot Date: Wed, 24 Jun 2026 17:48:26 +0000 Subject: [PATCH 3/5] chore: release candidate 8.0.0-rc.2 --- .bumpversion.toml | 2 +- Cargo.lock | 48 +++++++++++++++++++-------------------- Cargo.toml | 44 +++++++++++++++++------------------ java/lance-jni/Cargo.lock | 40 ++++++++++++++++---------------- java/lance-jni/Cargo.toml | 2 +- java/pom.xml | 2 +- python/Cargo.lock | 40 ++++++++++++++++---------------- python/Cargo.toml | 2 +- 8 files changed, 90 insertions(+), 90 deletions(-) diff --git a/.bumpversion.toml b/.bumpversion.toml index f4ecb46a1c3..1d5d28f9274 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "8.0.0-rc.1" +current_version = "8.0.0-rc.2" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)(-(?P(beta|rc))\\.(?P\\d+))?" serialize = [ "{major}.{minor}.{patch}-{prerelease}.{prerelease_num}", diff --git a/Cargo.lock b/Cargo.lock index c9afdf21f62..ad753c10639 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3076,7 +3076,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4380,7 +4380,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "all_asserts", "approx", @@ -4483,7 +4483,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4531,7 +4531,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrayref", "paste", @@ -4540,7 +4540,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4580,7 +4580,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4613,7 +4613,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4632,7 +4632,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -4641,7 +4641,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -4686,7 +4686,7 @@ dependencies = [ [[package]] name = "lance-examples" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "all_asserts", "arrow", @@ -4712,7 +4712,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -4751,7 +4751,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "datafusion", "geo-traits", @@ -4765,7 +4765,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "approx", "arc-swap", @@ -4842,7 +4842,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-arith", @@ -4890,7 +4890,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "approx", "arrow-array", @@ -4909,7 +4909,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "async-trait", @@ -4921,7 +4921,7 @@ dependencies = [ [[package]] name = "lance-namespace-datafusion" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-schema", @@ -4937,7 +4937,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -5001,7 +5001,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -5019,7 +5019,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -5065,7 +5065,7 @@ dependencies = [ [[package]] name = "lance-test-macros" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -5074,7 +5074,7 @@ dependencies = [ [[package]] name = "lance-testing" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-schema", @@ -5087,7 +5087,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "icu_segmenter", "jieba-rs", @@ -5100,7 +5100,7 @@ dependencies = [ [[package]] name = "lance-tools" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "clap", "lance-core", diff --git a/Cargo.toml b/Cargo.toml index 3d978ec1c27..5f621ec063e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ resolver = "3" [workspace.package] -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" @@ -57,27 +57,27 @@ rust-version = "1.91.0" [workspace.dependencies] arc-swap = "1.7" libc = "0.2.176" -lance = { version = "=8.0.0-rc.1", path = "./rust/lance", default-features = false } -lance-arrow = { version = "=8.0.0-rc.1", path = "./rust/lance-arrow" } -lance-core = { version = "=8.0.0-rc.1", path = "./rust/lance-core" } -lance-datafusion = { version = "=8.0.0-rc.1", path = "./rust/lance-datafusion" } -lance-datagen = { version = "=8.0.0-rc.1", path = "./rust/lance-datagen" } -lance-derive = { version = "=8.0.0-rc.1", path = "./rust/lance-derive" } -lance-encoding = { version = "=8.0.0-rc.1", path = "./rust/lance-encoding" } -lance-file = { version = "=8.0.0-rc.1", path = "./rust/lance-file" } -lance-geo = { version = "=8.0.0-rc.1", path = "./rust/lance-geo" } -lance-index = { version = "=8.0.0-rc.1", path = "./rust/lance-index" } -lance-io = { version = "=8.0.0-rc.1", path = "./rust/lance-io", default-features = false } -lance-linalg = { version = "=8.0.0-rc.1", path = "./rust/lance-linalg" } -lance-namespace = { version = "=8.0.0-rc.1", path = "./rust/lance-namespace" } -lance-namespace-impls = { version = "=8.0.0-rc.1", path = "./rust/lance-namespace-impls" } +lance = { version = "=8.0.0-rc.2", path = "./rust/lance", default-features = false } +lance-arrow = { version = "=8.0.0-rc.2", path = "./rust/lance-arrow" } +lance-core = { version = "=8.0.0-rc.2", path = "./rust/lance-core" } +lance-datafusion = { version = "=8.0.0-rc.2", path = "./rust/lance-datafusion" } +lance-datagen = { version = "=8.0.0-rc.2", path = "./rust/lance-datagen" } +lance-derive = { version = "=8.0.0-rc.2", path = "./rust/lance-derive" } +lance-encoding = { version = "=8.0.0-rc.2", path = "./rust/lance-encoding" } +lance-file = { version = "=8.0.0-rc.2", path = "./rust/lance-file" } +lance-geo = { version = "=8.0.0-rc.2", path = "./rust/lance-geo" } +lance-index = { version = "=8.0.0-rc.2", path = "./rust/lance-index" } +lance-io = { version = "=8.0.0-rc.2", path = "./rust/lance-io", default-features = false } +lance-linalg = { version = "=8.0.0-rc.2", path = "./rust/lance-linalg" } +lance-namespace = { version = "=8.0.0-rc.2", path = "./rust/lance-namespace" } +lance-namespace-impls = { version = "=8.0.0-rc.2", path = "./rust/lance-namespace-impls" } lance-namespace-datafusion = { version = "=7.0.0-beta.9", path = "./rust/lance-namespace-datafusion" } lance-namespace-reqwest-client = "0.8.6" -lance-select = { version = "=8.0.0-rc.1", path = "./rust/lance-select" } -lance-tokenizer = { version = "=8.0.0-rc.1", path = "./rust/lance-tokenizer" } -lance-table = { version = "=8.0.0-rc.1", path = "./rust/lance-table" } -lance-test-macros = { version = "=8.0.0-rc.1", path = "./rust/lance-test-macros" } -lance-testing = { version = "=8.0.0-rc.1", path = "./rust/lance-testing" } +lance-select = { version = "=8.0.0-rc.2", path = "./rust/lance-select" } +lance-tokenizer = { version = "=8.0.0-rc.2", path = "./rust/lance-tokenizer" } +lance-table = { version = "=8.0.0-rc.2", path = "./rust/lance-table" } +lance-test-macros = { version = "=8.0.0-rc.2", path = "./rust/lance-test-macros" } +lance-testing = { version = "=8.0.0-rc.2", path = "./rust/lance-testing" } approx = "0.5.1" # Note that this one does not include pyarrow arrow = { version = "58.0.0", optional = false, features = ["prettyprint"] } @@ -104,7 +104,7 @@ half = { "version" = "2.1", default-features = false, features = [ "num-traits", "std", ] } -lance-bitpacking = { version = "=8.0.0-rc.1", path = "./rust/compression/bitpacking" } +lance-bitpacking = { version = "=8.0.0-rc.2", path = "./rust/compression/bitpacking" } bitpacking = "0.9" bitvec = "1" bytes = "1.11.1" @@ -143,7 +143,7 @@ datafusion-substrait = { version = "53.0.0", default-features = false } dirs = "6.0.0" either = "1.0" fst = { version = "0.4.7", features = ["levenshtein"] } -fsst = { version = "=8.0.0-rc.1", path = "./rust/compression/fsst" } +fsst = { version = "=8.0.0-rc.2", path = "./rust/compression/fsst" } futures = "0.3" geoarrow-array = "0.8" geoarrow-schema = "0.8" diff --git a/java/lance-jni/Cargo.lock b/java/lance-jni/Cargo.lock index ade9d7ea011..c713988f605 100644 --- a/java/lance-jni/Cargo.lock +++ b/java/lance-jni/Cargo.lock @@ -2479,7 +2479,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "rand 0.9.4", @@ -3665,7 +3665,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arc-swap", "arrow", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -3780,7 +3780,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrayref", "paste", @@ -3789,7 +3789,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -3827,7 +3827,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -3859,7 +3859,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -3876,7 +3876,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -3885,7 +3885,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -3920,7 +3920,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -3950,7 +3950,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "datafusion", "geo-traits", @@ -3964,7 +3964,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arc-swap", "arrow", @@ -4032,7 +4032,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-arith", @@ -4073,7 +4073,7 @@ dependencies = [ [[package]] name = "lance-jni" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4109,7 +4109,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4124,7 +4124,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "async-trait", @@ -4136,7 +4136,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-ipc", @@ -4185,7 +4185,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4200,7 +4200,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4237,7 +4237,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "icu_segmenter", "rust-stemmers", diff --git a/java/lance-jni/Cargo.toml b/java/lance-jni/Cargo.toml index 8dea693d874..8a51cc8bccc 100644 --- a/java/lance-jni/Cargo.toml +++ b/java/lance-jni/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lance-jni" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" edition = "2024" authors = ["Lance Devs "] rust-version = "1.91" diff --git a/java/pom.xml b/java/pom.xml index d96397e8069..0b51066430e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -7,7 +7,7 @@ org.lance lance-core Lance Core - 8.0.0-rc.1 + 8.0.0-rc.2 jar Lance Format Java API diff --git a/python/Cargo.lock b/python/Cargo.lock index a67fba82cbe..e80c69e7151 100644 --- a/python/Cargo.lock +++ b/python/Cargo.lock @@ -2859,7 +2859,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4067,7 +4067,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arc-swap", "arrow", @@ -4141,7 +4141,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4183,7 +4183,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrayref", "paste", @@ -4192,7 +4192,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4230,7 +4230,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4262,7 +4262,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4279,7 +4279,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -4288,7 +4288,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -4323,7 +4323,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-arith", "arrow-array", @@ -4353,7 +4353,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "datafusion", "geo-traits", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arc-swap", "arrow", @@ -4436,7 +4436,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-arith", @@ -4477,7 +4477,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4492,7 +4492,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "async-trait", @@ -4504,7 +4504,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-ipc", @@ -4553,7 +4553,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow-array", "arrow-buffer", @@ -4568,7 +4568,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "arrow", "arrow-array", @@ -4607,7 +4607,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "icu_segmenter", "jieba-rs", @@ -6045,7 +6045,7 @@ dependencies = [ [[package]] name = "pylance" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" dependencies = [ "alloc-stdlib", "arrow", diff --git a/python/Cargo.toml b/python/Cargo.toml index 4b87ba019f3..f0f460db072 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pylance" -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" From 15f2ff594a25b97f9bedd21a253b612ce14e39ec Mon Sep 17 00:00:00 2001 From: Lance Release Bot Date: Wed, 1 Jul 2026 14:55:15 +0000 Subject: [PATCH 4/5] chore: release version 8.0.0 Promoted from v8.0.0-rc.2 --- .bumpversion.toml | 2 +- Cargo.lock | 48 +++++++++++++++++++-------------------- Cargo.toml | 44 +++++++++++++++++------------------ java/lance-jni/Cargo.lock | 40 ++++++++++++++++---------------- java/lance-jni/Cargo.toml | 2 +- java/pom.xml | 2 +- python/Cargo.lock | 40 ++++++++++++++++---------------- python/Cargo.toml | 2 +- 8 files changed, 90 insertions(+), 90 deletions(-) diff --git a/.bumpversion.toml b/.bumpversion.toml index 1d5d28f9274..b462c5d2eb7 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "8.0.0-rc.2" +current_version = "8.0.0" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)(-(?P(beta|rc))\\.(?P\\d+))?" serialize = [ "{major}.{minor}.{patch}-{prerelease}.{prerelease_num}", diff --git a/Cargo.lock b/Cargo.lock index ad753c10639..e6441ee06e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3076,7 +3076,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4380,7 +4380,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "all_asserts", "approx", @@ -4483,7 +4483,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4531,7 +4531,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrayref", "paste", @@ -4540,7 +4540,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4580,7 +4580,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4613,7 +4613,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4632,7 +4632,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "proc-macro2", "quote", @@ -4641,7 +4641,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -4686,7 +4686,7 @@ dependencies = [ [[package]] name = "lance-examples" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "all_asserts", "arrow", @@ -4712,7 +4712,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -4751,7 +4751,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "datafusion", "geo-traits", @@ -4765,7 +4765,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "approx", "arc-swap", @@ -4842,7 +4842,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-arith", @@ -4890,7 +4890,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "approx", "arrow-array", @@ -4909,7 +4909,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "async-trait", @@ -4921,7 +4921,7 @@ dependencies = [ [[package]] name = "lance-namespace-datafusion" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-schema", @@ -4937,7 +4937,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -5001,7 +5001,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -5019,7 +5019,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -5065,7 +5065,7 @@ dependencies = [ [[package]] name = "lance-test-macros" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "proc-macro2", "quote", @@ -5074,7 +5074,7 @@ dependencies = [ [[package]] name = "lance-testing" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-schema", @@ -5087,7 +5087,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "icu_segmenter", "jieba-rs", @@ -5100,7 +5100,7 @@ dependencies = [ [[package]] name = "lance-tools" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "clap", "lance-core", diff --git a/Cargo.toml b/Cargo.toml index 5f621ec063e..a061b333f2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ resolver = "3" [workspace.package] -version = "8.0.0-rc.2" +version = "8.0.0" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" @@ -57,27 +57,27 @@ rust-version = "1.91.0" [workspace.dependencies] arc-swap = "1.7" libc = "0.2.176" -lance = { version = "=8.0.0-rc.2", path = "./rust/lance", default-features = false } -lance-arrow = { version = "=8.0.0-rc.2", path = "./rust/lance-arrow" } -lance-core = { version = "=8.0.0-rc.2", path = "./rust/lance-core" } -lance-datafusion = { version = "=8.0.0-rc.2", path = "./rust/lance-datafusion" } -lance-datagen = { version = "=8.0.0-rc.2", path = "./rust/lance-datagen" } -lance-derive = { version = "=8.0.0-rc.2", path = "./rust/lance-derive" } -lance-encoding = { version = "=8.0.0-rc.2", path = "./rust/lance-encoding" } -lance-file = { version = "=8.0.0-rc.2", path = "./rust/lance-file" } -lance-geo = { version = "=8.0.0-rc.2", path = "./rust/lance-geo" } -lance-index = { version = "=8.0.0-rc.2", path = "./rust/lance-index" } -lance-io = { version = "=8.0.0-rc.2", path = "./rust/lance-io", default-features = false } -lance-linalg = { version = "=8.0.0-rc.2", path = "./rust/lance-linalg" } -lance-namespace = { version = "=8.0.0-rc.2", path = "./rust/lance-namespace" } -lance-namespace-impls = { version = "=8.0.0-rc.2", path = "./rust/lance-namespace-impls" } +lance = { version = "=8.0.0", path = "./rust/lance", default-features = false } +lance-arrow = { version = "=8.0.0", path = "./rust/lance-arrow" } +lance-core = { version = "=8.0.0", path = "./rust/lance-core" } +lance-datafusion = { version = "=8.0.0", path = "./rust/lance-datafusion" } +lance-datagen = { version = "=8.0.0", path = "./rust/lance-datagen" } +lance-derive = { version = "=8.0.0", path = "./rust/lance-derive" } +lance-encoding = { version = "=8.0.0", path = "./rust/lance-encoding" } +lance-file = { version = "=8.0.0", path = "./rust/lance-file" } +lance-geo = { version = "=8.0.0", path = "./rust/lance-geo" } +lance-index = { version = "=8.0.0", path = "./rust/lance-index" } +lance-io = { version = "=8.0.0", path = "./rust/lance-io", default-features = false } +lance-linalg = { version = "=8.0.0", path = "./rust/lance-linalg" } +lance-namespace = { version = "=8.0.0", path = "./rust/lance-namespace" } +lance-namespace-impls = { version = "=8.0.0", path = "./rust/lance-namespace-impls" } lance-namespace-datafusion = { version = "=7.0.0-beta.9", path = "./rust/lance-namespace-datafusion" } lance-namespace-reqwest-client = "0.8.6" -lance-select = { version = "=8.0.0-rc.2", path = "./rust/lance-select" } -lance-tokenizer = { version = "=8.0.0-rc.2", path = "./rust/lance-tokenizer" } -lance-table = { version = "=8.0.0-rc.2", path = "./rust/lance-table" } -lance-test-macros = { version = "=8.0.0-rc.2", path = "./rust/lance-test-macros" } -lance-testing = { version = "=8.0.0-rc.2", path = "./rust/lance-testing" } +lance-select = { version = "=8.0.0", path = "./rust/lance-select" } +lance-tokenizer = { version = "=8.0.0", path = "./rust/lance-tokenizer" } +lance-table = { version = "=8.0.0", path = "./rust/lance-table" } +lance-test-macros = { version = "=8.0.0", path = "./rust/lance-test-macros" } +lance-testing = { version = "=8.0.0", path = "./rust/lance-testing" } approx = "0.5.1" # Note that this one does not include pyarrow arrow = { version = "58.0.0", optional = false, features = ["prettyprint"] } @@ -104,7 +104,7 @@ half = { "version" = "2.1", default-features = false, features = [ "num-traits", "std", ] } -lance-bitpacking = { version = "=8.0.0-rc.2", path = "./rust/compression/bitpacking" } +lance-bitpacking = { version = "=8.0.0", path = "./rust/compression/bitpacking" } bitpacking = "0.9" bitvec = "1" bytes = "1.11.1" @@ -143,7 +143,7 @@ datafusion-substrait = { version = "53.0.0", default-features = false } dirs = "6.0.0" either = "1.0" fst = { version = "0.4.7", features = ["levenshtein"] } -fsst = { version = "=8.0.0-rc.2", path = "./rust/compression/fsst" } +fsst = { version = "=8.0.0", path = "./rust/compression/fsst" } futures = "0.3" geoarrow-array = "0.8" geoarrow-schema = "0.8" diff --git a/java/lance-jni/Cargo.lock b/java/lance-jni/Cargo.lock index c713988f605..0633741b0e0 100644 --- a/java/lance-jni/Cargo.lock +++ b/java/lance-jni/Cargo.lock @@ -2479,7 +2479,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "rand 0.9.4", @@ -3665,7 +3665,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arc-swap", "arrow", @@ -3738,7 +3738,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -3780,7 +3780,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrayref", "paste", @@ -3789,7 +3789,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -3827,7 +3827,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -3859,7 +3859,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -3876,7 +3876,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "proc-macro2", "quote", @@ -3885,7 +3885,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -3920,7 +3920,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -3950,7 +3950,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "datafusion", "geo-traits", @@ -3964,7 +3964,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arc-swap", "arrow", @@ -4032,7 +4032,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-arith", @@ -4073,7 +4073,7 @@ dependencies = [ [[package]] name = "lance-jni" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4109,7 +4109,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4124,7 +4124,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "async-trait", @@ -4136,7 +4136,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-ipc", @@ -4185,7 +4185,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4200,7 +4200,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4237,7 +4237,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "icu_segmenter", "rust-stemmers", diff --git a/java/lance-jni/Cargo.toml b/java/lance-jni/Cargo.toml index 8a51cc8bccc..1e9cedf01c8 100644 --- a/java/lance-jni/Cargo.toml +++ b/java/lance-jni/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lance-jni" -version = "8.0.0-rc.2" +version = "8.0.0" edition = "2024" authors = ["Lance Devs "] rust-version = "1.91" diff --git a/java/pom.xml b/java/pom.xml index 0b51066430e..0221651667b 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -7,7 +7,7 @@ org.lance lance-core Lance Core - 8.0.0-rc.2 + 8.0.0 jar Lance Format Java API diff --git a/python/Cargo.lock b/python/Cargo.lock index e80c69e7151..2c435303be9 100644 --- a/python/Cargo.lock +++ b/python/Cargo.lock @@ -2859,7 +2859,7 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "rand 0.9.4", @@ -4067,7 +4067,7 @@ checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" [[package]] name = "lance" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arc-swap", "arrow", @@ -4141,7 +4141,7 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4183,7 +4183,7 @@ dependencies = [ [[package]] name = "lance-bitpacking" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrayref", "paste", @@ -4192,7 +4192,7 @@ dependencies = [ [[package]] name = "lance-core" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4230,7 +4230,7 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4262,7 +4262,7 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4279,7 +4279,7 @@ dependencies = [ [[package]] name = "lance-derive" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "proc-macro2", "quote", @@ -4288,7 +4288,7 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -4323,7 +4323,7 @@ dependencies = [ [[package]] name = "lance-file" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-arith", "arrow-array", @@ -4353,7 +4353,7 @@ dependencies = [ [[package]] name = "lance-geo" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "datafusion", "geo-traits", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "lance-index" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arc-swap", "arrow", @@ -4436,7 +4436,7 @@ dependencies = [ [[package]] name = "lance-io" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-arith", @@ -4477,7 +4477,7 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4492,7 +4492,7 @@ dependencies = [ [[package]] name = "lance-namespace" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "async-trait", @@ -4504,7 +4504,7 @@ dependencies = [ [[package]] name = "lance-namespace-impls" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-ipc", @@ -4553,7 +4553,7 @@ dependencies = [ [[package]] name = "lance-select" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow-array", "arrow-buffer", @@ -4568,7 +4568,7 @@ dependencies = [ [[package]] name = "lance-table" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "arrow", "arrow-array", @@ -4607,7 +4607,7 @@ dependencies = [ [[package]] name = "lance-tokenizer" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "icu_segmenter", "jieba-rs", @@ -6045,7 +6045,7 @@ dependencies = [ [[package]] name = "pylance" -version = "8.0.0-rc.2" +version = "8.0.0" dependencies = [ "alloc-stdlib", "arrow", diff --git a/python/Cargo.toml b/python/Cargo.toml index f0f460db072..0a220d7feb5 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pylance" -version = "8.0.0-rc.2" +version = "8.0.0" edition = "2024" authors = ["Lance Devs "] license = "Apache-2.0" From 82a122e817e1cd61af9d3bc20aee9600fae066f9 Mon Sep 17 00:00:00 2001 From: Felix Schultz Date: Sun, 6 Sep 2026 08:23:34 +0200 Subject: [PATCH 5/5] feat: add create_only option to CommitBuilder for concurrent write handling --- rust/lance/src/dataset/write/commit.rs | 13 ++++++ rust/lance/src/dataset/write/insert.rs | 64 +++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/rust/lance/src/dataset/write/commit.rs b/rust/lance/src/dataset/write/commit.rs index baad71b3e39..99b93525e82 100644 --- a/rust/lance/src/dataset/write/commit.rs +++ b/rust/lance/src/dataset/write/commit.rs @@ -37,6 +37,7 @@ use tracing::info; #[derive(Debug, Clone)] pub struct CommitBuilder<'a> { dest: WriteDestination<'a>, + create_only: bool, use_stable_row_ids: Option, enable_v2_manifest_paths: bool, storage_format: Option, @@ -58,6 +59,7 @@ impl<'a> CommitBuilder<'a> { pub fn new(dest: impl Into>) -> Self { Self { dest: dest.into(), + create_only: false, use_stable_row_ids: None, enable_v2_manifest_paths: true, storage_format: None, @@ -73,6 +75,13 @@ impl<'a> CommitBuilder<'a> { } } + /// Preserve create-only writes when a concurrent writer creates the dataset + /// after the insert's initial existence check. + pub(super) fn with_create_only(mut self, create_only: bool) -> Self { + self.create_only = create_only; + self + } + /// Whether to use stable row ids. This makes the `_rowid` column stable /// after compaction, but not updates. /// @@ -304,6 +313,10 @@ impl<'a> CommitBuilder<'a> { } }; + if self.create_only && dest.dataset().is_some() { + return Err(Error::dataset_already_exists(dest.uri())); + } + if dest.dataset().is_none() && !matches!( transaction.operation, diff --git a/rust/lance/src/dataset/write/insert.rs b/rust/lance/src/dataset/write/insert.rs index bfd702c9c3b..550194b9398 100644 --- a/rust/lance/src/dataset/write/insert.rs +++ b/rust/lance/src/dataset/write/insert.rs @@ -132,6 +132,7 @@ impl<'a> InsertBuilder<'a> { async fn do_commit(context: &WriteContext<'_>, transaction: Transaction) -> Result { let mut commit_builder = CommitBuilder::new(context.dest.clone()) + .with_create_only(context.create_only) .use_stable_row_ids(context.params.enable_stable_row_ids) .with_storage_format(context.storage_version) .enable_v2_manifest_paths(context.params.enable_v2_manifest_paths) @@ -418,6 +419,7 @@ impl<'a> InsertBuilder<'a> { }; Ok(WriteContext { + create_only: matches!(params.mode, WriteMode::Create), params, dest, object_store, @@ -430,6 +432,8 @@ impl<'a> InsertBuilder<'a> { #[derive(Debug)] struct WriteContext<'a> { + // Keep the requested mode when validation converts a missing append or overwrite to create. + create_only: bool, params: WriteParams, dest: WriteDestination<'a>, object_store: Arc, @@ -442,7 +446,9 @@ struct WriteContext<'a> { mod test { use std::collections::HashMap; - use arrow_array::{ArrayRef, BinaryArray, Int32Array, RecordBatchReader, StructArray}; + use arrow_array::{ + ArrayRef, BinaryArray, Int32Array, RecordBatchReader, StructArray, record_batch, + }; use arrow_schema::{ArrowError, DataType, Field, Schema}; use lance_arrow::BLOB_META_KEY; @@ -450,6 +456,62 @@ mod test { use super::*; + #[rstest::rstest] + #[case::create(WriteMode::Create)] + #[case::overwrite(WriteMode::Overwrite)] + #[tokio::test] + async fn concurrent_create_preserves_committed_data(#[case] mode: WriteMode) { + let tempdir = tempfile::tempdir().unwrap(); + let uri = tempdir.path().to_str().unwrap(); + let is_create = matches!(mode, WriteMode::Create); + let params = WriteParams { + mode, + ..Default::default() + }; + let delayed_batch = record_batch!(("id", Int32, [0])).unwrap(); + let delayed = InsertBuilder::new(uri).with_params(¶ms); + // Stop after the initial existence check and fragment write, before the commit. + let (transaction, context) = delayed + .write_uncommitted_impl(vec![delayed_batch.clone()]) + .await + .unwrap(); + + let winner = InsertBuilder::new(uri) + .execute(vec![record_batch!(("id", Int32, [1])).unwrap()]) + .await + .unwrap(); + let winner = InsertBuilder::new(Arc::new(winner)) + .with_params(&WriteParams { + mode: WriteMode::Append, + ..Default::default() + }) + .execute(vec![record_batch!(("id", Int32, [2])).unwrap()]) + .await + .unwrap(); + assert_eq!(winner.get_fragments().len(), 2); + let winner_version = winner.version().version; + + let result = InsertBuilder::do_commit(&context, transaction).await; + let reopened = Dataset::open(uri).await.unwrap(); + let rows = reopened + .scan() + .scan_in_order(true) + .try_into_batch() + .await + .unwrap(); + if is_create { + let error = result.unwrap_err(); + assert!(matches!(error, Error::DatasetAlreadyExists { .. })); + assert!(error.to_string().contains(uri)); + assert_eq!(reopened.version().version, winner_version); + assert_eq!(rows, record_batch!(("id", Int32, [1, 2])).unwrap()); + } else { + result.unwrap(); + assert_eq!(reopened.version().version, winner_version + 1); + assert_eq!(rows, delayed_batch); + } + } + #[tokio::test] async fn test_pass_session() { let session = Arc::new(Session::new(0, 0, Default::default()));