Skip to content

ci: remove Python package build dependencies for Python 3.14#796

Draft
jtligon wants to merge 6 commits into
jumpstarter-dev:mainfrom
jtligon:cleanup/remove-pillow-build-deps
Draft

ci: remove Python package build dependencies for Python 3.14#796
jtligon wants to merge 6 commits into
jumpstarter-dev:mainfrom
jtligon:cleanup/remove-pillow-build-deps

Conversation

@jtligon

@jtligon jtligon commented Jun 15, 2026

Copy link
Copy Markdown

Summary

Removes the system build dependencies (libjpeg-dev, gfortran, libopenblas-dev, etc.) added for Python 3.14, as pre-built wheels are now available for both Pillow and scipy.

Background

When Python 3.14 support was added in #775, neither Pillow nor scipy had pre-built wheels yet, so we needed to install system libraries to build them from source.

When to merge

DO NOT MERGE until both Pillow and scipy publish Python 3.14 wheels to PyPI.

How to verify wheels are available:

  1. Check PyPI:

  2. Check CI logs (easier):

    • Currently shows: Building pillow==11.2.1 and Building scipy==1.16.0
    • After wheels available: Downloaded pillow and Downloaded scipy

CI signals to watch:

Run a test CI build and check the pytest-matrix logs:

# Currently (building from source):
Building pillow==11.2.1
Building scipy==1.16.0

# After wheels available (ready to merge):
Downloaded pillow
Downloaded scipy

Impact

  • Before: ~10-20s overhead per Python 3.14 CI job for unused package installation
  • After: No overhead, faster CI

Closes

#795

Checklist before merging

  • Pillow has published cp314 wheels to PyPI
  • scipy has published cp314 wheels to PyPI
  • CI logs show Downloaded pillow and Downloaded scipy instead of building
  • Python 3.14 pytest jobs still pass without build dependencies

jtligon and others added 5 commits June 10, 2026 08:33
Upgrade project Python version from 3.11/3.12 to 3.14.

Changes:
- Update .py-version to 3.14
- Update all requires-python fields to >=3.14 across all packages
- Update ruff target-version to py314
- Update CI to test with Python 3.14
- Update uv.lock with Python 3.14 compatible dependencies

This required upgrading pydantic-core to 2.46.4 which has Python 3.14
support via prebuilt wheels.

Note: Building with Python 3.14 requires:
- PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 for Rust extensions
- OpenBLAS (macOS: brew install openblas)
- gfortran (macOS: brew install gcc)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add missing Apache-2.0 license to jumpstarter-driver-iscsi
- Remove duplicate pytest-asyncio dependency in jumpstarter-driver-http
- Fix jumpstarter-driver-opendal entry point group from adapters to drivers

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Update version requirements to support Python 3.12, 3.13, and 3.14:
- Change requires-python from >=3.14 to >=3.12
- Update CI to test all three versions: 3.12, 3.13, 3.14
- Set ruff target-version to py312 (lowest supported)

This allows users on Python 3.12 and 3.13 to continue using the
project while also supporting the newest Python 3.14.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Revert jumpstarter-driver-opendal entry point back to jumpstarter.adapters
- Update driver template to use Python 3.12+ (was 3.11)
- Remove PR_DESCRIPTION.md file

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Pillow doesn't have pre-built wheels for Python 3.14 yet, so it needs
to build from source. This requires system libraries (libjpeg, etc.)
to be present on the CI runners.

Added conditional installation steps for both Ubuntu and macOS that
only run when testing with Python 3.14.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9a17a645-b807-4d4d-95cc-ee5c9981c5a6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Pillow and scipy now provide pre-built wheels for Python 3.14, so the
system build dependencies (libjpeg-dev, gfortran, libopenblas-dev, etc.)
are no longer needed.

This removes the conditional installation steps added in the Python
3.14 upgrade, reducing CI overhead.

Closes jumpstarter-dev#795

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@jtligon jtligon force-pushed the cleanup/remove-pillow-build-deps branch from b39de56 to 4cb5b9f Compare June 15, 2026 19:09
@jtligon jtligon changed the title ci: remove Pillow build dependencies for Python 3.14 ci: remove Python package build dependencies for Python 3.14 Jun 15, 2026
@jtligon jtligon mentioned this pull request Jun 15, 2026
6 tasks
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.

1 participant