Skip to content

Commit a5db60d

Browse files
fix(kernel): drop pyarrow from the [kernel] extra to unbreak poetry lock
Listing bare `pyarrow` in the [kernel] extra forced poetry to co-resolve an unconstrained pyarrow against the kernel's transitive `pyarrow>=23.0.1,<24` across the connector's full 3.8–3.14 matrix. pyarrow 23.x requires Python >=3.10, so the constraint is unsatisfiable on 3.8/3.9 — `poetry lock` failed every CI job with "version solving failed ... pyarrow is forbidden". The kernel wheel already declares `pyarrow>=23.0.1,<24` as a hard runtime dependency, so `pip install databricks-sql-connector[kernel]` still pulls a compatible pyarrow transitively. The databricks-sql-kernel dep stays gated to python>=3.10, which now correctly excludes the whole kernel+pyarrow subtree from the 3.8/3.9 resolution. The kernel's own metadata is the single source of truth for the pyarrow floor. Co-authored-by: Isaac Signed-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>
1 parent ff6e060 commit a5db60d

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

pyproject.toml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,17 @@ pyarrow = ["pyarrow"]
4848
# wheel's floor) — those users get a runtime ImportError if they pass
4949
# ``use_kernel=True``.
5050
#
51-
# pyarrow is listed explicitly: the kernel result path
52-
# (``backend/kernel/result_set.py``) imports pyarrow unconditionally to
53-
# wrap the Arrow batches the kernel returns. The kernel wheel already
54-
# declares ``pyarrow>=23.0.1,<24`` so it's pulled transitively, but
55-
# naming it here documents the connector-side requirement and makes pip
56-
# co-resolve both constraints at install time rather than failing at
57-
# ``use_kernel=True`` runtime if the kernel ever drops its pyarrow dep.
58-
kernel = ["databricks-sql-kernel", "pyarrow"]
51+
# The kernel result path (``backend/kernel/result_set.py``) needs
52+
# pyarrow, but it is NOT listed in this extra on purpose: the published
53+
# kernel wheel declares ``pyarrow>=23.0.1,<24`` as a hard runtime
54+
# dependency, so ``pip install ...[kernel]`` already pulls a compatible
55+
# pyarrow transitively. Listing bare ``pyarrow`` here additionally
56+
# forces poetry to co-resolve an unconstrained pyarrow against the
57+
# kernel's ``>=23.0.1,<24`` (which itself requires Python >=3.10) across
58+
# the connector's full 3.8–3.14 support matrix, which is unsatisfiable
59+
# on 3.8/3.9 and breaks ``poetry lock``. The kernel's own dependency
60+
# metadata is the single source of truth for the pyarrow floor.
61+
kernel = ["databricks-sql-kernel"]
5962

6063
[tool.poetry.group.dev.dependencies]
6164
pytest = "^7.1.2"

0 commit comments

Comments
 (0)