-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Labels
Description
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.144. Testing and Validation
Before merging, ensure the following:
Local Testing
# Install Python 3.14
# Run tests with Python 3.14
python -m pytestDependency 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:
typingmodule changes (used throughout codebase)importlibchanges (used in plugin loading)astmodule changes (if used for code analysis)- Any deprecated
collectionsusage
Reactions are currently unavailable