👌 Improvements
Python 3.10 Support Restored
Python 3.10 support has been re-added to the project. Python 3.10 remains actively supported until October 2026, making it an important version to maintain compatibility with.
Key details:
- Python 3.10 is now fully supported alongside Python 3.11, 3.12, and 3.13
- All existing features work identically across all supported Python versions
- Comprehensive test coverage ensures compatibility
Technical Implementation
Version-Specific Sphinx Constraints:
- Python 3.10 is limited to Sphinx 8.1.x (maximum 8.1.3)
- Python 3.11+ continues to use Sphinx 8.2+ as normal
- This constraint exists because Sphinx 8.2.0+ requires Python >=3.11
The test infrastructure automatically handles these version-specific requirements, ensuring correct behavior across all combinations.
Test Matrix Updates
Supported Combinations:
- Python 3.10, 3.11, 3.12: Sphinx 6, 7, 8
- Python 3.13: Sphinx 7, 8
Total: 11 test environments (excludes Python 3.13 + Sphinx 6)
CI/CD Improvements
- Updated GitHub Actions CI matrix to include Python 3.10
- Configured codecov to use Python 3.12 + Sphinx 8 as baseline
- Implemented tokenless codecov uploads for public repository
- Added version-specific test fixtures for Sphinx 8.1 vs 8.2+ compatibility
📦 Installation
Install or upgrade via pip:
pip install --upgrade sphinx-exercise
🔄 Migration Notes
If you're upgrading from v1.1.0:
- No breaking changes
- No action required
- Python 3.10 users can now upgrade safely
If you're on Python 3.10:
- You can now use sphinx-exercise v1.1.1
- Sphinx 8 support is limited to 8.1.x on Python 3.10
- All features work identically to newer Python versions
Full Changelog: https://github.com/executablebooks/sphinx-exercise/blob/main/CHANGELOG.md