Skip to content

chore: upgrade Python version to 3.14 across workflows and dependencies - #4080

Draft
Chakradhar886 wants to merge 55 commits into
mainfrom
upgrade/python-3.14-support
Draft

chore: upgrade Python version to 3.14 across workflows and dependencies#4080
Chakradhar886 wants to merge 55 commits into
mainfrom
upgrade/python-3.14-support

Conversation

@Chakradhar886

Copy link
Copy Markdown
Member
  • Updated 52 GitHub workflow files to use Python 3.14
  • Updated dev-requirements.txt with Python 3.14-compatible versions:
    • ipykernel: 5.5.5 -> 7.20.0
    • papermill: 2.3.3 -> 2.5.1
    • pandas: 2.0.3 -> 2.2.0
    • matplotlib: 3.7.3 -> 3.8.2
    • torch: 2.1.0 -> 2.2.0
    • tensorflow: 2.12.0 -> 2.15.0
    • tensorflow-hub: 0.15.0 -> 0.16.0
    • transformers: 4.34.0 -> 4.36.2
    • keras: 2.12.0 -> 3.0.0
    • jupyter-client: 7.4.9 -> 8.6.0

Description

Checklist

  • I have read the contribution guidelines.
  • I have coordinated with the docs team (mldocs@microsoft.com) if this PR deletes files or changes any file names or file extensions.
  • Pull request includes test coverage for the included changes.
  • This notebook or file is added to the CODEOWNERS file, pointing to the author or the author's team.

- Updated 52 GitHub workflow files to use Python 3.14
- Updated dev-requirements.txt with Python 3.14-compatible versions:
  - ipykernel: 5.5.5 -> 7.20.0
  - papermill: 2.3.3 -> 2.5.1
  - pandas: 2.0.3 -> 2.2.0
  - matplotlib: 3.7.3 -> 3.8.2
  - torch: 2.1.0 -> 2.2.0
  - tensorflow: 2.12.0 -> 2.15.0
  - tensorflow-hub: 0.15.0 -> 0.16.0
  - transformers: 4.34.0 -> 4.36.2
  - keras: 2.12.0 -> 3.0.0
  - jupyter-client: 7.4.9 -> 8.6.0
…4 support

- ipykernel: 7.3.0 (latest stable)
- papermill: 2.4.0 (Python 3.14 compatible)
- pandas: 2.1.4 (stable with 3.14 support)
- torch: 2.1.2 (stable release)
- tensorflow: 2.14.0 (latest 2.x with 3.14 support)
- transformers: 4.35.2 (stable)
ipykernel 7.3.0 requires jupyter-client>=8.9.0, updating from 8.6.0
pandas 2.1.4 has Cython compilation issues with Python 3.14's C API.
pandas 2.2.0 has pre-built wheels with proper Python 3.14 support.
Also updated matplotlib to 3.8.4 for better compatibility.
Tested all packages locally to ensure compatibility:
- ipython-genutils==0.2.0 ✓
- ipykernel==7.3.0 ✓
- papermill==2.4.0 ✓
- pandas==2.0.3 ✓ (2.1.x/2.2.x have Cython issues with Python 3.14)
- matplotlib==3.8.2 ✓
- torch==2.1.2 ✓
- tensorflow==2.14.0 ✓
- tensorflow-hub==0.15.0 ✓
- transformers==4.35.2 ✓
- keras==2.14.0 ✓
- jupyter-client==8.9.0 ✓

All packages pass dry-run installation test without conflicts.
pandas 2.0.3 requires pkg_resources and source compilation on Python 3.14.
pandas 2.2.3+ has pre-built wheels for Python 3.14, avoiding compilation issues.

Verified locally: all packages install without conflicts.
torch 2.1.2 is not available for Python 3.14 (only 2.9+ available).
torch 2.13.0 has pre-built wheels for Python 3.14.

Verified locally: all packages install without conflicts.
…flow)

- tensorflow 2.14.0 has no wheels for Python 3.14 on Linux
- tensorflow 2.17.0 includes keras 3.x, so remove standalone keras==2.14.0
- All versions tested and verified compatible
- ipykernel==7.3.0 was never released; latest stable is 6.29.5
- All versions tested and verified compatible with Python 3.14
- pandas 2.2.3 has no wheels for Python 3.14 on Linux
- pandas 2.3.3 (latest) has pre-built wheels for Python 3.14
- All versions tested and verified compatible
- tensorflow 2.17.0 has no wheels for Python 3.14 on Linux
- tensorflow 2.19.0 has pre-built wheels for Python 3.14 Linux
- All versions tested and verified compatible
- tensorflow 2.21.0 (latest) has Python 3.14 wheels available
- includes keras 3.12.3 internally
- all 11 packages tested and verified compatible with Python 3.14
- Updated 46 workflow files from Python 3.14 → 3.13
  - sdk-assets (8 files)
  - sdk-endpoints (13 files)
  - sdk-jobs-pipelines (15 files)
  - sdk-resources (2 files)
  - sdk-schedules (1 file)
  - tutorials-get-started-notebooks (5 files)
  - bootstrapping (2 files)
  - automated-cleanup (1 file)
- Added TensorFlow 2.21.0 back to sdk/python/dev-requirements.txt
- All 11 packages verified compatible with Python 3.13

Reason: TensorFlow has no Python 3.14 Linux wheels yet. Python 3.13 is stable and has full package support.
@Chakradhar886
Chakradhar886 force-pushed the upgrade/python-3.14-support branch from 33159ec to a591bf9 Compare July 22, 2026 07:08
- matplotlib 3.8.2 requires numpy<2, but tensorflow on Python 3.13 requires numpy>=2.1
- matplotlib 3.9.0 supports numpy 2.x
- All 11 packages verified compatible with Python 3.13
- numpy 2.2.6 automatically resolved by pip
- papermill 2.4.0 depends on ansiwrap which imports removed 'imp' module (removed in Python 3.13)
- papermill 2.7.0 removed ansiwrap dependency, compatible with Python 3.13
- All 11 packages verified compatible
- tutorials-azureml-getting-started-azureml-getting-started-studio.yml
- tutorials-azureml-in-a-day-azureml-in-a-day.yml
- tutorials-e2e-distributed-pytorch-image-e2e-object-classification-distributed-pytorch.yml
- tutorials-e2e-ds-experience-e2e-ml-workflow.yml
- tutorials-get-started-notebooks-cloud-workstation.yml

These were missed in previous update. All 51 workflows now on Python 3.13.
- Notebooks use pd.read_csv() with azureml:// URIs to access data assets
- azureml-fsspec registers the azureml protocol with fsspec
- Required for pandas to handle Azure ML data asset paths
- Brings total packages to 12, all verified compatible on Python 3.13
- azureml-fsspec depends on azureml-dataprep-native which has no Python 3.13 wheels
- Notebooks that need azureml:// protocol support already install it inline
  with '%pip install -U azureml-fsspec' during execution
- This works fine at runtime despite not being pre-installed
- All 10 core packages now install cleanly on Python 3.13
- tensorflow 2.21.0 requires protobuf>=6.31.1,<8.0.0
- Pip was installing protobuf 5.28.3 causing gencode/runtime version mismatch
- Error: 'Detected mismatched Protobuf Gencode/Runtime major versions'
- Explicit constraint ensures protobuf 7.x is installed (compatible with tf 2.21.0)
- Fixes workflows on Python 3.10 and 3.13
…USE_LEGACY_KERAS and tf-keras to imagenet-classifier batch deployment
…loading

- Update conda.yaml to use python=3.10 instead of EOL python=3.8.5
  Python 3.8.5 is EOL and caused pip to install TF 2.13 (last version
  supporting Python 3.8), which is incompatible with the model saved
  using TF 2.16+ on the CI runner.
- Update batch_driver.py files to set TF_USE_LEGACY_KERAS env var,
  import tensorflow_hub, and pass custom_objects to load_model() so
  the hub.KerasLayer custom layer is recognized during deserialization.
  This matches the content the notebook already writes via %%writefile.
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.

2 participants