Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Fixed #16988 - Clean up the deprecation timeline for language consist…

…ency. Thanks ptone.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16932 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 9279dce1feb1249e0451e2a8fb19b808e862efec 1 parent b763412
Carl Meyer authored October 06, 2011

Showing 1 changed file with 100 additions and 105 deletions. Show diff stats Hide diff stats

  1. 205  docs/internals/deprecation.txt
205  docs/internals/deprecation.txt
@@ -2,37 +2,42 @@
2 2
 Django Deprecation Timeline
3 3
 ===========================
4 4
 
5  
-This document outlines when various pieces of Django will be removed, following
6  
-their deprecation, as per the :ref:`deprecation policy
7  
-<internal-release-deprecation-policy>`.
  5
+This document outlines when various pieces of Django will be removed or altered
  6
+in a backward incompatible way, following their deprecation, as per the
  7
+:ref:`deprecation policy <internal-release-deprecation-policy>`. More details
  8
+about each item can often be found in the release notes of two versions prior.
8 9
 
9 10
 1.3
10 11
 ---
11 12
 
12  
-    * ``AdminSite.root()``.  This release will remove the old method for
13  
-      hooking up admin URLs.  This has been deprecated since the 1.1
14  
-      release.
  13
+See the :doc:`Django 1.1 release notes</releases/1.1>` for more details on
  14
+these changes.
15 15
 
16  
-    * Authentication backends need to define the boolean attributes
17  
-      ``supports_object_permissions`` and ``supports_anonymous_user``.
18  
-      The old backend style is deprecated since the 1.2 release.
  16
+    * ``AdminSite.root()``.  This method of hooking up the admin URLs will be
  17
+      removed in favor of including ``admin.site.urls``.
19 18
 
20  
-    * The :mod:`django.contrib.gis.db.backend` module, including the
21  
-      ``SpatialBackend`` interface, is deprecated since the 1.2 release.
  19
+    * Authentication backends need to define the boolean attributes
  20
+      ``supports_object_permissions`` and ``supports_anonymous_user`` until
  21
+      version 1.4, at which point it will be assumed that all backends will
  22
+      support these options.
22 23
 
23 24
 1.4
24 25
 ---
25 26
 
26  
-    * ``CsrfResponseMiddleware``.  This has been deprecated since the 1.2
27  
-      release, in favor of the template tag method for inserting the CSRF
28  
-      token.  ``CsrfMiddleware``, which combines ``CsrfResponseMiddleware``
29  
-      and ``CsrfViewMiddleware``, is also deprecated.
  27
+See the :doc:`Django 1.2 release notes</releases/1.2>` for more details on
  28
+these changes.
  29
+
  30
+    * ``CsrfResponseMiddleware`` and ``CsrfMiddleware`` will be removed.  Use
  31
+      the {% csrf_token %} template tag inside forms to enable CSRF
  32
+      protection. ``CsrfViewMiddleware`` remains and is enabled by default.
30 33
 
31 34
     * The old imports for CSRF functionality (``django.contrib.csrf.*``),
32 35
       which moved to core in 1.2, will be removed.
33 36
 
34  
-    * ``SMTPConnection``. The 1.2 release deprecated the ``SMTPConnection``
35  
-      class in favor of a generic E-mail backend API.
  37
+    * The :mod:`django.contrib.gis.db.backend` module will be removed in favor
  38
+      of the specific backends.
  39
+
  40
+    * ``SMTPConnection`` will be removed in favor of a generic E-mail backend API.
36 41
 
37 42
     * The many to many SQL generation functions on the database backends
38 43
       will be removed.
@@ -45,46 +50,40 @@ their deprecation, as per the :ref:`deprecation policy
45 50
       removed.
46 51
 
47 52
     * The ``get_db_prep_save``, ``get_db_prep_value`` and
48  
-      ``get_db_prep_lookup`` methods on Field were modified in 1.2
49  
-      to support multiple databases. In 1.4, the support functions
50  
-      that allow methods with the old prototype to continue
51  
-      working will be removed.
  53
+      ``get_db_prep_lookup`` methods will have to support multiple databases.
52 54
 
53 55
     * The ``Message`` model (in ``django.contrib.auth``), its related
54 56
       manager in the ``User`` model (``user.message_set``), and the
55 57
       associated methods (``user.message_set.create()`` and
56  
-      ``user.get_and_delete_messages()``), which have
57  
-      been deprecated since the 1.2 release, will be removed.  The
  58
+      ``user.get_and_delete_messages()``), will be removed.  The
58 59
       :doc:`messages framework </ref/contrib/messages>` should be used
59 60
       instead. The related ``messages`` variable returned by the
60 61
       auth context processor will also be removed. Note that this
61  
-      means that the admin application depends on the messages
  62
+      means that the admin application will depend on the messages
62 63
       context processor.
63 64
 
64  
-    * Authentication backends need to support the ``obj`` parameter for
65  
-      permission checking. The ``supports_object_permissions`` variable
66  
-      is not checked any longer and can be removed.
  65
+    * Authentication backends will need to support the ``obj`` parameter for
  66
+      permission checking. The ``supports_object_permissions`` attribute
  67
+      will no longer be checked and can be removed from custom backends.
67 68
 
68  
-    * Authentication backends need to support the ``AnonymousUser``
69  
-      being passed to all methods dealing with permissions.
70  
-      The ``supports_anonymous_user`` variable is not checked any
71  
-      longer and can be removed.
  69
+    * Authentication backends will need to support the ``AnonymousUser`` class
  70
+      being passed to all methods dealing with permissions.  The
  71
+      ``supports_anonymous_user`` variable will no longer be checked and can be
  72
+      removed from custom backends.
72 73
 
73 74
     * The ability to specify a callable template loader rather than a
74 75
       ``Loader`` class will be removed, as will the ``load_template_source``
75 76
       functions that are included with the built in template loaders for
76  
-      backwards compatibility. These have been deprecated since the 1.2
77  
-      release.
  77
+      backwards compatibility.
78 78
 
79 79
     * ``django.utils.translation.get_date_formats()`` and
80  
-      ``django.utils.translation.get_partial_date_formats()``. These
81  
-      functions are replaced by the new locale aware formatting; use
82  
-      ``django.utils.formats.get_format()`` to get the appropriate
83  
-      formats.
  80
+      ``django.utils.translation.get_partial_date_formats()``. These functions
  81
+      will be removed; use the locale-aware
  82
+      ``django.utils.formats.get_format()`` to get the appropriate formats.
84 83
 
85  
-    * In ``django.forms.fields``: ``DEFAULT_DATE_INPUT_FORMATS``,
  84
+    * In ``django.forms.fields``, the constants: ``DEFAULT_DATE_INPUT_FORMATS``,
86 85
       ``DEFAULT_TIME_INPUT_FORMATS`` and
87  
-      ``DEFAULT_DATETIME_INPUT_FORMATS``. Use
  86
+      ``DEFAULT_DATETIME_INPUT_FORMATS`` will be removed. Use
88 87
       ``django.utils.formats.get_format()`` to get the appropriate
89 88
       formats.
90 89
 
@@ -92,22 +91,22 @@ their deprecation, as per the :ref:`deprecation policy
92 91
       along with the ``django.test.simple.run_tests()`` test runner.
93 92
 
94 93
     * The ``views.feed()`` view and ``feeds.Feed`` class in
95  
-      ``django.contrib.syndication`` have been deprecated since the 1.2
96  
-      release. The class-based view ``views.Feed`` should be used instead.
  94
+      ``django.contrib.syndication`` will be removed. The class-based view
  95
+      ``views.Feed`` should be used instead.
97 96
 
98 97
     * ``django.core.context_processors.auth``.  This release will
99 98
       remove the old method in favor of the new method in
100  
-      ``django.contrib.auth.context_processors.auth``.  This has been
101  
-      deprecated since the 1.2 release.
  99
+      ``django.contrib.auth.context_processors.auth``.
102 100
 
103  
-    * The ``postgresql`` database backend has been deprecated in favor of
104  
-      the ``postgresql_psycopg2`` backend.
  101
+    * The ``postgresql`` database backend will be removed, use the
  102
+      ``postgresql_psycopg2`` backend instead.
105 103
 
106  
-    * The ``no`` language code has been deprecated in favor of the ``nb``
107  
-      language code.
  104
+    * The ``no`` language code will be removed and has been replaced by the
  105
+      ``nb`` language code.
108 106
 
109  
-    * Authentication backends need to define the boolean attribute
110  
-      ``supports_inactive_user``.
  107
+    * Authentication backends will need to define the boolean attribute
  108
+      ``supports_inactive_user`` until version 1.5 when it will be assumed that
  109
+      all backends will handle inactive users.
111 110
 
112 111
     * ``django.db.models.fields.XMLField`` will be removed. This was
113 112
       deprecated as part of the 1.3 release. An accelerated deprecation
@@ -119,50 +118,47 @@ their deprecation, as per the :ref:`deprecation policy
119 118
 1.5
120 119
 ---
121 120
 
122  
-    * The ``mod_python`` request handler has been deprecated since the 1.3
123  
-      release. The ``mod_wsgi`` handler should be used instead.
  121
+See the :doc:`Django 1.3 release notes</releases/1.3>` for more details on
  122
+these changes.
  123
+
  124
+    * The ``mod_python`` request handler will be removed. The ``mod_wsgi``
  125
+      handler should be used instead.
124 126
 
125 127
     * The ``template`` attribute on :class:`~django.test.client.Response`
126  
-      objects returned by the :ref:`test client <test-client>` has been
127  
-      deprecated since the 1.3 release. The
128  
-      :attr:`~django.test.client.Response.templates` attribute should be
  128
+      objects returned by the :ref:`test client <test-client>` will be removed.
  129
+      The :attr:`~django.test.client.Response.templates` attribute should be
129 130
       used instead.
130 131
 
131  
-    * The features of the :class:`django.test.simple.DjangoTestRunner`
132  
-      (including fail-fast and Ctrl-C test termination) can now be provided
133  
-      by the unittest-native :class:`TextTestRunner`. The
134  
-      :class:`~django.test.simple.DjangoTestRunner` will be removed in
135  
-      favor of using the unittest-native class.
  132
+    * The :class:`~django.test.simple.DjangoTestRunner` will be removed.
  133
+      Instead use a unittest-native class.  The features of the
  134
+      :class:`django.test.simple.DjangoTestRunner` (including fail-fast and
  135
+      Ctrl-C test termination) can currently be provided by the unittest-native
  136
+      :class:`TextTestRunner`.
136 137
 
137 138
     * The undocumented function
138  
-      :func:`django.contrib.formtools.utils.security_hash`
139  
-      is deprecated, in favor of :func:`django.contrib.formtools.utils.form_hmac`
  139
+      :func:`django.contrib.formtools.utils.security_hash` will be removed,
  140
+      instead use :func:`django.contrib.formtools.utils.form_hmac`
140 141
 
141  
-    * The function-based generic views have been deprecated in
142  
-      favor of their class-based cousins. The following modules
143  
-      will be removed:
  142
+    * The function-based generic view modules will be removed in favor of their
  143
+      class-based equivalents, outlined :doc:`here
  144
+      </topics/generic-views-migration>`:
144 145
 
145  
-          * :mod:`django.views.generic.create_update`
146  
-          * :mod:`django.views.generic.date_based`
147  
-          * :mod:`django.views.generic.list_detail`
148  
-          * :mod:`django.views.generic.simple`
149  
-
150  
-    * The :class:`~django.core.servers.basehttp.AdminMediaHandler` has
151  
-      been deprecated in favor of the
  146
+    * The :class:`~django.core.servers.basehttp.AdminMediaHandler` will be
  147
+      removed.  In its place use
152 148
       :class:`~django.contrib.staticfiles.handlers.StaticFilesHandler`.
153 149
 
154 150
     * The :ttag:`url` and :ttag:`ssi` template tags will be
155 151
       modified so that the first argument to each tag is a
156  
-      template variable, not an implied string. The new-style
  152
+      template variable, not an implied string. Until then, the new-style
157 153
       behavior is provided in the ``future`` template tag library.
158 154
 
159 155
     * The :djadmin:`reset` and :djadmin:`sqlreset` management commands
160  
-      are deprecated.
  156
+      will be removed.
161 157
 
162  
-    * Authentication backends need to support a inactive user
  158
+    * Authentication backends will need to support an inactive user
163 159
       being passed to all methods dealing with permissions.
164  
-      The ``supports_inactive_user`` variable is not checked any
165  
-      longer and can be removed.
  160
+      The ``supports_inactive_user`` attribute will no longer be checked
  161
+      and can be removed from custom backends.
166 162
 
167 163
     * :meth:`~django.contrib.gis.geos.GEOSGeometry.transform` will raise
168 164
       a :class:`~django.contrib.gis.geos.GEOSException` when called
@@ -172,27 +168,31 @@ their deprecation, as per the :ref:`deprecation policy
172 168
       :class:`~django.http.SimpleCookie`.
173 169
 
174 170
     * :class:`django.core.context_processors.PermWrapper` and
175  
-      :class:`django.core.context_processors.PermLookupDict`
176  
-      will be moved to :class:`django.contrib.auth.context_processors.PermWrapper`
177  
-      and :class:`django.contrib.auth.context_processors.PermLookupDict`,
  171
+      :class:`django.core.context_processors.PermLookupDict` will be removed in
  172
+      favor of the corresponding
  173
+      :class:`django.contrib.auth.context_processors.PermWrapper` and
  174
+      :class:`django.contrib.auth.context_processors.PermLookupDict`,
178 175
       respectively.
179 176
 
180  
-    * The :setting:`MEDIA_URL` or :setting:`STATIC_URL` settings are
  177
+    * The :setting:`MEDIA_URL` or :setting:`STATIC_URL` settings will be
181 178
       required to end with a trailing slash to ensure there is a consistent
182 179
       way to combine paths in templates.
183 180
 
184  
-    * ``django.db.models.fields.URLField.verify_exists`` was deprecated in 1.4
185  
-      due to intractable security and performance issues. The argument will be
186  
-      removed in 1.5.
  181
+    * ``django.db.models.fields.URLField.verify_exists`` will be removed. The
  182
+      feature was deprecated in 1.3.1 due to intractable security and
  183
+      performance issues and will follow a slightly accelerated deprecation
  184
+      timeframe.
187 185
 
188 186
 1.6
189 187
 ---
190 188
 
  189
+See the :doc:`Django 1.4 release notes</releases/1.4>` for more details on
  190
+these changes.
  191
+
191 192
     * The compatibility modules ``django.utils.copycompat`` and
192 193
       ``django.utils.hashcompat`` as well as the functions
193  
-      ``django.utils.itercompat.all`` and ``django.utils.itercompat.any``
194  
-      have been deprecated since the 1.4 release. The native versions
195  
-      should be used instead.
  194
+      ``django.utils.itercompat.all`` and ``django.utils.itercompat.any`` will
  195
+      be removed. The Python builtin versions should be used instead.
196 196
 
197 197
     * The :func:`~django.views.decorators.csrf.csrf_response_exempt` and
198 198
       :func:`~django.views.decorators.csrf.csrf_view_exempt` decorators will
@@ -204,13 +204,11 @@ their deprecation, as per the :ref:`deprecation policy
204 204
     * The :class:`~django.core.cache.backends.memcached.CacheClass` backend
205 205
       was split into two in Django 1.3 in order to introduce support for
206 206
       PyLibMC. The historical :class:`~django.core.cache.backends.memcached.CacheClass`
207  
-      is now an alias for :class:`~django.core.cache.backends.memcached.MemcachedCache`.
208  
-      In Django 1.6, the historical alias will be removed.
  207
+      will be removed in favor of :class:`~django.core.cache.backends.memcached.MemcachedCache`.
209 208
 
210 209
     * The UK-prefixed objects of ``django.contrib.localflavor.uk`` will only
211  
-      be accessible through their new GB-prefixed names (GB is the correct
212  
-      ISO 3166 code for United Kingdom). They have been deprecated since the
213  
-      1.4 release.
  210
+      be accessible through their GB-prefixed names (GB is the correct
  211
+      ISO 3166 code for United Kingdom).
214 212
 
215 213
     * The :setting:`IGNORABLE_404_STARTS` and :setting:`IGNORABLE_404_ENDS`
216 214
       settings have been superseded by :setting:`IGNORABLE_404_URLS` in
@@ -218,7 +216,7 @@ their deprecation, as per the :ref:`deprecation policy
218 216
 
219 217
     * The :doc:`form wizard </ref/contrib/formtools/form-wizard>` has been
220 218
       refactored to use class based views with pluggable backends in 1.4.
221  
-      The previous implementation will be deprecated.
  219
+      The previous implementation will be removed.
222 220
 
223 221
     * Legacy ways of calling
224 222
       :func:`~django.views.decorators.cache.cache_page` will be removed.
@@ -230,26 +228,23 @@ their deprecation, as per the :ref:`deprecation policy
230 228
 
231 229
     * The template tag
232 230
       :func:`django.contrib.admin.templatetags.adminmedia.admin_media_prefix`
233  
-      was deprecated since Django 1.4 and will be removed in favor of the
234  
-      generic static files handling.
  231
+      will be removed in favor of the generic static files handling.
235 232
 
236  
-    * The builin truncation functions
237  
-      :func:`django.utils.text.truncate_words` and
238  
-      :func:`django.utils.text.truncate_html_words`
239  
-      were deprecated since Django 1.4 and will be removed in favor
240  
-      of the ``django.utils.text.Truncator`` class.
  233
+    * The builtin truncation functions :func:`django.utils.text.truncate_words`
  234
+      and :func:`django.utils.text.truncate_html_words` will be removed in
  235
+      favor of the ``django.utils.text.Truncator`` class.
241 236
 
242 237
     * The :class:`~django.contrib.gis.geoip.GeoIP` class was moved to
243 238
       :mod:`django.contrib.gis.geoip` in 1.4 -- the shortcut in
244 239
       :mod:`django.contrib.gis.utils` will be removed.
245 240
 
246  
-    * In 1.4, functions :func:`~django.conf.urls.include`, :func:`~django.conf.urls.patterns`
247  
-      and :func:`~django.conf.urls.url` plus :data:`~django.conf.urls.handler404`,
248  
-      :data:`~django.conf.urls.handler500` were moved to :mod:`django.conf.urls`
249  
-      from their previous location ``django.conf.urls.defaults``. This module
250  
-      was deprecated at the same time and will be removed in this Django release.
  241
+    * ``django.conf.urls.defaults`` will be removed. The functions
  242
+      :func:`~django.conf.urls.include`, :func:`~django.conf.urls.patterns` and
  243
+      :func:`~django.conf.urls.url` plus :data:`~django.conf.urls.handler404`,
  244
+      :data:`~django.conf.urls.handler500`, are now available through
  245
+      :mod:`django.conf.urls` .
251 246
 
252  
-    * The Databrowse contrib module was deprecated in 1.4 and will be removed.
  247
+    * The Databrowse contrib module will be removed.
253 248
 
254 249
 2.0
255 250
 ---

0 notes on commit 9279dce

Please sign in to comment.
Something went wrong with that request. Please try again.