Skip to content

Extend official support to Python 3.14 #97

@PierreRaybaut

Description

@PierreRaybaut

Extending Python 3.14 Support for guidata

This document outlines the actions required to officially support Python 3.14 in the guidata library.

Checklist

  • Add Python 3.14 classifier to pyproject.toml
  • Add Python 3.14 to CI test matrix
  • Test with Python 3.14 pre-release/release
  • Verify all dependencies work with Python 3.14
  • Update documentation/release notes
  • Review Python 3.14 changelog for breaking changes

1. Update pyproject.toml

File: pyproject.toml

Add Python 3.14 Classifier

Add the Python 3.14 programming language classifier to the classifiers list:

 classifiers = [
     ...
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
     ...
 ]

2. Update GitHub Actions Workflow

File: .github/workflows/test.yml

Add Python 3.14 to the test matrix:

     strategy:
       fail-fast: false
       matrix:
-        python-version: ["3.9", "3.11", "3.13"]
+        python-version: ["3.9", "3.11", "3.13", "3.14"]

3. Document in Release Notes

File: doc/release_notes/release_3.XX.md (next release)

Add an entry documenting Python 3.14 support:

* Added official support for Python 3.14

4. Testing and Validation

Before merging, ensure the following:

Local Testing

# Install Python 3.14
# Run tests with Python 3.14
python -m pytest

Dependency Compatibility

Verify all dependencies support Python 3.14:

Dependency Min Version Python 3.14 Support
h5py ≥ 3.6 Check upstream
NumPy ≥ 1.22 Check upstream
QtPy ≥ 1.9 Check upstream
requests latest Usually compatible early
PyQt5/PyQt6 > 5.15.5 Check upstream

5. Breaking Changes in Python 3.14

Review Python 3.14 What's New for:

  • Deprecated features removed
  • New syntax or behavior changes
  • Standard library modifications

Key areas to check in guidata:

  • typing module changes (used throughout codebase)
  • importlib changes (used in plugin loading)
  • ast module changes (if used for code analysis)
  • Any deprecated collections usage

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions