Django is moving to an annual release cycle
Django is moving to an annual release cycle
Django 即将转向年度发布周期
Django is moving to an annual release cycle. Posted by Carlton Gibson on Aug. 10, 2026. Django’s Steering Council has accepted the Django Enhancement Proposal DEP 20 to move Django to an annual release cycle. From January 2028, Django will make one feature release a year, giving every feature release the LTS-level three years of support, and version numbers will carry the feature release year: Django 2028, then Django 2029, and so on.
Django 即将转向年度发布周期。由 Carlton Gibson 发布于 2026 年 8 月 10 日。Django 指导委员会(Steering Council)已采纳 Django 增强提案 DEP 20,决定将 Django 的发布周期改为年度发布。从 2028 年 1 月起,Django 将每年进行一次功能发布,并为每个功能版本提供长达三年的 LTS(长期支持)级别支持。版本号将直接采用发布年份,例如 Django 2028、Django 2029 等。
Better Python support
更好的 Python 支持
Python releases annually, each October. Django’s eight-month cycle hasn’t fit that well: LTS releases carried a wide Python matrix, including versions long past their upstream end-of-life. Under the new cycle, each Django version supports the three latest Python versions at release, and picks up the new Python version during its first year. Django’s support window ends in step with its oldest supported Python.
Python 每年 10 月发布新版本。Django 此前的八个月发布周期与此并不契合:LTS 版本往往需要兼容庞大的 Python 版本矩阵,其中甚至包括早已超过上游生命周期(EOL)的旧版本。在新周期下,每个 Django 版本在发布时将支持最新的三个 Python 版本,并在其发布的第一年内适配新的 Python 版本。Django 的支持窗口将与其所支持的最旧 Python 版本同步结束。
Every release is an LTS
每个版本皆为 LTS
Every feature release gets three years of support: one year of mainstream bugfixes, then two years of security and data-loss fixes. The “LTS” label is retired — every feature release now carries that same, unique commitment. No more LTS gap: no racing a deadline to jump two years of changes at once. Upgrade one year at a time, whenever suits you within the support window. Three versions are supported at any time, giving third-party packages a clear, rolling target. API stability and deprecation policies are unchanged — deprecation periods actually get longer in calendar terms.
每个功能版本都将获得三年的支持:第一年为常规错误修复,随后两年为安全和数据丢失修复。“LTS”标签将被弃用——因为现在每个功能版本都承载着同样且唯一的承诺。从此不再有 LTS 间隔:开发者无需再为了赶在截止日期前一次性跨越两年的变更而疲于奔命。你可以在支持窗口内,根据自己的节奏每年进行一次升级。任何时候都有三个版本处于支持期内,这为第三方包提供了清晰且持续的更新目标。API 稳定性和弃用策略保持不变——从日历时间来看,弃用周期实际上反而延长了。
Transition timeline
过渡时间表
Django 2028 will be the first release under the new cycle.
Django 2028 将是新周期下的第一个版本。
| Release Date | End of life |
|---|---|
| Django 6.1: August 2026 | December 2027 |
| Django 6.2 LTS: April 2027 | April 2030 |
| Django 2028: January 2028 | December 2030 |
| Django 2029: January 2029 | December 2031 |
| 发布日期 | 生命周期结束 |
|---|---|
| Django 6.1: 2026 年 8 月 | 2027 年 12 月 |
| Django 6.2 LTS: 2027 年 4 月 | 2030 年 4 月 |
| Django 2028: 2028 年 1 月 | 2030 年 12 月 |
| Django 2029: 2029 年 1 月 | 2031 年 12 月 |
Nothing changes before 2028. Support commitments for Django 5.2 LTS and 6.2 LTS stand as made.
在 2028 年之前,一切保持不变。Django 5.2 LTS 和 6.2 LTS 的支持承诺将按原计划执行。
Read the DEP
阅读 DEP
DEP 20 has the full specification and the reasoning behind each decision. Thanks to everyone who took part in the discussion, and to the Steering Council for its consideration.
DEP 20 包含了完整的规范说明以及每项决策背后的考量。感谢所有参与讨论的人员,也感谢指导委员会的审议。