Skip to content

Add Python 3.14 support#620

Draft
BioGeek wants to merge 1 commit into
MLCIL:masterfrom
BioGeek:python3.14
Draft

Add Python 3.14 support#620
BioGeek wants to merge 1 commit into
MLCIL:masterfrom
BioGeek:python3.14

Conversation

@BioGeek

@BioGeek BioGeek commented Jun 8, 2026

Copy link
Copy Markdown

Adds Python 3.14 to the supported version range and CI matrix.

This PR is intentionally in draft mode while two upstream releases are pending. The Python 3.14 blocker appears to be resolved by using Joblib from the main branch where cloudpickle has been unvendored, together with the Python 3.14 fix from cloudpickle PR #594.

Temporary workarounds in this branch:

  • joblib is installed from joblib/joblib@main
  • cloudpickle is installed from BioGeek/cloudpickle@python3.14
  • cloudpickle>=3.0 is added as a temporary direct dependency so uv applies the git source
  • I will replace these with normal PyPI requirements once Joblib and cloudpickle publish releases containing the relevant changes

Validation

Tested locally in a virtual environment with:

  • python 3.14.3
  • joblib 1.6.dev0
  • cloudpickle 3.2.0.dev0

pytest: 1549 passed, 10 warnings in 123.94s

I also ran the full dataset-inclusive test target:

2078 passed, 2 failed, 15 warnings, 24 rerun

Both failures were in tests/datasets/tdc.py while downloading Hugging Face dataset files, with local HTTPS/certificate/read errors such as:

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Authority Key Identifier
httpx.ReadError: [Errno 9] Bad file descriptor

Closes #496

Temporarily source joblib and cloudpickle from upstream git branches until releases containing the Python 3.14 cloudpickle fix and Joblib unvendoring are available.
@j-adamczyk

Copy link
Copy Markdown
Member

The primary blocker is cloudpipe/cloudpickle#585. As soon as your PR (cloudpipe/cloudpickle#594) gets merged and cloudpickle support for 3.14 released, this PR can get merged and we will do the 3.14 release.

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.

Update library to be compatible with Python 3.14

2 participants