[Django] #35844: Python 3.14 compatibility.

67 views
Skip to first unread message

Django

unread,
Oct 16, 2024, 2:19:41 AM10/16/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz | Owner: Mariusz Felisiak
Felisiak |
Type: New | Status: assigned
feature |
Component: Core | Version: 5.0
(Other) |
Severity: Normal | Keywords:
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Python 3.14 final is scheduled for October 2025 (see
​[https://peps.python.org/pep-0745/ PEP 745]). This is a tracking ticket
for compatibility fixes for Django submitted in the meantime.

Django 5.2 will be the first version to support Python 3.14, because
Django 5.1 will end the mainstream support in April 2024.
--
Ticket URL: <https://code.djangoproject.com/ticket/35844>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Oct 16, 2024, 3:05:45 AM10/16/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Claude Paroz):

* stage: Unreviewed => Accepted
* version: 5.0 => dev

--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:1>

Django

unread,
Oct 16, 2024, 2:49:20 PM10/16/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak):

Initial PRs:
- https://github.com/django/django/pull/18686 - Added Python 3.14 to daily
builds.
- https://github.com/django/django/pull/18680 - Fixed
asyncio.iscoroutinefunction() deprecation warnings.
- https://github.com/django/django/pull/18685 - Fixed tests for test
--parallel option.

After applying these 3 changes we'll have one more deprecation warning, 49
test failures, and 24 test errors. All of them are under investigation of
Team Venus of the 3rd Djangonauts cohort, PRs will be submitted soonish :)
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:2>

Django

unread,
Oct 16, 2024, 9:19:27 PM10/16/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"48fa531fbcd96af301781a6e5192509081d7dd2d" 48fa531]:
{{{#!CommitTicketReference repository=""
revision="48fa531fbcd96af301781a6e5192509081d7dd2d"
Refs #35844 -- Added Python 3.14 to daily builds.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:3>

Django

unread,
Oct 17, 2024, 9:15:22 AM10/17/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"bd3b1dfa2422e02ced3a894adb7544e42540c97d" bd3b1dfa]:
{{{#!CommitTicketReference repository=""
revision="bd3b1dfa2422e02ced3a894adb7544e42540c97d"
Refs #35844 -- Used asgiref.sync.iscoroutinefunction() instead of
deprecated asyncio.iscoroutinefunction().

Fixes DeprecationWarning:

'asyncio.iscoroutinefunction' is deprecated and slated for removal in
Python 3.16; use inspect.iscoroutinefunction() instead.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:4>

Django

unread,
Oct 24, 2024, 10:41:50 AM10/24/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"34066d6cf3d66b8a3c7fac86912455dbb2ed0ed6" 34066d6]:
{{{#!CommitTicketReference repository=""
revision="34066d6cf3d66b8a3c7fac86912455dbb2ed0ed6"
Refs #35844 -- Fixed tests for test --parallel option on Python 3.14+.

"forkserver" is the new default on POSIX systems, and Django doesn't
support parallel tests with "forkserver":

https://github.com/python/cpython/commit/b65f2cdfa77d8d12c213aec663ddaaa30d75a4b2
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:5>

Django

unread,
Oct 25, 2024, 7:30:21 AM10/25/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"4c3897bb154a3d3a94e5f7e146d0b8bf41e27d81" 4c3897b]:
{{{#!CommitTicketReference repository=""
revision="4c3897bb154a3d3a94e5f7e146d0b8bf41e27d81"
Refs #35844 -- Corrected expected error messages in commands tests on
Python 3.14+.

Updated CommandTests.test_subparser_invalid_option and
CommandDBOptionChoiceTests.test_invalid_choice_db_option to address
changes in Python 3.14+ error handling.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:6>

Django

unread,
Oct 25, 2024, 12:12:27 PM10/25/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak):

FYI: `urljoin()` behavior change has been accepted as a regression in
Python 3.14, https://github.com/python/cpython/issues/125926.
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:7>

Django

unread,
Oct 29, 2024, 5:06:39 PM10/29/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Claude Paroz <claude@…>):

In [changeset:"fc22fdd34f1e55adde161f5f2dca8db90bbfce80" fc22fdd3]:
{{{#!CommitTicketReference repository=""
revision="fc22fdd34f1e55adde161f5f2dca8db90bbfce80"
Refs #35844 -- Expanded compatibility for expected error messages in
command tests on Python 3.12 and 3.13.

Updated CommandTests.test_subparser_invalid_option and
CommandDBOptionChoiceTests.test_invalid_choice_db_option to use
assertRaisesRegex() for compatibility with modified error messages in
Python 3.12, 3.13, and 3.14+..
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:8>

Django

unread,
Oct 30, 2024, 6:06:23 AM10/30/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"b57a8395b58ae47124efcc33455abc7d32553354" b57a839]:
{{{#!CommitTicketReference repository=""
revision="b57a8395b58ae47124efcc33455abc7d32553354"
[5.1.x] Refs #35844 -- Expanded compatibility for expected error messages
in command tests on Python 3.12 and 3.13.

Updated CommandTests.test_subparser_invalid_option and
CommandDBOptionChoiceTests.test_invalid_choice_db_option to use
assertRaisesRegex() for compatibility with modified error messages in
Python 3.12, 3.13, and 3.14+..

Backport of fc22fdd34f1e55adde161f5f2dca8db90bbfce80 from main.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:9>

Django

unread,
Oct 30, 2024, 6:30:01 AM10/30/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"5064ddb4f9532cb2827744c052f277c39b74920a" 5064ddb]:
{{{#!CommitTicketReference repository=""
revision="5064ddb4f9532cb2827744c052f277c39b74920a"
[5.0.x] Refs #35844 -- Expanded compatibility for expected error messages
in command tests on Python 3.12.

Updated CommandTests.test_subparser_invalid_option and
CommandDBOptionChoiceTests.test_invalid_choice_db_option to use
assertRaisesRegex() for compatibility with modified error messages in
Python 3.12, 3.13, and 3.14+..

Backport of fc22fdd34f1e55adde161f5f2dca8db90bbfce80 from main.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:10>

Django

unread,
Oct 30, 2024, 6:34:04 AM10/30/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"ea4a1fb61e0bc6a4294a0123b82183da947e5efb" ea4a1fb]:
{{{#!CommitTicketReference repository=""
revision="ea4a1fb61e0bc6a4294a0123b82183da947e5efb"
[4.2.x] Refs #35844 -- Expanded compatibility for expected error messages
in command tests on Python 3.12.

Updated CommandTests.test_subparser_invalid_option and
CommandDBOptionChoiceTests.test_invalid_choice_db_option to use
assertRaisesRegex() for compatibility with modified error messages in
Python 3.12, 3.13, and 3.14+..

Backport of fc22fdd34f1e55adde161f5f2dca8db90bbfce80 from main.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:11>

Django

unread,
Nov 17, 2024, 12:52:23 PM11/17/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak):

Replying to [comment:7 Mariusz Felisiak]:
> FYI: `urljoin()` behavior change has been accepted as a regression in
Python 3.14, https://github.com/python/cpython/issues/125926.

Fixed in
https://github.com/python/cpython/commit/dbb6e22cb1f533bba00a61a5b63ec68af9d48836.
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:12>

Django

unread,
Nov 18, 2024, 10:05:48 AM11/18/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"8d7b1423f89bcc3df57333fc79fa5aead17b0cbc" 8d7b142]:
{{{#!CommitTicketReference repository=""
revision="8d7b1423f89bcc3df57333fc79fa5aead17b0cbc"
Refs #35844 -- Fixed copying BaseContext and its subclasses on Python
3.14+.

super objects are copyable on Python 3.14+:

https://github.com/python/cpython/commit/5ca4e34bc1aab8321911aac6d5b2b9e75ff764d8

and can no longer be used in BaseContext.__copy__().
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:13>

Django

unread,
Dec 20, 2024, 8:18:20 AM12/20/24
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Sarah Boyce <42296566+sarahboyce@…>):

In [changeset:"fcd9d08379a2aee3b2c49eab0d0b8db6fd66d091" fcd9d08]:
{{{#!CommitTicketReference repository=""
revision="fcd9d08379a2aee3b2c49eab0d0b8db6fd66d091"
Refs #35844 -- Fixed OtherModelFormTests.test_prefetch_related_queryset()
test on Python 3.14+.

https://github.com/python/cpython/commit/5a23994a3dbee43a0b08f5920032f60f38b63071
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:14>

Django

unread,
Jan 13, 2025, 10:53:58 AMJan 13
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"0a341125d1f6ea8e5e80522a98725f906fb08350" 0a341125]:
{{{#!CommitTicketReference repository=""
revision="0a341125d1f6ea8e5e80522a98725f906fb08350"
Refs #35844 -- Removed unnecessary ArgumentParser.add_argument_group()'s
prefix_chars argument.

The `prefix_chars` argument is deprecated since
https://github.com/python/cpython/commit/7b04496e5c7ed47e9653f4591674fc9ffef34587.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:15>

Django

unread,
May 14, 2025, 4:43:34 PMMay 14
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"d6925f0d6beb3c08ae24bdb8fd83ddb13d1756e4" d6925f0]:
{{{#!CommitTicketReference repository=""
revision="d6925f0d6beb3c08ae24bdb8fd83ddb13d1756e4"
Refs #35844 -- Skipped argon2-cffi requirement in Windows for Python
3.14+.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:16>

Django

unread,
May 15, 2025, 1:53:03 PMMay 15
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"0b2ed4f7c8396c8d9aa8428a40e6b25c31312889" 0b2ed4f7]:
{{{#!CommitTicketReference repository=""
revision="0b2ed4f7c8396c8d9aa8428a40e6b25c31312889"
Refs #35844 -- Skipped selenium and geoip2 requirement in Windows for
Python 3.14+.

Follow up to d6925f0d6beb3c08ae24bdb8fd83ddb13d1756e4.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:17>

Django

unread,
Jul 9, 2025, 12:02:00 PMJul 9
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"426be74022ec31d571858a5b8155300c07a4bdbf" 426be740]:
{{{#!CommitTicketReference repository=""
revision="426be74022ec31d571858a5b8155300c07a4bdbf"
Refs #35844, #35945 -- Used asgiref.sync.iscoroutinefunction() instead of
deprecated asyncio.iscoroutinefunction().

Follow up to bd3b1dfa2422e02ced3a894adb7544e42540c97d.
Introduced in 2ae3044d9d4dfb8371055513e440e0384f211963.

Fixes DeprecationWarning:

'asyncio.iscoroutinefunction' is deprecated and slated for removal
in Python 3.16; use inspect.iscoroutinefunction() instead.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:18>

Django

unread,
Jul 19, 2025, 6:58:52 AMJul 19
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Michał Górny):

* cc: Michał Górny (added)

--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:19>

Django

unread,
Aug 1, 2025, 3:43:34 AMAug 1
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by GitHub <noreply@…>):

In [changeset:"500bd42b96fb2c668fb4e4d218869982b97fa552" 500bd42]:
{{{#!CommitTicketReference repository=""
revision="500bd42b96fb2c668fb4e4d218869982b97fa552"
Refs #35844 -- Readded optional requirements on daily builds for Python
3.14.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:20>

Django

unread,
Oct 17, 2025, 9:37:25 AMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* has_patch: 0 => 1

Comment:

[https://github.com/django/django/pull/19964 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:21>

Django

unread,
Oct 17, 2025, 10:41:53 AMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Jacob Walls):

* stage: Accepted => Ready for checkin

--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:22>

Django

unread,
Oct 17, 2025, 1:25:15 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"2d9c194d5a0d9ae746e16ee5f641e30d544dc31b" 2d9c194]:
{{{#!CommitTicketReference repository=""
revision="2d9c194d5a0d9ae746e16ee5f641e30d544dc31b"
Refs #35844 -- Relaxed GEOSIOTest.test02_wktwriter() test assertion.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:23>

Django

unread,
Oct 17, 2025, 1:25:16 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"56977b466c33ca3da14a1ed2609172425a76a34e" 56977b46]:
{{{#!CommitTicketReference repository=""
revision="56977b466c33ca3da14a1ed2609172425a76a34e"
Refs #35844 -- Doc'd Python 3.14 compatibility.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:24>

Django

unread,
Oct 17, 2025, 1:28:02 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"915d10a57d00ff3a6a67e095d5779e82f2c1ffba" 915d10a]:
{{{#!CommitTicketReference repository=""
revision="915d10a57d00ff3a6a67e095d5779e82f2c1ffba"
[6.0.x] Refs #35844 -- Relaxed GEOSIOTest.test02_wktwriter() test
assertion.

Backport of 2d9c194d5a0d9ae746e16ee5f641e30d544dc31b from main
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:25>

Django

unread,
Oct 17, 2025, 1:28:03 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"a27c2ef906ef7239d7714fe2e4adc48b2aa8a65a" a27c2ef]:
{{{#!CommitTicketReference repository=""
revision="a27c2ef906ef7239d7714fe2e4adc48b2aa8a65a"
[6.0.x] Refs #35844 -- Doc'd Python 3.14 compatibility.

Backport of 56977b466c33ca3da14a1ed2609172425a76a34e from main.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:26>

Django

unread,
Oct 17, 2025, 2:11:24 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: assigned
Component: Core (Other) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"a8c9b5b2636ebda87d938b61cbf4bfec476ca0c9" a8c9b5b]:
{{{#!CommitTicketReference repository=""
revision="a8c9b5b2636ebda87d938b61cbf4bfec476ca0c9"
[5.2.x] Refs #35844 -- Doc'd Python 3.14 compatibility.

Backport of 56977b466c33ca3da14a1ed2609172425a76a34e from main.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:27>

Django

unread,
Oct 17, 2025, 2:20:33 PMOct 17
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* resolution: => fixed
* status: assigned => closed

--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:28>

Django

unread,
Oct 22, 2025, 8:04:05 AMOct 22
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Natalia Bidart):

GHA are showing this error on test runs on linux, which I also get
locally:
{{{

======================================================================
FAIL: test_custom_project_template_context_variables
(admin_scripts.tests.StartProject.test_custom_project_template_context_variables)
Make sure template context variables are rendered with proper values
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/unittest/case.py",
line 58, in testPartExecutor
yield
File
"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/unittest/case.py",
line 669, in run
self._callTestMethod(testMethod)

File
"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/unittest/case.py",
line 615, in _callTestMethod
result = method()
^^^^^^^^^^^^^^^
File "/home/runner/work/django/django/tests/admin_scripts/tests.py",
line 2859, in test_custom_project_template_context_variables
self.assertIn('project_directory = "%s"' % testproject_dir, content)
^^^^^^^^^^^
File
"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/unittest/case.py",
line 1192, in assertIn
self.fail(self._formatMessage(msg, standardMsg))
^^^^^^^^^^^
File
"/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/unittest/case.py",
line 750, in fail
raise self.failureException(msg)
^^^^^^^^^^^^^^^
AssertionError: 'project_directory =
"/tmp/django_znh73pf9/django_hl40h621/tmp44uj0vns/test_project/project_dir"'
not found in '# The manage.py of the another_project test project\n\n#
template context:\nproject_name = "another_project"\nproject_directory =
(\n
"/tmp/django_znh73pf9/django_hl40h621/tmp44uj0vns/test_project/project_dir"\n)\nsecret_key
= "django-insecure-j8z2ob$oh3de^_2&lv=z9b+=h*pnh_c#y3##je+%jy&a6+prr1"\n'
}}}

I'll work on a fix.
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:29>

Django

unread,
Oct 22, 2025, 10:13:05 AMOct 22
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Natalia Bidart):

Created #36680 to track the test failure. This is about temp dirs having
longer names (likely related to Python 3.14 and `forkserver`) and having
`black` installed in the venv.
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:30>

Django

unread,
6:28 PM (5 hours ago) 6:28 PM
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Jacob Walls <jacobtylerwalls@…>):

In [changeset:"c0d7fbe5021b0d2aaa5bb1196a6b43afcecec4d0" c0d7fbe]:
{{{#!CommitTicketReference repository=""
revision="c0d7fbe5021b0d2aaa5bb1196a6b43afcecec4d0"
Refs #35844 -- Ran selenium tests with --parallel=1.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:32>

Django

unread,
6:28 PM (5 hours ago) 6:28 PM
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Jacob Walls <jacobtylerwalls@…>):

In [changeset:"c60a708b58d6c8725f2e9dc46ac43d38250989b8" c60a708]:
{{{#!CommitTicketReference repository=""
revision="c60a708b58d6c8725f2e9dc46ac43d38250989b8"
Refs #35844 -- Checked for forkserver mode when running runtests.py with
--selenium and --parallel.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:31>

Django

unread,
9:30 PM (2 hours ago) 9:30 PM
to django-...@googlegroups.com
#35844: Python 3.14 compatibility.
-------------------------------------+-------------------------------------
Reporter: Mariusz Felisiak | Owner: Mariusz
| Felisiak
Type: New feature | Status: closed
Component: Core (Other) | Version: dev
Severity: Normal | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Jacob Walls <jacobtylerwalls@…>):

In [changeset:"a1ce852e52f45da7528446cef3a1f02416531771" a1ce852e]:
{{{#!CommitTicketReference repository=""
revision="a1ce852e52f45da7528446cef3a1f02416531771"
Refs #35844 -- Ran further selenium tests with --parallel=1.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/35844#comment:33>
Reply all
Reply to author
Forward
0 new messages