{{{ #!text/x-rst =================== Django 4.0 Roadmap =================== This document details the schedule and roadmap towards Django 3.1. What features will be in Django 4.0? ===================================== Whatever gets committed by the alpha feature freeze! Django 4.0 will be a time-based release. Any features completed and committed to master by the alpha feature freeze deadline noted below will be included. Any that miss the deadline won't. If you have a major feature you'd like to contribute, please introduce yourself on the `django-developers mailing list `_ so you can find a shepherd for your feature. Minor features and bug fixes will be merge as they are completed. If you have submitted a patch, be sure the flags on the Trac ticket are correct such that it appears in the "Patches needing review" filter of the `Django Development Dashboard `_. Better yet, find someone to review your patch and mark the ticket as "Ready for checkin". Tickets marked "Ready for checkin" are regularly reviewed by mergers. Schedule ======== Major milestones along the way to 4.0 are scheduled below. See `Process`_, below, for more details. The dates are subject to change as necessary. ================= ====================================================== September 20, 2021 Django 4.0 alpha; feature freeze. October 25 Django 4.0 beta; non-release blocking bug fix freeze. November 22 Django 4.0 RC 1; translation string freeze. December 6 Django 4.0 final ================= ====================================================== Process ======= Any features not completed by the feature freeze date won't make it into 4.0. Mariusz Felisiak as the release manager, will be in charge of keeping the schedule. The release manager keeps track of who's working on what issues so that bug reports can be efficiently routed and also nag developers who are in danger of missing deadlines. Feature freeze / Alpha 1 ------------------------ All major and minor features must be merged by the Alpha 1 deadline. Any features not done by this point will be deferred or dropped. At this time, we will fork ``stable/4.0.x`` from ``master``. After the alpha, non-release blocking bug fixes may be backported at the mergers' discretion. Beta 1 ------ Beta 1 marks the end of any changes that aren't considered release blocking bugs. A bug is a "Release blocker" if it's a regression from a previous version of Django or if it's an important bug in a new feature. Only release blocking bug fixes will be allowed to be backported after the beta. RC 1 ---- If there is still a consistent stream of release blockers coming in at the planned release candidate date; we'll release beta 2 to encourage further testing and push the release candidate date out ~1 month. RC 1 marks the freeze for translation strings; translators will have two weeks to submit updated translations for inclusion in the final release. Release blocking bug fixes may continue to be backported. Final ----- Ideally, Django 4.0 final will ship two weeks after the last RC. If there are no major bugs found by 2 weeks after the release candidate, we will issue 4.0 final. If not, we will decide how to proceed from there at that time (likely another release candidate would be issued at some point). How you can help ---------------- The only way we'll meet these deadlines is with a great deal of community effort. To that end, here's how you can help: * Read the `guide to contributing to Django `_ and the `guide to Django's release process `_. These guides explain how our process works. where to ask questions, etc. It'll save everyone time if we're all on the same page when it comes to process. * Work on patches and `triage tickets `_. * Attend a sprint (in person or in IRC). * Test the release snapshots (alphas, betas) against your code and report bugs. * We need *lots* of testers if we're to have a bug-free release. Download a snapshot or a git checkout and give it a try! }}}