Opened 21 months ago
Last modified 22 hours ago
#36123 new Cleanup/optimization
Remove reference to PyPy
| Reported by: | Paolo Melchiorre | Owned by: | |
|---|---|---|---|
| Component: | Documentation | Version: | dev |
| Severity: | Normal | Keywords: | pypy |
| Cc: | Mariusz Felisiak | Triage Stage: | Accepted |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
We removed PyPy support in commit f5772de, since there is no version of PyPy compatible with the minimum Python version currently supported (Python 3.12).
To avoid confusion for users, I propose to remove references to PyPy in the documentation, making it very explicit in the release notes that Django 6.0 does not support PyPy.
I believe there are still some references to PyPy in Django code that could be removed.
Of course, we may reinstate support when a version of PyPy compatible with Python 3.12+ is released (I don't think there will realistically be a version of PyPy compatible with Python 3.12 before Django 6.0 is released).
Change History (9)
comment:1 by , 21 months ago
| Cc: | added |
|---|---|
| Resolution: | → wontfix |
| Status: | new → closed |
comment:2 by , 7 days ago
| Resolution: | wontfix |
|---|---|
| Status: | closed → new |
| Triage Stage: | Unreviewed → Accepted |
The Steering Council discussed this on Monday, 5 October 2026 and think that we should proceed with removing the references to PyPy at this time.
As per #37363 the recent PyPy version just added support for Python 3.12, so the project isn't dead, but we're on the verge of making Python 3.14 the minimum supported version. PyPY is significantly behind where we need it to be. (It also seems that PyPy is slowly losing mindshare, with much of the energy in the space being taken by CPython's JiT efforts.)
We discussed various caveats or weakenings to the phrasing about support but ultimately felt that just removing the references is cleaner.
Re-adopting PyPy would need something like them to be compatible with the most recent two versions of Python, matching Django's support from Django 2028, and there be people actively testing and ensuring PyPy compatibility with Django. If such comes to pass, we could discuss again then.
comment:3 by , 5 days ago
Hello! I'd be glad to work on this ticket, if that's alright.
PR #22086 was closed automatically because the ticket wasn't yet Accepted when it was opened. @muhammad-a-dev, if you're planning to resubmit, I'd be happy to step aside or help review. Otherwise, would it be okay if I took this on? I'd cover the docs and the remaining code references (django.utils.version.PYPY and the PyPy branches in the tests and django.test.utils).
Thank you!
comment:4 by , 2 days ago
Hi! I'd be interested in contributing to this ticket and investigating the remaining PyPy-specific code and test references.
I noticed the discussion about PR #22086 and the offer to take on the ticket. Before starting, could you clarify whether someone is already proceeding with the work, or whether there is an opportunity for me to contribute to a specific part of it?
Thanks!
comment:5 by , 2 days ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:6 by , 2 days ago
Hi! I'd like to contribute to this ticket, starting with the documentation updates. I noticed others are also interested in working on it. Would it be okay if I handle the documentation changes while coordinating with the other contributors on the remaining code references? Thanks!
comment:7 by , 2 days ago
| Has patch: | set |
|---|
comment:8 by , 2 days ago
| Patch needs improvement: | set |
|---|
comment:9 by , 22 hours ago
| Has patch: | unset |
|---|---|
| Owner: | removed |
| Patch needs improvement: | unset |
| Status: | assigned → new |
This was discussed as part of the PR and was decided against
Unless we plan on "giving up" on PyPy, removing all references and adding them back in will cause quite an additional maintenance burden between releases
If you're in favor of no longer supporting PyPy, I think that will require a forum discussion