Compare commits

..

1 Commits

Author SHA1 Message Date
Brendan Clement
b5e521c4a1 docs: add cross-SDK parity guidance for code review 2026-05-29 12:48:00 -07:00
2 changed files with 90 additions and 76 deletions

140
Cargo.lock generated
View File

@@ -568,7 +568,7 @@ dependencies = [
"bytes",
"fastrand",
"hex",
"http 1.4.1",
"http 1.4.0",
"sha1 0.10.6",
"time",
"tokio",
@@ -631,7 +631,7 @@ dependencies = [
"bytes-utils",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body 0.4.6",
"http-body 1.0.1",
"percent-encoding",
@@ -661,7 +661,7 @@ dependencies = [
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body-util",
"regex-lite",
"tracing",
@@ -686,7 +686,7 @@ dependencies = [
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"regex-lite",
"tracing",
]
@@ -710,7 +710,7 @@ dependencies = [
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"regex-lite",
"tracing",
]
@@ -740,7 +740,7 @@ dependencies = [
"hex",
"hmac 0.13.0",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"lru",
"percent-encoding",
@@ -769,7 +769,7 @@ dependencies = [
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"regex-lite",
"tracing",
]
@@ -793,7 +793,7 @@ dependencies = [
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"regex-lite",
"tracing",
]
@@ -818,7 +818,7 @@ dependencies = [
"aws-types",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"regex-lite",
"tracing",
]
@@ -840,7 +840,7 @@ dependencies = [
"hex",
"hmac 0.13.0",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"p256",
"percent-encoding",
"ring",
@@ -873,7 +873,7 @@ dependencies = [
"bytes",
"crc-fast",
"hex",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"md-5 0.11.0",
@@ -907,7 +907,7 @@ dependencies = [
"bytes-utils",
"futures-core",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"percent-encoding",
@@ -928,7 +928,7 @@ dependencies = [
"h2 0.3.27",
"h2 0.4.14",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body 0.4.6",
"hyper 0.14.32",
"hyper 1.9.0",
@@ -976,21 +976,20 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime"
version = "1.11.3"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8e6f5caf6fea86f8c2206541ab5857cfcda9013426cdbe8fa0098b9e2d32182"
checksum = "0504b1ab12debb5959e5165ee5fe97dd387e7aa7ea6a477bfd7635dfe769a4f5"
dependencies = [
"aws-smithy-async",
"aws-smithy-http",
"aws-smithy-http-client",
"aws-smithy-observability",
"aws-smithy-runtime-api",
"aws-smithy-schema",
"aws-smithy-types",
"bytes",
"fastrand",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body 0.4.6",
"http-body 1.0.1",
"http-body-util",
@@ -1002,16 +1001,16 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime-api"
version = "1.12.1"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc117c179ecf39a62a0a3f49f600e9ac26a7ad7dd172177999f83933af776c32"
checksum = "b71a13df6ada0aafbf21a73bdfcdf9324cfa9df77d96b8446045be3cde61b42e"
dependencies = [
"aws-smithy-async",
"aws-smithy-runtime-api-macros",
"aws-smithy-types",
"bytes",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"pin-project-lite",
"tokio",
"tracing",
@@ -1029,29 +1028,18 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "aws-smithy-schema"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7442cb268338f0eb8278140a107c046756aa01093d8ef5e99628d34ae09c94f5"
dependencies = [
"aws-smithy-runtime-api",
"aws-smithy-types",
"http 1.4.1",
]
[[package]]
name = "aws-smithy-types"
version = "1.4.8"
version = "1.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "056b66dbce2f81cc0c1e2b05bb402eb58f8a3530479d650efadd5bbae9a4050b"
checksum = "9d73dbfbaa8e4bc57b9045137680b958d274823509a360abfd8e1d514d40c95c"
dependencies = [
"base64-simd",
"bytes",
"bytes-utils",
"futures-core",
"http 0.2.12",
"http 1.4.1",
"http 1.4.0",
"http-body 0.4.6",
"http-body 1.0.1",
"http-body-util",
@@ -1099,7 +1087,7 @@ dependencies = [
"axum-core",
"bytes",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.9.0",
@@ -1132,7 +1120,7 @@ dependencies = [
"async-trait",
"bytes",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"mime",
@@ -3693,7 +3681,7 @@ dependencies = [
"fnv",
"futures-core",
"futures-sink",
"http 1.4.1",
"http 1.4.0",
"indexmap 2.14.0",
"slab",
"tokio",
@@ -3799,7 +3787,7 @@ checksum = "629d8f3bbeda9d148036d6b0de0a3ab947abd08ce90626327fc3547a49d59d97"
dependencies = [
"dirs",
"futures",
"http 1.4.1",
"http 1.4.0",
"indicatif",
"libc",
"log",
@@ -3822,7 +3810,7 @@ checksum = "430b33fa84f92796d4d263070b6c0d3ca219df7b9a0e1853ee431029b1612bcd"
dependencies = [
"async-trait",
"bytes",
"http 1.4.1",
"http 1.4.0",
"more-asserts",
"serde",
"thiserror 2.0.18",
@@ -3876,9 +3864,9 @@ dependencies = [
[[package]]
name = "http"
version = "1.4.1"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0"
checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
dependencies = [
"bytes",
"itoa",
@@ -3902,7 +3890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
"bytes",
"http 1.4.1",
"http 1.4.0",
]
[[package]]
@@ -3913,7 +3901,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
dependencies = [
"bytes",
"futures-core",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"pin-project-lite",
]
@@ -3980,7 +3968,7 @@ dependencies = [
"futures-channel",
"futures-core",
"h2 0.4.14",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"httparse",
"httpdate",
@@ -4012,7 +4000,7 @@ version = "0.27.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
dependencies = [
"http 1.4.1",
"http 1.4.0",
"hyper 1.9.0",
"hyper-util",
"rustls 0.23.40",
@@ -4033,7 +4021,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"hyper 1.9.0",
"ipnet",
@@ -4940,7 +4928,7 @@ dependencies = [
"chrono",
"deepsize",
"futures",
"http 1.4.1",
"http 1.4.0",
"io-uring",
"lance-arrow",
"lance-core",
@@ -5161,7 +5149,7 @@ dependencies = [
"futures",
"half",
"hf-hub",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"lance",
"lance-arrow",
@@ -5441,9 +5429,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.30"
version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "loom"
@@ -6013,7 +6001,7 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body-util",
"httparse",
"humantime",
@@ -6126,7 +6114,7 @@ dependencies = [
"base64 0.22.1",
"bytes",
"futures",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"jiff",
"log",
@@ -6151,7 +6139,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "048b1b29c503263bdd80a9afe46a68cd02ea9bd361185b1feab4b151078998e9"
dependencies = [
"futures",
"http 1.4.1",
"http 1.4.0",
"mea",
"opendal-core",
]
@@ -6195,7 +6183,7 @@ checksum = "7452bf3ec61cfd81ac9ad9ada17825931e9e371d44a045c6bfab9596c0a2ac3b"
dependencies = [
"base64 0.22.1",
"bytes",
"http 1.4.1",
"http 1.4.0",
"log",
"opendal-core",
"opendal-service-azure-common",
@@ -6215,7 +6203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f9884c2d8cf8ba2bb077d79c877dac5863ba3bab9e2c9c1e41a2e0491404772"
dependencies = [
"bytes",
"http 1.4.1",
"http 1.4.0",
"log",
"opendal-core",
"opendal-service-azure-common",
@@ -6233,7 +6221,7 @@ version = "0.56.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffb0e45d6c8dcf66ce2da20e241bcb80e6e540e109a4ff20f318f6c9b4c54e0c"
dependencies = [
"http 1.4.1",
"http 1.4.0",
"opendal-core",
]
@@ -6245,7 +6233,7 @@ checksum = "70a49477a10163431896d106136117f5670717f9c9e49cf6f710528800c6633a"
dependencies = [
"async-trait",
"bytes",
"http 1.4.1",
"http 1.4.0",
"log",
"opendal-core",
"percent-encoding",
@@ -6266,7 +6254,7 @@ checksum = "7b2ab7a2a8a11dfe257ef4db5c0de798acbcd0d6429c37382dad2154bc06a388"
dependencies = [
"bytes",
"hf-xet",
"http 1.4.1",
"http 1.4.0",
"log",
"opendal-core",
"percent-encoding",
@@ -6282,7 +6270,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29c8a917829ad06d21b639558532cb0101fe49b040d946d673a73018683fac05"
dependencies = [
"bytes",
"http 1.4.1",
"http 1.4.0",
"log",
"opendal-core",
"quick-xml 0.38.4",
@@ -6301,7 +6289,7 @@ dependencies = [
"base64 0.22.1",
"bytes",
"crc32c",
"http 1.4.1",
"http 1.4.0",
"log",
"md-5 0.10.6",
"opendal-core",
@@ -7710,7 +7698,7 @@ checksum = "57ac2757f3140aa2e213b554148ae0b52733e624fc6723f0cc6bb3d440176c95"
dependencies = [
"anyhow",
"form_urlencoded",
"http 1.4.1",
"http 1.4.0",
"log",
"percent-encoding",
"reqsign-core",
@@ -7728,7 +7716,7 @@ dependencies = [
"anyhow",
"bytes",
"form_urlencoded",
"http 1.4.1",
"http 1.4.0",
"log",
"percent-encoding",
"quick-xml 0.39.4",
@@ -7750,7 +7738,7 @@ dependencies = [
"base64 0.22.1",
"bytes",
"form_urlencoded",
"http 1.4.1",
"http 1.4.0",
"jsonwebtoken",
"log",
"pem",
@@ -7775,7 +7763,7 @@ dependencies = [
"futures",
"hex",
"hmac 0.12.1",
"http 1.4.1",
"http 1.4.0",
"jiff",
"log",
"percent-encoding",
@@ -7802,7 +7790,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35cc609b49c69e76ecaceb775a03f792d1ed3e7755ab3548d4534fd801e3242e"
dependencies = [
"form_urlencoded",
"http 1.4.1",
"http 1.4.0",
"jsonwebtoken",
"log",
"percent-encoding",
@@ -7827,7 +7815,7 @@ dependencies = [
"futures-core",
"futures-util",
"h2 0.4.14",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.9.0",
@@ -7871,7 +7859,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"hyper 1.9.0",
@@ -7925,7 +7913,7 @@ checksum = "199dda04a536b532d0cc04d7979e39b1c763ea749bf91507017069c00b96056f"
dependencies = [
"anyhow",
"async-trait",
"http 1.4.1",
"http 1.4.0",
"reqwest 0.13.3",
"thiserror 2.0.18",
"tower-service",
@@ -8413,9 +8401,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.150"
version = "1.0.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
dependencies = [
"itoa",
"memchr",
@@ -9474,7 +9462,7 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
dependencies = [
"bitflags 2.11.1",
"bytes",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"pin-project-lite",
@@ -9494,7 +9482,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
"http 1.4.1",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"pin-project-lite",
@@ -9783,9 +9771,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uuid"
version = "1.23.2"
version = "1.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d258b83ceec21034727ecee8c382cfa6c3e133699b0742c64571814fb420c9f7"
checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76"
dependencies = [
"getrandom 0.4.2",
"js-sys",
@@ -10515,7 +10503,7 @@ dependencies = [
"clap",
"crc32fast",
"futures",
"http 1.4.1",
"http 1.4.0",
"hyper 1.9.0",
"lazy_static",
"more-asserts",
@@ -10589,7 +10577,7 @@ dependencies = [
"chrono",
"clap",
"gearhash",
"http 1.4.1",
"http 1.4.0",
"itertools 0.14.0",
"lazy_static",
"more-asserts",

26
REVIEW.md Normal file
View File

@@ -0,0 +1,26 @@
# Code review guidelines
Repo-specific guidance for automated PR reviews.
## Cross-SDK parity
LanceDB exposes the same core (`rust/lancedb`) through Python, TypeScript (`nodejs`),
and Java bindings. Behavioral drift between SDKs is a recurring problem, so watch for
parity gaps when reviewing — but only flag real ones:
* If the change adds or modifies user-facing API or behavior in the shared core
(`rust/lancedb`), check whether each binding that should expose it (`python`,
`nodejs`) does. A core change with no corresponding binding update is worth a note.
* If the change adds or modifies a public API in one SDK but not the other, open the
sibling SDK's corresponding module and state whether an equivalent exists. If not,
note it as a possible parity gap and suggest a follow-up issue.
* For bug fixes, first read the sibling SDK's analogous code path to check whether the
same bug exists there. Only raise parity if it actually does. Do not ask to "port" a
fix for a bug that only ever existed in one binding.
* Stay silent on internal-only refactors, tests, docs, and changes with no cross-SDK
surface.
* Parity expectations apply to the Python and TypeScript (`nodejs`) SDKs. Java currently
implements only the remote table, not the local/embedded backend, so it is expected to
be partial — do not flag Java for missing local-only functionality.
* Keep parity feedback to a short, clearly-labeled note (e.g. "Possible SDK parity
gap: …"). It is advisory, not a merge blocker.