Marcus Chen, YuSMP Group
Marcus Chen Staff Engineer, Backend & Cloud, YuSMP Group · Python/Django backend architecture for US/EU product teams
Geometric green snake coiled on a colorful annual release cycle diagram with backend code editor in dark mode, representing Python web framework versioning

The short answer

On August 10, 2026, Django's Steering Council accepted DEP 20, moving the framework to a single annual feature release starting January 2028. Version numbers will carry the release year (Django 2028, Django 2029). The "LTS" designation is retired: every release now gets three years of support — one year of mainstream bugfixes, then two years of security and data-loss patches. Three concurrent versions will always be actively supported.

For teams running Django backends today, the immediate action item is simple: nothing changes before 2028. Django 6.1 and 6.2 LTS maintain their existing support commitments in full.

What Django's Steering Council decided

Django has shipped on a roughly eight-month cadence since version 1.0, producing two non-LTS and one LTS release per year. DEP 20 replaces this with a single annual release, accepted by vote of the Steering Council and published on the official Django weblog on August 10, 2026.

The core change: one feature release per calendar year, each carrying the same three-year support window that LTS releases previously carried. "LTS" as a separate label disappears because the distinction no longer exists — every release is long-term supported by definition.

What happens to Django 6.1 and 6.2 LTS

Existing support commitments are unchanged:

Release Ships End of Life Notes
Django 6.1August 2026December 2027Standard release, unchanged
Django 6.2 LTSApril 2027April 2030Last release to carry the LTS label
Django 2028January 2028December 2030First annual release, 3-year support, no LTS tag
Django 2029January 2029December 2031Three concurrent versions always supported

New version numbering: Django 2028, 2029

From 2028 onward, Django versions carry the release year instead of semantic version numbers. This removes an implicit ambiguity: when semantic versions increment, teams often ask "how large is this upgrade?" Year-based numbering makes the cadence explicit in the version string. A delta of Django 2028 to Django 2029 is unambiguously a one-year increment.

It also eliminates the practical question of whether a given version is LTS or not. The answer is always: yes, three years.

What the LTS retirement means for upgrade planning

Under the old model, teams faced a binary choice: track feature releases every eight months, or anchor on LTS and absorb a long gap between migrations. Teams on LTS often stayed on a version until expiry, then faced a multi-year migration in a compressed window.

Under the new model, three concurrent versions will always be supported. If your team runs Django 2028 and does not upgrade to Django 2029 the following year, you retain security patching through December 2030. There is no penalty for an annual skip. Upgrade decisions can be driven by features and team capacity rather than a support deadline on a calendar.

For organizations with compliance obligations — SOC 2, ISO 27001, GDPR, or HIPAA — the simplified support matrix removes a common ambiguity in vendor security reviews: every version in the support table carries the same class of security maintenance commitment.

Why Python alignment matters

The DEP 20 rationale centers on Python's own release cadence. Python ships a new version each October. Django's eight-month cycle "hasn't fit that well": LTS releases accumulated a wide Python version matrix that included Python releases past their own upstream end-of-life, creating maintenance overhead for both the Django team and downstream packagers.

Under the annual model, each Django release supports the three most recent Python versions at the time of release, and picks up the new Python version during its first year of support — without requiring a separate LTS build to carry the extended Python matrix.

What it means for US & EU software teams

For teams engaged in Python/Django development, the practical implications split cleanly into near-term and long-term:

Near-term (before 2028): no change. Django 6.1 ships in August 2026 and runs until December 2027. Django 6.2 LTS ships in April 2027 and runs until April 2030. Teams on either version continue under existing support terms. No migration pressure is introduced.

Long-term (from 2028): the upgrade cadence becomes simpler to reason about. One version per year, three years of security support per version, three concurrent supported versions at any time. Teams can define a straightforward policy — for example, "we stay within two versions of current" — without needing to distinguish LTS from non-LTS builds.

For EU organizations subject to NIS2 or DORA, which require documented software lifecycle management, the new model makes supplier lifecycle documentation more predictable: one support table, no label ambiguity, defined three-year windows.

For US FinTech and HealthTech teams with vendor security review requirements, the same applies: every version in the matrix carries identical security patching commitments, simplifying the answer to "is this dependency actively maintained?"

FAQ

When does Django's annual release cycle start?

The new annual cycle begins with Django 2028, expected in January 2028. Nothing changes before that date. Django 6.1 and 6.2 LTS maintain their existing support timelines.

What happens to Django LTS releases?

The LTS label is retired starting with Django 2028. Every feature release under the new cycle carries an identical three-year support window. Django 6.2 is the last release to carry the LTS designation because it predates the DEP 20 change.

Do teams need to upgrade Django more often now?

No — and in practice, less pressure. Three concurrent versions are always supported, so skipping an annual release is supported and carries no penalty. Teams can upgrade when features or business requirements justify it, not when a support deadline forces the issue.

Which Python versions will Django 2028 support?

Each annual Django release will support the three most recent Python versions at the time of release, and will pick up the new Python version (expected October 2027 for what will be at release) during its first year of support.

What is DEP 20?

DEP 20 is Django Enhancement Proposal 20, the formal specification for the annual release cycle change. It was accepted by Django's Steering Council and published on the official Django weblog on August 10, 2026. The full proposal is available in the django/deps repository on GitHub.

Sources

Building or maintaining a Python/Django backend for a US or EU product? Talk to our team about architecture, upgrade planning, or staff augmentation for your engineering sprint.