Skip to content

Add support to Python 3.14, drop Python < 3.10#115

Open
carlosantoniodasilva wants to merge 14 commits intomainfrom
ca-python-3.14
Open

Add support to Python 3.14, drop Python < 3.10#115
carlosantoniodasilva wants to merge 14 commits intomainfrom
ca-python-3.14

Conversation

@carlosantoniodasilva
Copy link
Member

@carlosantoniodasilva carlosantoniodasilva commented Nov 10, 2025

Python 3.14 was released Oct 7, 2025.
https://docs.python.org/3/whatsnew/3.14.html

Python 3.8 and 3.9 have ended support.
https://devguide.python.org/versions/

Python 3.10 should be supported for security fixes until 2026-10.

Some additional changes:

  • updates our poetry version to v1.8.4, to test with a more recent one
  • adds caching to the sample apps dependencies that are installed & tested
  • removes old Django v2.x sample apps (which doesn't support Python 3.10)

I'm running into some test trouble with supporting Python v3.8 all the
way to v3.14 now, and what seems to be incompatibilities here and there.

This fixes the last build issue to get v3.14 working:

    error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13)
    = help: please check if an updated version of PyO3 is available. Current version: 0.22.2
    = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI

I couldn't find the magic incantation to get the fastapi tests running
with the right dependencies across all versions, so using this ENV var
for now to get it green.

https://github.com/PyO3/pyo3/blob/v0.27.1/CHANGELOG.md#0271---2025-10-21

I'll circle back on it as we will be dropping support to older versions
at some point soon hopefully, so for now I just want to get the build on
Python v3.14 going.
Drop support to Python < 3.10 officially, since they've reached EOL:
https://devguide.python.org/versions/

This simplifies our test matrix and makes it easier to support new
versions such as Python 3.14 going forward.
@carlosantoniodasilva carlosantoniodasilva changed the title Test with Python 3.14 Add support to Python 3.14, drop Python < 3.10 Feb 3, 2026
Even though I don't think we're using it?
Django v2.2 does not support Python v3.10, according to their release notes:

> Django 2.2 supports Python 3.5, 3.6, 3.7, 3.8 (as of 2.2.8), and 3.9 (as of 2.2.17)
https://docs.djangoproject.com/en/6.0/releases/2.2/

Plus, the last release was in 2022.
https://docs.djangoproject.com/en/6.0/releases/2.2.28/

Django v3.2 seems to be the first version to officially support Python v3.10:
https://docs.djangoproject.com/en/6.0/releases/3.2/

I'm keeping our other Django samples which are using v4.2 now, for testing / coverage.
```
% poetry --version
Poetry (version 1.8.4)
```
So they don't install dependencies every time. Poetry should be smart
enough to run install & use the .venv cache when available.

This also changes the main cache to just hash the main `poetry.lock`
file, since that's all it needs, and it'd potentially cause a cache miss
when only the sample apps might've changed.
@carlosantoniodasilva carlosantoniodasilva marked this pull request as ready for review February 4, 2026 13:44
Copy link
Contributor

@adamlogic adamlogic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯

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