Django has been on an eight-month release cadence for years, with one release every two years designated LTS and supported for three. The LTS gap was the main friction: stay on a supported release and you could fall two years behind on features, then face a cliff when support ended.
DEP 20, accepted by the Steering Council this week, changes that. From January 2028, one feature release per year, numbered by year: Django 2028, Django 2029. The LTS designation disappears entirely — every release gets three years of support. Upgrade one year at a time, always on a supported version, no gap to sprint across.
The Python alignment is the other win. Python releases each October; Django’s eight-month cadence never fit that cleanly. Under the new scheme each Django release targets the three most recent Python versions and picks up the new one during its first year. The support window ends when the oldest supported Python goes end-of-life. Much cleaner.
Nothing changes before 2028. Existing commitments for Django 5.2 LTS and 6.2 LTS stand. API stability and deprecation policy are unchanged.
The full release table is in the original announcement and DEP 20 has the complete specification.
If Django is useful to you, the Django Software Foundation accepts donations to keep development going.