Changes between Initial Version and Version 1 of VersionOneRoadmap


Ignore:
Timestamp:
Jun 16, 2008, 9:42:55 AM (16 years ago)
Author:
Jacob
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VersionOneRoadmap

    v1 v1  
     1{{{
     2#!rst
     3
     4===============================
     5Django 1.0 Roadmap and Schedule
     6===============================
     7
     8This document details the schedule and roadmap towards Django 1.0. All the details are below, but here's the executive summary:
     9
     10    * Django 1.0 will be released in `early September`__
     11   
     12    * To meet that deadline, Django 1.0 has a minimal set of `must-have
     13      features`_. The big feature on that list is ``newforms-admin``.
     14     
     15    * There's a larger set of `"maybe" features`_: if these features are done
     16      by the 1.0 feature-freeze date (August 5), they'll be included in 1.0.
     17     
     18    * Those who want to help out should read the rest of the document, and
     19      especially `how you can help`_.
     20   
     21__ `dates`_
     22
     23What's will be in 1.0?
     24======================
     25
     26The primary reason we've not yet released 1.0 is the long feature wish-list. We
     27need to balance this list of features against the need for a timely release and
     28speedy process. To that end, we'll categorize all the features of 1.0 thusly:
     29
     30* Must-haves: features that, if not completed, are worth delaying the
     31  release. That is, if the work on this list is not completed by a
     32  release date, we'll push the date.
     33 
     34  This of course means that these features are the "A" features, and we'll
     35  ask anyone who can help to focus on these features *first*.
     36 
     37* "Maybe" features: things that *should* be in 1.0 and should be worked on
     38  in the run up to the release. If, however, features on this list aren't
     39  completed, they will be dropped.
     40 
     41* "No" features: things that specifically will *not* be in 1.0, and which
     42  we'll ask developers not to focus on. We need to trim down to hit dates,
     43  after all.
     44
     45Must-have features
     46------------------
     47
     481. ``newforms-admin``.
     49
     50   It's clear from discussion on this list that most consider a release without
     51   ``newforms-admin`` to be a bad idea. Further, ``newforms-admin`` is nearly
     52   done; we've already started talking about merging it to trunk.
     53   
     542. Replacement of ``oldforms`` throughout Django.
     55
     56   Nothing in Django 1.0 should rely on the deprecated ``oldforms`` package.
     57   We'll need to replace ``oldforms`` usage in generic views, and in
     58   ``django.contrib.auth``
     59   
     60   ``django.contrib.comments`` still uses ``oldforms`` as well, but
     61   is a bit of a `special case`__.
     62   
     633. Making Django 100% WSGI compliant.
     64
     65   This simply involves fixing ticket #285. We've delayed doing this to avoid
     66   the backwards-incompatible change, but we must make this change before 1.0.
     67
     68__ `on comments`_
     69
     70"Maybe" features
     71----------------
     72
     73Again, these are features that *should* be in 1.0. In most cases, they're
     74actively being worked on by members of the development community and simply need
     75focus by committers (more about how that process will work below).
     76
     77These features are arranged in *rough* order of importance.
     78
     791. Signal performance improvements (#6814).
     80
     812. Large file uploads (#2070).
     82
     833. ``INSTALLED_APPS`` refactoring (i.e. ``app()`` objects) (#3591).
     84
     854. File storage refactoring (#5361).
     86
     875. Model-level validation (#6845).
     88
     896. Full ``GenericForeignKey`` support in newforms-admin (#4667).
     90
     917. Land GeoDjango as ``django.contrib.gis``.
     92
     938. Many-to-many intermediates (#6095).
     94
     959. Fix all known bugs preventing Django from running on alternate Python
     96   implementations. In practice this means fixing any bugs filed before 1.0 beta
     97   from people working on running Django on an alternate VM.
     98
     9910. De-cruftify custom template tag loading (including removing custom template
     100    tag ``__path__`` hacking) (#6587, etc.).
     101
     10211. Better support for controlling middleware ordering (#730, #749).
     103
     10412. Syntax for self-referencing fields in queries (#7210).
     105   
     10613. Finish documentation refactoring.
     107
     108Features not in 1.0
     109-------------------
     110
     111Unfortunately, the only way to get this done is to say no a lot. Let's start
     112now:
     113
     1141. Aggregation support. Although this is a Summer of Code project that's looking
     115   *very* promising, the timeline for SoC won't fit with the aggressive schedule
     116   we're setting for 1.0. Further, it's a "dangerous" change in that it modifies
     117   parts of Django's query engine, and that needs to be rock-solid for a 1.0
     118   release.
     119   
     120   The good news is that it'll make a kick-ass 1.1 feature!
     121   
     1222. Any other additions to ``django.contrib``. Though there are many nice
     123   candidates out there, we simply don't have time to roll them into Django
     124   in time for a release. We'll come up with a "contrib process" post-1.0
     125   and start looking at this then.
     126   
     1273. Any additional database backends. Again, the overhead in integrating a new
     128   database backend is too much. These will need to remain external backends
     129   until after 1.0.
     130   
     1314. Any features not on this list.
     132
     133   We want to ship bug-free, so we'll dedicate as much of our time to bug
     134   stomping as possible. This means that feature requests will need to be
     135   deferred.
     136
     137Schedule
     138========
     139
     140Django 1.0 will be released in early September.
     141
     142The general release process will be:
     143
     144* An alpha release containing all must-have features, but likely not
     145  bug-free. We'll push hard to have all the must-haves done in time
     146  for ample testing.
     147 
     148  The alpha release will also promote any "pending deprecation" warnings to
     149  full-blown deprecation warnings.
     150
     151* Two beta releases.
     152
     153  All "maybe" features must be completed by the first beta; after that,
     154  Django will enter feature freeze for about a month while we kill bugs.
     155 
     156* At least one -- and hopefully only one -- release candidate. The candidate
     157  release will mark a total freeze (as well as a string freeze for translators);
     158  only outright bug fixes will be accepted past this point.
     159 
     160* A final release.
     161
     162* A big-ass party.
     163   
     164We will hold development sprints in between each release to focus on the next
     165release.
     166
     167All the releases until 1.0 will be "snapshot" releases: we won't be backporting
     168fixes -- even security fixes -- but will just be fixing bugs in the next
     169release.
     170
     171Dates
     172-----
     173
     174==============  ===============================================================
     175July 10-12      ``newforms-admin`` sprint in person at EuroPython and around
     176                the world in IRC.
     177               
     178July 18 or 19   Push to 1.0 alpha sprint in the San Francisco area, and in IRC.
     179
     180July 20         **1.0 alpha.**
     181
     182August 1 or 2   Push to beta sprint in Lawrence, and etc.
     183
     184August 5        **1.0 beta 1.**
     185
     186August 8/9      Push to beta 2 sprint, location TBA.
     187
     188August 12       **1.0 beta 2.**
     189
     190August 15/16    Release candidate sprint, location TBA.
     191
     192August 19       **1.0 rc 1.**
     193
     194August 22/23    Final release sprint, location TBA.
     195
     196August 26       Earliest possible 1.0 release date, or perhaps rc2.
     197
     198September 2     **1.0**
     199==============  ===============================================================
     200
     201See below_ for details about why these particular dates were chosen.
     202
     203.. _below: `XXX`
     204
     205Process
     206=======
     207
     208Each feature on the list (both "must-have" and "maybe") will have a "lieutenant"
     209(to steal of term from the Linux community) and a committer assigned. It's OK if
     210this is the same person, but the idea is that one committer can keep an eye and
     211commit from patches from a number of trusted lieutenants. In most cases, the
     212features on the todo list have obvious lieutenants; we'll need to assign missing
     213ones and also committers. See :wiki:VersionOneFeatures for the current list of
     214lieutenants and committers.
     215
     216James, as the release manager, will be in charge of keeping the schedule. He'll
     217keep track of who's working on what issues so that bug reports can be
     218efficiently routed; he'll also nag, cajole and (if necessary) berate developers
     219who are in danger of missing deadlines.
     220
     221Once 1.0 is out we'll appoint a "version manager". This person will be
     222responsible for maintaining the 1.0 release series, which means backporting
     223security fixes and "important" bugs and releasing 1.0.1, etc.
     224
     225Similarly, we'll appoint a 0.96 version manger who will do the same with 0.96.
     226We'll continue to support 0.96 until 1.1 ships.
     227
     228With the 1.0 release, however, we will stop support 0.95 and earlier. This is
     229somewhat flexible; if someone has a stake in one of those older versions we'll
     230happily let them continue to maintain those releases, but if nobody steps up the
     231core team won't be able to do it.
     232
     233How you can help
     234----------------
     235
     236The only way we'll meet this deadline is with a great deal of community effort.
     237To that end, here's how you can help:
     238
     239    * Read the `guide to contributing to Django`__.
     240     
     241      This guide explains how our process works. where to ask questions, etc.
     242      It'll save everyone time if we're all on the same page when it comes to
     243      process.
     244     
     245    * Work from the list above.
     246   
     247      Get in touch with the lieutenant/committer for the feature you'd like
     248      to work on and help out. Or just find open tickets and start submitting
     249      patches!
     250   
     251      The joy of Open Source is that nobody gets to tell you what to do; you
     252      can scratch whichever itch you like. However, if you work on items *not*
     253      on the list of 1.0 features, you should expect that your patch won't get
     254      checked in until after 1.0.
     255     
     256    * Attend a sprint (in person or in IRC).
     257   
     258      We'll have about a half dozen sprints between now and the final 1.0
     259      release. Lots of work gets done at sprints, and there's usually someone
     260      around willing to help new developers get started.
     261     
     262    * Test the release snapshots (alphas, betas) against your code and report
     263      bugs.
     264     
     265      We need *lots* of testers if we're to have a bug-free release. Download
     266      a snapshot or an SVN checkout and give it a try!
     267     
     268__ http://www.djangoproject.com/documentation/contributing/
     269
     270Notes and miscellany
     271====================
     272
     273On comments
     274-----------
     275
     276``django.contrib.comments`` is a bit of special case. Ideally, Django 1.0 will
     277ship with *no* core use of oldforms. However, refactoring the entire comment
     278system -- not just replacing forms -- is overdue, and is the subject of a Google
     279Summer of Code project. So it would be silly to simply replace the form use when
     280the whole package is scheduled to be replaced.
     281
     282August 11 is the suggested pencils down date for GSoC. This means that if
     283Thejaswi (the student working on comments for GSoC) is on track, he will be
     284completed around the time of the beta 2 freeze date. July 14 is the midterm
     285evaluation date for Summer of Code; we should be able to get a good idea then
     286whether completion on schedule is likely.
     287
     288If the midterm evaluation says that the project is going badly, we'll abandon
     289ship and simply replace the form components in the current ``contrib.comments``
     290with newforms; we'll ship the new comment library in a future release.
     291
     292If the midterm evaluation is positive -- which is highly likely -- we'll work on
     293the assumption that the new comment framework will be merged intro trunk before
     294the beta 2 release (and possible earlier, if Thejaswi has something ready).
     295We'll encourage people to push the new framework pretty hard, especially during
     296sprints.
     297
     298If we get to August 11 and we don't have a release candidate, we can simply
     299release with oldforms comments: it'll be annoying but not a deal-breaker.
     300
     301}}}
Back to Top