Very reasonable set for 1.0 release. The list of must-haves totally
matches my expectations. +1.
Jacob Kaplan-Moss wrote:
> This is a call for comments on the proposed Django 1.0 roadmap and schedule.
> Note that though this is worded in the future perfect tense, it is only a draft;
> I'm looking for feedback and comments from the community before the core
> developers and I post a the final version of this document (which I will do
> over the weekend).
> What's will be in 1.0?
> ======================
> The primary reason we've not yet released 1.0 is the long feature
> wish-list. We need to balance this list of features against the need
> for a timly release and speedy process. To that end, we'll categorize
> all the features of 1.0 thusly:
> * Must-haves: features that, if not completed, are worth delaying the
> release. That is, if the work on this list is not completed by a
> release date, we'll push the date.
> This of course means that these features are the "A" features, and we'll
> ask anyone who can help to focus on these features *first*.
> * "Maybe" features: things that *should* be in 1.0 and should be worked on
> in the run up to the release. If, however, features on this list aren't
> completed, they will be dropped.
> * "No" features: things that specifically will *not* be in 1.0, and which
> we'll ask developers not to focus on. We need to trim down to hit dates,
> after all.
> Must-have features
> ------------------
> 1. ``newforms-admin``.
> It's clear from discussion on this list that most consider a release without
> ``newforms-admin`` to be a bad idea. Further, ``newforms-admin`` is nearly
> done; we've already started talking about merging it to trunk.
> 2. Replacement of ``oldforms`` throughout Django.
> Nothing in Django 1.0 should rely on the deprecated ``oldforms`` package.
> We'll need to replace ``oldforms`` usage in generic views, and in
> ``django.contrib.auth``
> ``django.contrib.comments`` still uses ``oldforms`` as well, but there's
> special situation here; see below.
> 3. Making Django 100% WSGI compliant.
> This simply involves fixing ticket #285. We've delayed doing this to avoid
> the backwards-incompatible change, but we must make this change before 1.0.
> "Maybe" features
> ----------------
> Again, these are features that *should* be in 1.0. In most cases, they're
> actively being worked on by members of the development community and simply need
> focus by committers (more about how that process will work below).
> These features are arranged in *rough* order of importance.
> 1. Signal performance improvements (#6814).
> 2. Large file uploads (#2070).
> 3. ``INSTALLED_APPS`` refactoring (i.e. ``app()`` objects) (#3591).
> 4. File storage refactoring (#5361).
> 5. Model-level validation (#6845).
> 6. Full ``GenericForeignKey`` support in newforms-admin (#4667).
> 7. Land GeoDjango as ``django.contrib.gis``.
> 8. Many-to-many intermediates (#6905).
> 9. Fix all known bugs preventing Django from running on alternate Python
> implementations. In practice this means fixing any bugs filed before 1.0 beta
> from people working on running Django on an alternate VM.
> 10. De-cruftify custom template tag loading (including removing custom template
> tag ``__path__`` hacking) (#6587, etc.).
> 11. Better support for controlling middleware ordering (#3591).
> 12. Syntax for self-referencing fields in queries (#7210).
> 13. Finish documentation refactoring.
> Features not in 1.0
> -------------------
> Unfortunately, the only way to get this done is to say no a lot. Let's start
> now:
> 1. Aggregation support. Although this is a Summer of Code project that's looking
> *very* promising, the timeline for SoC won't fit with the aggressive schedule
> we're setting for 1.0. Further, it's a "dangerous" change in that it modifies
> parts of Django's query engine, and that needs to be rock-solid for a 1.0
> release.
> The good news is that it'll make a kick-ass 1.1 feature!
> 2. Any other additions to ``django.contrib``. Though there are many nice
> candidates out there, we simply don't have time to roll them into Django
> in time for a release. We'll come up with a "contrib process" post-1.0
> and start looking at this then.
> 3. Any additional database backends. Again, the overhead in integrating a new
> database backend is too much. These will need to remain external backends
> until after 1.0.
> 4. Any features not on this list.
> We want to ship bug-free, so we'll dedicate as much of our time to bug
> stomping as possible. This means that feature requests will need to be
> deferred.
> Schedule
> ========
> Django 1.0 will be released in early September.
> The general release process will be:
> * An alpha release containing all must-have features, but likely not
> bug-free. We'll push hard to have all the must-haves done in time
> for ample testing.
> The alpha release will also promote any "pending deprecation" warnings to
> full-blown deprecation warnings.
> * Two beta releases.
> All "maybe" features must be completed by the first beta; after that,
> Django will enter feature freeze for about a month while we kill bugs.
> * At least one -- and hopefully only one --release candidate. The candidate
> release will mark a total freeze (as well as a string freeze for
> translators); only outright bug fixes will be accepted past this point.
> * A final release.
> * A big fucking party.
> We will hold development sprints in between each release to focus on the next
> release.
> Dates
> -----
> July 10-12 ``newforms-admin`` sprint in person at EuroPython and around
> the world in IRC.
> July 18 or 19 Push to 1.0 alpha sprint in the San Francisco area, and in IRC.
> July 20 **1.0 alpha.**
> August 1 or 2 Push to beta sprint in Lawrence, and etc.
> August 5 **1.0 beta 1.**
> August 8/9 Push to beta 2 sprint, location TBA.
> August 12 **1.0 beta 2.**
> August 15/16 Release candidate sprint, location TBA.
> August 19 **1.0 rc 1.**
> August 22/23 Final release sprint, location TBA.
> August 26 Earliest possible 1.0 release date, or perhaps rc2.
> September 2 **1.0**
> All the releases until 1.0 will be "snapshot" releases: we won't be backporting
> fixes -- even security fixes -- but will just be fixing bugs in the next
> release.
> Process
> =======
> Each feature on the list (both "must-have" and "maybe") gets a "lieutenant" (to
> steal of term from the Linux community) and a committer assigned. It's OK if
> this is the same person, but the idea is that one committer can keep an eye and
> commit from patches from a number of trusted lieutenants. In most cases, the
> features on the todo list have obvious lieutenants; we'll need to assign missing
> ones and also committers. I'll start putting together this list tonight; right
> now it's mostly in my head.
> James, as the release manager, will be in charge of keeping the schedule. He'll
> keep track of who's working on what issues so that bug reports can be
> efficiently routed; he'll also nag, cajole and (if necessary) berate developers
> who are in danger of missing deadlines.
> Once 1.0 is out we'll appoint a "version manager" (thanks for the idea, Rob).
> This person will be responsible for maintaining the 1.0 release series, which
> means backporting security fixes and "important" bugs and releasing 1.0.1, etc.
> Similarly, as soon as we have a volunteer we'll appoint a 0.96 version manger
> who will do the same with 0.96. We'll continue to support 0.96 until 1.1 ships.
> With the 1.0 release, however, we will stop support 0.95 and earlier. This is
> somewhat flexible; if someone has a stake in one of those older versions we'll
> happily let them continue to maintain those releases, but if nobody steps up the
> core team won't be able to do it.
> --------------------------------------------
> Comments are, of course, highly welcome. Fire away.
> Jacob