Version 44 (modified by Russell Keith-Magee, 15 years ago) ( diff )

Added note on release of v1.1

==================
Django 1.1 Roadmap
==================

**Django v1.1 was released on July 29, 2009** This page remains as a historical archive. The next development milestone is v1.2, which has `a separate wiki page`__.

__ http://code.djangoproject.com/wiki/Version1.2Roadmap

This document details the schedule and roadmap towards Django 1.1. All the
details follow; here's the executive summary:

    * Django 1.1 will be released `the week of April 13, 2009`__.
    
    * As per our `official release process`_, Django 1.1 has a minimal set of
      `must-have features`_. The big-ticket items on this list are model
      validation and aggregation in the ORM.
      
    * There's a larger list of `"maybe" features`_: if these features are done
      before the 1.1 feature-freeze date (March 20), they'll be included 
      in Django 1.1.
            
    * Those who want to help out should read the rest of this document,
      especially `how you can help`_.
      
    * You can follow the status of this process at the
      :trac:`Version1.1Features` page.
    
**Update, April 18, 2009**: Obviously we've missed the deadline. 
There are still `a number of open issues`__ to be fixed before
1.1 will be released; we don't want to put out a buggy Django!
We'll update the schedule with a more firm date once we have it.

**Update, July 21, 2009**: Django v1.1 is now effectively complete. We haven't shut down the v1.1 milestone so that critical bugs can still be drawn to our attention, but there is nothing blocking the v1.1 release at this point. Release Candidate 1 (RC1) will be cut at some point in the next day or so, allowing translators to do their job on finalized strings. v1.1 final will be released approximately 1 week after the RC is cut.


__ schedule_
.. _official release process: http://docs.djangoproject.com/en/dev/internals/release-process/
__ http://code.djangoproject.com/roadmap

What will be in Django 1.1?
===========================

Over 60 features were proposed for Django 1.1. After discussion by the
development community, these features were categorized "must have", "maybe",
or "no" -- see our `official release process`_ for more information on how
this works.

Remember: see :trac:`Version1.1Features` for more details on each feature below;
these are just summaries.

Must-have features
------------------

These are the features considered *critical* for the 1.1 release.

    * **DONE:** [Admin-03] Make the admin use a URL resolver. (Committed in :trac:`[9739]`)
    * [Contrib-05] Message passing for anonymous users. (moved__ to 1.2)
    * **DONE:** [Contrib-12] Write-through cache session backend. (Committed in :trac:`[9727]`)
    * **DONE:** [ORM-01] ORM aggregation. (Committed in :trac:`[9742]`)
    * [ORM-03] Model validation. (moved__ to 1.2)
    * **DONE:** [ORM-06] Expression support in ``QuerySet.update()``. (Committed in :trac:`[9792]`)
    * **DONE:** [Test-03] Run Django test cases inside a transaction (speed improvements). (Committed in :trac:`[9756]`)

__ http://groups.google.com/group/django-developers/browse_thread/thread/1ad495e30f946b2c/f6501a9e2a66e1d0?hl=en 
__ http://groups.google.com/group/django-developers/browse_thread/thread/12d5c6616feb229b

"Maybe" features
----------------

Again, these are features that *should* be in 1.1. In most cases, they're
actively being worked on by members of the development community and will 
be checked in if finished in time.

The following features have committers who'll take responsibility for getting
the feature in; as such they can be considered a sort of "first-priority" of
among the "maybe" features:

    * **DONE:** [Admin-01] Bulk-edit on changelist pages. (Committed in :trac:`[10077]`)
    * **DONE:** [Admin-02] Integrate django-batchadmin. (Committed in :trac:`[10121]`)
    * **DONE:** [Admin-05] ModelAdmin should allow for overriding of ``ForeignKey``/``ManyToMany`` options. (Committed in :trac:`[9760]`)
    * [Admin-06] Read-only form fields.
    * [Admin-07] Custom FilterSpecs. (moved__ to 1.2)
    * [Admin-08] Make filters in admin changelists persistant. (moved__ to 1.2)
    * **DONE:** [Contrib-02] Improved customizability of ``django.contrib.comments``. (Committed in :trac:`[9890]`)
    * **DONE:** [Contrib-03] Integration of comment-utils. (Committed in :trac:`[10122]`)
    * **DONE:** [Contrib-06] Honor ``REMOTE_USER`` provided by the server. (Committed in :trac:`[10063]`)
    * [Contrib-07] Implement Atom Publishing Protocol. (moved__ to 1.2)
    * [Contrib-11] Signed cookies.
    * [Form-01] Selectable HTML output for forms/fields.
    * **DONE:** [ORM-14] Exclude fields in a ``SELECT`` (``QuerySet.defer()``). (Committed in :trac:`[10090]`)
    * **DONE:** [ORM-15] Day-of-week filter for date/datetime Fields. (Committed in :trac:`[9818]`)
    * **DONE:** [ORM-17] ``{% default %}`` clause for ``{% for %}`` loops. (Committed in :trac:`[9530]`)
    * [ORM-19] Add support for database schemas.
    * [Template-06] Better template tag loading.
    * **DONE:** [Test-01] Follow redirect chains on the Test Client. (Committed in :trac:`[9911]`)
    * **DONE:** [Test-02] Disable all e-mail sending for debugging. (Committed in :trac:`[9793]`)
    * [View-01] Class-based generic views.
    * [View-03] Support for ``wsgi.file_wrapper`` for large files.

__ http://code.djangoproject.com/ticket/5833#comment:42
__ http://code.djangoproject.com/ticket/6903#comment:25
__ http://code.djangoproject.com/ticket/3569#comment:15

The following features were reviewed highly and are generally accepted as
"wanted", but currently are lacking a "champion" to see the feature done. This
means these features are likely to be included in 1.1 if finished, but are
a sort of "second-tier":

    * [Contrib-01] Session-based form wizard.
    * [Form-02] ``django.forms.SafeForm`` - forms with built-in CSRF protection.
    * [ORM-09] ``Manager.update_or_create()`` and ``Model.update()``.

    * [ORM-10] ``QuerySet.select_for_update()`` method.
    * [ORM-11] ``QuerySet.cache()`` method.
    * [ORM-12] Allow the use of ``property()`` in fields.
    * [ORM-13] Support for ``DISTINCT ON`` queries with ``QuerySet.distinct()``.
    * **DONE:** [ORM-16] Native autocommit option for Postgresql backend. (Committed in :trac:`[10029]`)
    * [ORM-18] Add signals to many-to-many objects.
    * [Template-01] Extend inclusion tag syntax to allow custom templates.
    * [Template-04] Clean-up of ``django.template`` internals.
    * [Template-05] Namespace support for template libraries.

Special cases
-------------

As is to be expected, a few features don't fit so easily into any of the hard
categories:

    * [ORM-05] Sharing of ``selected_related()`` data in memory, and/or an
      ORM identity map.
      
      The scope of this feature is a bit nebulous, but it's under discussion
      on `django-developers`_. If consensus is reached and the feature can
      be implemented in time, it'll get into 1.1.
      
    * [Form-01] Selectable HTML output for forms/fields.
    
      This feature is similarly not fully-scoped, though this one has a
      reference implementation so it's further along. However, there's a fair
      bit of controversy about the particular proposed implementation. Again,
      consensus is the issue here; discussion is ongoing.
      
    * [View-02] Add ``RequestContext`` by default in ``render_to_response``.
    
      This proposal is strongly controversial, with multiple +1 and -1 votes.
      As such, consensus seems unlikely; a middle-ground approach will need be
      found, which likely pushes this out of scope for 1.1.

Rejected/deferred features
--------------------------

The remaining proposed features were rejected or deferred for a variety of
reasons; see :trac:`Version1.1Features` for a complete list of these rejected
features and reasons for rejection or deferral.


GeoDjango
---------

1.1 features for GeoDjango are being coordinated on the `wiki`__ and the `GeoDjango mailing list`__.

__ http://code.djangoproject.com/wiki/GeoDjango1.1
__ http://groups.google.com/group/geodjango

Schedule
========

Django 1.1 is beyond deadline at this point.  It will be released as soon as it is in good enough
condition to be released.  Please help contribute to resolving any issues on the 
`list of open tickets`__.

The complete schedule follows. Note that dates are plus or minus a couple of
days as needed:

====================  =========================================================
January 15, 2009      "Major" feature freeze for 1.1; work phase ends, and any 
                      major incomplete features will be postponed.
                      
February 23, 2009     Django 1.1 alpha.

March 23, 2009        Django 1.1 beta. Feature freeze; only bug fixes will be
                      allowed after this point.

April 2, 2009         Django 1.1 rc 1. and string freeze

April 13, 2009        Django 1.1 final
====================  =========================================================

We'll hold a series of :trac:`Sprints` to work on 1.1 starting in late
December; stay tuned to the :trac:`Sprints` page and/or the
`django-developers`_ mailing list for details.

.. _django-developers: http://groups.google.com/group/django-developers
__ http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&milestone=1.1

Process
=======

Each feature on the list (both "must-have" and "maybe") will have a
"lieutenant" (a term stolen from the Linux community) and a committer
assigned. It's OK if this is the same person, but it's better if not: one
committer can keep an eye and commit from patches from a number of trusted
lieutenants. See :trac:`Version1.1Features` for the current list of
lieutenants and committers.

James Bennett, 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.

How you can help
----------------

The only way we'll meet this deadline 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 explains 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 features from the list above.



      The joy of Open Source is that nobody gets to tell you what to do; you
      can scratch whichever itch you like. However, if you work on items *not*
      on the list of 1.1 features, you should expect that your patch won't get
      checked in until after 1.1.
    
      Get in touch with the lieutenant/committer for the feature you'd like
      to work on and help out. Or just find open tickets and start submitting
      patches!
      
    * Attend a sprint (in person or in IRC).
    
      We'll have four or five sprints between now and March. Lots of work gets
      done at sprints, and there's usually someone around willing to help new
      developers get started.

    * Organize tickets.

       * Feature tickets should go in the "1.1 alpha" or "1.1 beta" milestone. 
       
         Which one? Well, major changes must be made before the alpha, and
         minor feature changes before the beta. So "major" feature additions
         go in the alpha milestone, and minor additions in the beta one. If
         you're not sure, then the feature is minor.
         
         **Bugs** are **not** to be part of these milestone; any bug is a
         candidate for fixing and should be left un-milestoned. The exception
         is bugs in features added for 1.1; those should be in the "1.1"
         milestone.

    * 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 an SVN checkout and give it a try!
      
__ http://docs.djangoproject.com/en/dev/internals/contributing/
__ http://docs.djangoproject.com/en/dev/internals/release-process/

Note: See TracWiki for help on using the wiki.
Back to Top