feat(kernel): consume published @databricks/databricks-sql-kernel napi packages (0.2.0)#434
Merged
Merged
Conversation
…i packages (0.2.0) Declare the eight per-platform kernel binary packages as optionalDependencies pinned to 0.2.0, so a released @databricks/sql pulls the matching native binding from npm on install instead of requiring a local 'npm run build:native'. npm resolves only the package matching the consumer's platform; the rest are skipped (optional), so installs on unsupported platforms keep working with the Thrift backend. Refresh native/kernel/README.md to drop the stale 'M0 / not yet published' note now that all 8 triples are live. Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
Regenerated against public npm so the eight @databricks/databricks-sql-kernel-* 0.2.0 entries carry registry.npmjs.org resolved URLs + integrity, keeping npm ci in sync with package.json. Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
Adds a focused live-warehouse e2e that connects with useKernel:true, runs SELECT 1, fetches the row, and asserts the value === 1 — the full DBSQLClient → KernelBackend → napi (npm-installed binding) → warehouse round-trip. Complements execution-e2e.test.ts, which exercises the operation lifecycle but does not read rows. Gated on the pecotesting secrets; skips when absent. Verified passing against a live warehouse on the published kernel 0.2.0 binary. Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
6091ef3 to
e9fda59
Compare
|
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
vikrantpuppala
approved these changes
Jun 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Declares the eight per-platform kernel binary packages as
optionalDependencies, pinned to 0.2.0:@databricks/databricks-sql-kernel-{linux-x64-gnu,linux-arm64-gnu,linux-x64-musl,linux-arm64-musl,darwin-x64,darwin-arm64,win32-x64-msvc,win32-arm64-msvc}Also refreshes
native/kernel/README.mdto drop the stale "M0 / not yet published" note.Why
The kernel's per-platform napi packages are now published on npm (umbrella + 8 triples at
0.2.0). With them inoptionalDependencies, a released@databricks/sqlpulls the matching native binding from npm at install time instead of requiring a localnpm run build:native. npm installs only the package matching the consumer'sprocess.platform/process.arch; the others are skipped (that's whatoptionalDependenciestolerates), so installs on unsupported platforms keep working on the Thrift backend.The committed
native/kernel/index.jsrouter +index.d.tsare unchanged — the driver still owns the type contract and just needs the.nodebinary, which now arrives via the optional dep.Testing
Verified locally on
darwin-arm64against the published0.2.0binary (binding loads,version()→0.2.0) with main's driver code:KERNEL_REVon main (0d46716) matches the0.2.0binding's exports (assertBindingShapepasses).package-lock.jsonpackage-lock.jsonis not updated in this commit. The lockfile must be regenerated against public npm (the internalnpm-proxy.dev.databricks.comdoes not mirror the@databricks/databricks-sql-kernel*scope yet — separate allowlist request in flight). Run with VPN off:npm install --registry=https://registry.npmjs.org/ git add package-lock.json && git commitCI's
npm ciwill be red until that lands.This pull request and its description were written by Isaac.