Release v1.1.1#

Release Date: October 23, 2025

This is a patch release that restores Python 3.10 compatibility while maintaining support for newer Python versions.

πŸ‘Œ 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)

Python 3.13 + Sphinx 6 was excluded because Sphinx 6.2.1 generates 1870+ deprecation warnings on Python 3.13 due to its use of deprecated datetime.utcfromtimestamp(). This is an unlikely real-world combination.

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

πŸ› Bug Fixes#

  • Fixed test fixtures to handle Sphinx 8.1.x vs 8.2+ XML output differences

  • Ensured consistent test behavior across all Python/Sphinx combinations

πŸ“ Full Changelog#

For complete details, see the CHANGELOG.md.

πŸ™ Acknowledgments#

Thank you to all contributors and users who reported the need for Python 3.10 support!