Skip to content

Drop pandas on DBR 16.4 + serverless-v3 (no cp312 wheel) - #23

Merged
rugpanov merged 1 commit into
mainfrom
envgen/pandas-py312-drop
Aug 24, 2026
Merged

Drop pandas on DBR 16.4 + serverless-v3 (no cp312 wheel)#23
rugpanov merged 1 commit into
mainfrom
envgen/pandas-py312-drop

Conversation

@rugpanov

Copy link
Copy Markdown
Collaborator

Closes #18. (Split out of #21, which is now merged; this was previously PR #22, auto-closed when #21's branch was deleted.)

Why

DBR 16.4 and serverless-v3 pin pandas~=1.5.3 under requires-python==3.12.* — faithful to the image (confirmed against the DBR 16.4 LTS release notes, which list pandas 1.5.3 on Python 3.12.3). But pandas 1.5.3 has no cp312 wheel — pandas ships Python 3.12 wheels only from 2.1.1 — so uv sync / pip install -c can't install it locally and falls back to a failing source build.

These are the only two Python-3.12 runtimes still on pandas 1.5.x: 13.3/14.3/15.4 predate 3.12, and 17.3+ / serverless-v4+ already ship pandas 2.x. No in-range (~=1.5) version has a cp312 wheel, so widening can't salvage it.

What

  • envgen.py — add DROP_BY_ENV, an environment-scoped drop applied in _filtered (threaded env_name through build_pyproject / build_constraints). pandas is dropped for 16.4.x-scala2.12, 16.4.x-{cpu,gpu}-ml-scala2.12, and serverless-v3 only; every other env keeps its pandas pin. Documented in the module docstring, the DROP_BY_ENV comment, and the README "What is intentionally not included" section.
  • test_envgen.pyEnvScopedDropTest covers the drop on the four targets and the keep elsewhere.
  • Regenerated the four target envs' pyproject.toml + constraints.txt (pandas removed).

Result: pandas resolves to an installable version locally on those two runtimes instead of a hard uv sync failure. (The durable general form — a PyPI wheel-availability guard in sync.py — is noted as future work on #18.)

Verification

  • python -m unittest test_envgen — 13 passing.
  • pandas absent from the 4 targets, present in 15.4 (1.5.3), 17.3 (2.2.3), serverless-v4 (2.2.3); all 33 pyproject.toml valid TOML.

This pull request and its description were written by Isaac.

*Why*

DBR 16.4 and serverless-v3 pin pandas~=1.5.3 under requires-python==3.12.*, faithful
to the image (confirmed against the DBR 16.4 LTS release notes). But pandas 1.5.3 has
no cp312 wheel — pandas ships Python 3.12 wheels only from 2.1.1 — so `uv sync` /
`pip install -c` can't install it locally and falls back to a failing source build.
These are the only two Python-3.12 runtimes still on pandas 1.5.x: 13.3/14.3/15.4
predate 3.12, and 17.3+ / serverless-v4+ already ship pandas 2.x. No in-range (~=1.5)
version has a cp312 wheel, so widening can't salvage it.

*What*

- envgen.py: add DROP_BY_ENV, an environment-scoped drop applied in _filtered
  (threaded env_name through build_pyproject/build_constraints). pandas is dropped for
  16.4.x-scala2.12, 16.4.x-{cpu,gpu}-ml-scala2.12, and serverless-v3 only; every other
  env keeps its pandas pin.
- The drop is version-gated (DROP_BY_ENV value = version prefix "1.5."): it only fires
  when the pin is actually the incompatible 1.5.x, so it self-expires — if one of these
  runtimes is ever re-pinned to a cp312-wheel 2.x, the pin is kept, not silently
  discarded. Documented in the docstring, the DROP_BY_ENV comment, and the README.
- test_envgen.py: EnvScopedDropTest covers the drop on the four targets, the keep
  elsewhere, and the keep-if-repinned-to-2.x (version gate).
- Regenerated: pandas removed from the four target envs' pyproject.toml + constraints.txt.

*Verification*

- python -m unittest test_envgen: 14 passing.
- pandas absent from the 4 targets, present in 15.4 (1.5.3), 17.3 (2.2.3),
  serverless-v4 (2.2.3); all 33 pyproject.toml valid TOML.

Co-authored-by: Isaac <no-reply@databricks.com>
@rugpanov
rugpanov force-pushed the envgen/pandas-py312-drop branch from 0d7b017 to 3467ab9 Compare August 21, 2026 17:11
@rugpanov
rugpanov merged commit 1cfb120 into main Aug 24, 2026
2 checks passed
@rugpanov
rugpanov deleted the envgen/pandas-py312-drop branch August 24, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dbr/16.4.x, serverless-v3: pandas 1.5.3 can't be installed on Python 3.12 (no cp312 wheel)

2 participants