Pin versions/ranges for spark-connect-client python dependencies using a constraints file

Open
#786 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@Maleware is already working on this.

Since Oct 12, 2026.

Assessment

This issue has not been assessed yet.

Description

type/bug

The current Dockerfile breaks as not all packages are pinned.

spark-connect-client/Dockerfile:44-48 (docker-images origin/main) pins only the four top-level packages:

RUN pip install --no-cache-dir --user \
  "pyspark[connect]==${PRODUCT_VERSION}" \
  "jupyterlab==4.4.1" \
  "scikit-learn==1.3.1" \
  "matplotlib==3.10.1"

A combination of the following breaks the build:

  • scikit-learn 1.3.1 declares numpy <2.0,>=1.17.3 (METADATA inside the image), so numpy ends up on e.g. 1.26.4.
  • pyarrow 26.0.0 declares no dependencies at all on PyPI (requires_dist: null from https://pypi.org/pypi/pyarrow/26.0.0/json), yet it refuses NumPy 1.x at import time (see https://github.com/apache/arrow/pull/50769)
  • pip can't see that conflict

Pinning pyarrow alone would fix that, but the next undeclared runtime constraint could break a nightly build the same way. The real problem is that nothing besides those four packages is pinned.

Suggestion

Use the existing pattern in docker-images by adding a constraints directory to spark-connect-client

Dominant language
Rust
Stars
74
Forks
6
Avg merge
1d 1h
Merged PRs (30d)
15

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stackabletech/spark-k8s-operator

All issues in stackabletech/spark-k8s-operator

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.