Opened 14 months ago

Closed 2 months ago

Last modified 7 weeks ago

#34900 closed New feature (fixed)

Python 3.13 compatibility.

Reported by: Mariusz Felisiak Owned by: Mariusz Felisiak
Component: Core (Other) Version: 5.1
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Python 3.13 final is scheduled for October 2024 (see PEP 719). This is a tracking ticket for compatibility fixes for Django submitted in the meantime.

Django 5.1 will be the first version to support Python 3.13, because Django 5.0 will end the mainstream support in August 2024.

Change History (29)

comment:1 by GitHub <noreply@…>, 14 months ago

In 20b7aac7:

Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.1+.

Python 3.12.1+ no longer includes skipped tests in the number of
running tests. Check out:

https://github.com/python/cpython/issues/110890#issuecomment-1763458686
https://github.com/python/cpython/pull/106588

comment:2 by Mariusz Felisiak <felisiak.mariusz@…>, 14 months ago

In 448510a9:

[5.0.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.1+.

Python 3.12.1+ no longer includes skipped tests in the number of
running tests. Check out:

https://github.com/python/cpython/issues/110890#issuecomment-1763458686
https://github.com/python/cpython/pull/106588
Backport of 20b7aac7ca60b0352d926340622e618bcbee54a8 from main

comment:3 by Mariusz Felisiak <felisiak.mariusz@…>, 14 months ago

In a576ef9:

[4.2.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.1+.

Python 3.12.1+ no longer includes skipped tests in the number of
running tests. Check out:

https://github.com/python/cpython/issues/110890#issuecomment-1763458686
https://github.com/python/cpython/pull/106588
Backport of 20b7aac7ca60b0352d926340622e618bcbee54a8 from main

comment:4 by GitHub <noreply@…>, 13 months ago

In 00a950f9:

Refs #34900 -- Added Python 3.13 to daily builds.

comment:5 by GitHub <noreply@…>, 13 months ago

In 6af83d2e:

Refs #34900 -- Skipped argon2-cffi requirement on daily builds for Python 3.13.

comment:6 by GitHub <noreply@…>, 13 months ago

In 584fc49:

Refs #34900 -- Skipped Selenium requirement on daily builds for Python 3.13.

Selenium required trio and trio required cffi on Windows.

comment:7 by Mariusz Felisiak <felisiak.mariusz@…>, 10 months ago

In bc8471f0:

Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.2+.

Python 3.12.2 bring back the skipped tests in the number of running
tests. Refs
https://github.com/python/cpython/commit/0a737639dcd3b7181250f5d56694b192eaddeef0

comment:8 by Mariusz Felisiak <felisiak.mariusz@…>, 10 months ago

In 1ba5afa:

[5.0.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.2+.

Python 3.12.2 bring back the skipped tests in the number of running
tests. Refs
https://github.com/python/cpython/commit/0a737639dcd3b7181250f5d56694b192eaddeef0

Backport of bc8471f0aac8f0c215b9471b594d159783bac19b from main

comment:9 by Mariusz Felisiak <felisiak.mariusz@…>, 10 months ago

In 86d8034:

[4.2.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.2+.

Python 3.12.2 bring back the skipped tests in the number of running
tests. Refs
https://github.com/python/cpython/commit/0a737639dcd3b7181250f5d56694b192eaddeef0

Backport of bc8471f0aac8f0c215b9471b594d159783bac19b from main

comment:10 by GitHub <noreply@…>, 10 months ago

In 3426a5c3:

Refs #34900 -- Fixed CommandTypes.test_help_default_options_with_custom_arguments test on Python 3.13+.

https://github.com/python/cpython/commit/c4a2e8a2c5188c3288d57b80852e92c83f46f6f3

comment:11 by GitHub <noreply@…>, 9 months ago

In b231bcd1:

Refs #34900 -- Fixed SafeMIMEText.set_payload() crash on Python 3.13.

Payloads with surrogates are passed to the set_payload() since
https://github.com/python/cpython/commit/f97f25ef5dfcdfec0d9a359fd970abd139cf3428

comment:12 by Sarah Boyce <42296566+sarahboyce@…>, 8 months ago

In 338ec052:

Refs #35361 -- Added test for Email line length checks when dealing with surrogate pairs.

Refs #33173, #34118 and #34900.

comment:13 by Sarah Boyce <42296566+sarahboyce@…>, 8 months ago

In 2e6ae1e9:

[5.0.x] Refs #34900, Refs #35361 -- Fixed SafeMIMEText.set_payload() crash on Python 3.13.

Payloads with surrogates are passed to the set_payload() since
https://github.com/python/cpython/commit/f97f25ef5dfcdfec0d9a359fd970abd139cf3428

Backport of b231bcd19e57267ce1fc21d42d46f0b65fdcfcf8 from main.

comment:14 by Sarah Boyce <42296566+sarahboyce@…>, 8 months ago

In 0d3ddcaf:

[4.2.x] Refs #34900, Refs #35361 -- Fixed SafeMIMEText.set_payload() crash on Python 3.13.

Payloads with surrogates are passed to the set_payload() since
https://github.com/python/cpython/commit/f97f25ef5dfcdfec0d9a359fd970abd139cf3428

Backport of b231bcd19e57267ce1fc21d42d46f0b65fdcfcf8 from main.

comment:15 by Sarah Boyce, 5 months ago

See #35630 which raises potential compatibility issues with Python 3.13 (closed in favour of the work being tracked with this ticket)

comment:16 by Mariusz Felisiak, 5 months ago

Owner: changed from nobody to Mariusz Felisiak
Status: newassigned

comment:17 by GitHub <noreply@…>, 4 months ago

In 07a4d23:

Refs #34900 -- Updated requirements for Python 3.13.

comment:18 by Natalia <124304+nessita@…>, 4 months ago

In e435b44b:

[5.1.x] Refs #34900 -- Updated requirements for Python 3.13.

Backport of 07a4d23283586bc4578eb9c82a7ad14af3724057 from main.

comment:19 by Mariusz Felisiak, 2 months ago

Triage Stage: Someday/MaybeAccepted
Version: 4.25.1
Last edited 2 months ago by Mariusz Felisiak (previous) (diff)

comment:20 by Mariusz Felisiak, 2 months ago

Has patch: set

comment:21 by Jacob Walls, 2 months ago

Triage Stage: AcceptedReady for checkin

comment:22 by Sarah Boyce <42296566+sarahboyce@…>, 2 months ago

In f07eeff3:

Refs #34900 -- Added Python 3.12 to classifiers and tox.ini, and used it in GitHub actions.

comment:23 by Sarah Boyce <42296566+sarahboyce@…>, 2 months ago

In 2e3bc59f:

Refs #34900 -- Doc'd Python 3.13 compatibility.

comment:24 by Sarah Boyce <42296566+sarahboyce@…>, 2 months ago

In 379111e:

[5.1.x] Refs #34900 -- Added Python 3.12 to classifiers and tox.ini, and used it in GitHub actions.

Backport of f07eeff3a2d7ff0955410bf7e3f1ff197ef1ecf7 from main.

comment:25 by Sarah Boyce <42296566+sarahboyce@…>, 2 months ago

In e2551b3:

[5.1.x] Refs #34900 -- Doc'd Python 3.13 compatibility.

Backport of 2e3bc59fd3760de87952ec8fd6cd3694e8d9dc1c from main.

comment:26 by Sarah Boyce, 2 months ago

Resolution: fixed
Status: assignedclosed

Thank you Mariusz! I believe this can be closed

in reply to:  26 comment:27 by Mariusz Felisiak, 2 months ago

Replying to Sarah Boyce:

Thank you Mariusz! I believe this can be closed

Yes, it can! Thanks

comment:28 by Sarah Boyce <42296566+sarahboyce@…>, 7 weeks ago

In 555f2412:

Refs #34900 -- Removed usage of deprecated glob.glob1().

comment:29 by Sarah Boyce <42296566+sarahboyce@…>, 7 weeks ago

In e8e5035:

[5.1.x] Refs #34900 -- Removed usage of deprecated glob.glob1().

Backport of 555f2412cba4c5844408042e92f3bf9fa5c2392c from main.

Note: See TracTickets for help on using tickets.
Back to Top