Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Fixed #8753: converted "new in ..." callouts to proper Sphinx "versio…

…nadded/versionchanged" directives. Thanks to Marc Fargas for all the heavy lifting here.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8843 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 64a94691277db17e87614f125d8da78a9995076b 1 parent c435975
Jacob Kaplan-Moss authored September 02, 2008

Showing 47 changed files with 303 additions and 232 deletions. Show diff stats Hide diff stats

  1. 28  docs/_ext/djangodocs.py
  2. 6  docs/_static/djangodocs.css
  3. 2  docs/howto/custom-management-commands.txt
  4. 2  docs/howto/custom-model-fields.txt
  5. 6  docs/howto/custom-template-tags.txt
  6. 5  docs/howto/deployment/modpython.txt
  7. 1  docs/index.txt
  8. 24  docs/internals/contributing.txt
  9. 4  docs/intro/tutorial01.txt
  10. 7  docs/intro/whatsnext.txt
  11. 2  docs/ref/contrib/flatpages.txt
  12. 2  docs/ref/contrib/formtools/form-wizard.txt
  13. 2  docs/ref/contrib/humanize.txt
  14. 4  docs/ref/contrib/index.txt
  15. 2  docs/ref/contrib/sitemaps.txt
  16. 4  docs/ref/contrib/sites.txt
  17. 17  docs/ref/contrib/syndication.txt
  18. 10  docs/ref/databases.txt
  19. 14  docs/ref/django-admin.txt
  20. 7  docs/ref/forms/api.txt
  21. 29  docs/ref/forms/fields.txt
  22. 4  docs/ref/forms/widgets.txt
  23. 28  docs/ref/generic-views.txt
  24. 9  docs/ref/middleware.txt
  25. 28  docs/ref/models/fields.txt
  26. 4  docs/ref/models/instances.txt
  27. 4  docs/ref/models/options.txt
  28. 25  docs/ref/models/querysets.txt
  29. 29  docs/ref/request-response.txt
  30. 34  docs/ref/settings.txt
  31. 2  docs/ref/templates/api.txt
  32. 46  docs/ref/templates/builtins.txt
  33. 2  docs/ref/unicode.txt
  34. 17  docs/topics/auth.txt
  35. 20  docs/topics/cache.txt
  36. 6  docs/topics/db/models.txt
  37. 4  docs/topics/db/queries.txt
  38. 2  docs/topics/email.txt
  39. 2  docs/topics/files.txt
  40. 7  docs/topics/forms/index.txt
  41. 2  docs/topics/http/file-uploads.txt
  42. 32  docs/topics/http/sessions.txt
  43. 10  docs/topics/http/shortcuts.txt
  44. 4  docs/topics/http/urls.txt
  45. 3  docs/topics/pagination.txt
  46. 2  docs/topics/templates.txt
  47. 31  docs/topics/testing.txt
28  docs/_ext/djangodocs.py
@@ -88,6 +88,34 @@ def visit_desc_parameterlist(self, node):
88 88
     def depart_desc_parameterlist(self, node):
89 89
         self.body.append(')')
90 90
         pass
  91
+        
  92
+    #
  93
+    # Turn the "new in version" stuff (versoinadded/versionchanged) into a
  94
+    # better callout -- the Sphinx default is just a little span,
  95
+    # which is a bit less obvious that I'd like.
  96
+    #
  97
+    # FIXME: these messages are all hardcoded in English. We need to chanage 
  98
+    # that to accomodate other language docs, but I can't work out how to make
  99
+    # that work and I think it'll require Sphinx 0.5 anyway.
  100
+    #
  101
+    version_text = {
  102
+        'deprecated':       'Deprecated in Django %s',
  103
+        'versionchanged':   'Changed in Django %s',
  104
+        'versionadded':     'New in Django %s',
  105
+    }
  106
+    
  107
+    def visit_versionmodified(self, node):
  108
+        self.body.append(
  109
+            self.starttag(node, 'div', CLASS=node['type'])
  110
+        )
  111
+        title = "%s%s" % (
  112
+            self.version_text[node['type']] % node['version'],
  113
+            len(node) and ":" or "."
  114
+        )
  115
+        self.body.append('<span class="title">%s</span> ' % title)
  116
+    
  117
+    def depart_versionmodified(self, node):
  118
+        self.body.append("</div>\n")
91 119
     
92 120
     # Give each section a unique ID -- nice for custom CSS hooks
93 121
     # This is different on docutils 0.5 vs. 0.4...
6  docs/_static/djangodocs.css
@@ -107,6 +107,10 @@ dt .literal, table .literal { background:none; }
107 107
 div.admonition-philosophy { padding-left:65px; background:url(docicons-philosophy.gif) .8em .8em no-repeat;}
108 108
 div.admonition-behind-the-scenes { padding-left:65px; background:url(docicons-behindscenes.gif) .8em .8em no-repeat;}
109 109
 
  110
+/*** versoinadded/changes ***/
  111
+div.versionadded, div.versionchanged {  }
  112
+div.versionadded span.title, div.versionchanged span.title { font-weight: bold; }
  113
+
110 114
 /*** p-links ***/
111 115
 a.headerlink { color: #c60f0f; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; visibility: hidden; }
112 116
 h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; }
@@ -123,4 +127,4 @@ div#contents ul li { margin-bottom: 0;}
123 127
 div#contents ul ul li { margin-top: 0.3em;}
124 128
 
125 129
 /*** IE hacks ***/
126  
-* pre { width: 100%; }
  130
+* pre { width: 100%; }
2  docs/howto/custom-management-commands.txt
@@ -3,7 +3,7 @@
3 3
 Writing custom django-admin commands
4 4
 ====================================
5 5
 
6  
-**New in Django development version**
  6
+.. versionadded:: 1.0
7 7
 
8 8
 Applications can register their own actions with ``manage.py``. For example,
9 9
 you might want to add a ``manage.py`` action for a Django app that you're
2  docs/howto/custom-model-fields.txt
@@ -4,7 +4,7 @@
4 4
 Writing custom model fields
5 5
 ===========================
6 6
 
7  
-**New in Django development version**
  7
+.. versionadded:: 1.0
8 8
 
9 9
 Introduction
10 10
 ============
6  docs/howto/custom-template-tags.txt
@@ -157,7 +157,7 @@ will use the function's name as the filter name.
157 157
 Filters and auto-escaping
158 158
 ~~~~~~~~~~~~~~~~~~~~~~~~~
159 159
 
160  
-**New in Django development version**
  160
+.. versionadded:: 1.0
161 161
 
162 162
 When writing a custom filter, give some thought to how the filter will interact
163 163
 with Django's auto-escaping behavior. Note that three types of strings can be
@@ -422,7 +422,7 @@ without having to be parsed multiple times.
422 422
 Auto-escaping considerations
423 423
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
424 424
 
425  
-**New in Django development version**
  425
+.. versionadded:: 1.0
426 426
 
427 427
 The output from template tags is **not** automatically run through the
428 428
 auto-escaping filters. However, there are still a couple of things you should
@@ -547,7 +547,7 @@ current context, available in the ``render`` method::
547 547
 ``resolve_variable`` will try to resolve ``blog_entry.date_updated`` and then
548 548
 format it accordingly.
549 549
 
550  
-.. admonition:: New in development version:
  550
+.. versionadded:: 1.0
551 551
 
552 552
     Variable resolution has changed in the development version of Django.
553 553
     ``template.resolve_variable()`` is still available, but has been deprecated
5  docs/howto/deployment/modpython.txt
@@ -49,7 +49,10 @@ This tells Apache: "Use mod_python for any URL at or under '/mysite/', using the
49 49
 Django mod_python handler." It passes the value of :ref:`DJANGO_SETTINGS_MODULE
50 50
 <django-settings-module>` so mod_python knows which settings to use.
51 51
 
52  
-**New in Django development version:** Because mod_python does not know we are
  52
+.. versionadded:: 1.0
  53
+    The ``PythonOption django.root ...`` is new in this version.
  54
+
  55
+Because mod_python does not know we are
53 56
 serving this site from underneath the ``/mysite/`` prefix, this value needs to
54 57
 be passed through to the mod_python handler in Django, via the ``PythonOption
55 58
 django.root ...`` line. The value set on that line (the last item) should
1  docs/index.txt
@@ -83,6 +83,7 @@ And more:
83 83
     * :ref:`topics-settings`
84 84
     * :ref:`topics-signals`
85 85
     * :ref:`topics-testing`
  86
+    * :ref:`topics-http-sessions`
86 87
     
87 88
 Add-on ("contrib") applications
88 89
 ===============================
24  docs/internals/contributing.txt
@@ -572,28 +572,20 @@ Documentation changes come in two forms:
572 572
     * New features -- Documentation of features that have been added to the
573 573
       framework since the last release.
574 574
 
575  
-Our philosophy is that "general improvements" are something that *all* current
576  
-Django users should benefit from, including users of trunk *and* users of the
577  
-latest release. Hence, the documentation section on djangoproject.com points
578  
-people by default to the newest versions of the docs, because they have the
579  
-latest and greatest content. (In fact, the Web site pulls directly from the
580  
-Subversion repository, converting to HTML on the fly.)
581  
-
582  
-But this decision to feature bleeding-edge documentation has one large caveat:
583  
-any documentation of *new* features will be seen by Django users who don't
584  
-necessarily have access to those features yet, because they're only using the
585  
-latest release. Thus, our policy is:
  575
+Our policy is:
586 576
 
587 577
     **All documentation of new features should be written in a way that clearly
588 578
     designates the features are only available in the Django development
589 579
     version. Assume documentation readers are using the latest release, not the
590 580
     development version.**
591 581
 
592  
-Our traditional way of marking new features is by prefacing the features'
593  
-documentation with: "New in Django development version." Changes aren't
594  
-*required* to include this exact text, but all documentation of new features
595  
-should include the phrase "development version," so we can find and remove
596  
-those phrases for the next release.
  582
+Our prefered way for marking new features is by prefacing the features'
  583
+documentation with: ".. versionadded:: X.Y", followed by an optional one line
  584
+comment and a mandatory blank line.
  585
+
  586
+General improvements, or other changes to the APIs that should be emphasised
  587
+should use the ".. versionchanged:: X.Y" directive (with the same format as the
  588
+``versionadded`` mentioned above.
597 589
 
598 590
 Guidelines for ReST files
599 591
 -------------------------
4  docs/intro/tutorial01.txt
@@ -114,9 +114,9 @@ the following output on the command line::
114 114
     Validating models...
115 115
     0 errors found.
116 116
 
117  
-    Django version 0.96, using settings 'mysite.settings'
  117
+    Django version 1.0, using settings 'mysite.settings'
118 118
     Development server is running at http://127.0.0.1:8000/
119  
-    Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
  119
+    Quit the server with CONTROL-C.
120 120
 
121 121
 You've started the Django development server, a lightweight Web server written
122 122
 purely in Python. We've included this with Django so you can develop things
7  docs/intro/whatsnext.txt
@@ -216,10 +216,9 @@ We follow this policy:
216 216
     * As we add features to Django's development version, we try to update the
217 217
       documentation in the same Subversion commit transaction.
218 218
 
219  
-    * To distinguish feature changes/additions in the docs, we use the phrase
220  
-      **New in Django development version**. In practice, this means that the
221  
-      current documentation on djangoproject.com can be used by users of either
222  
-      the latest release *or* the development version.
  219
+    * To distinguish feature changes/additions in the docs, we use the phrase:
  220
+      "New in version X.Y", being X.Y the next release version (hence, the one
  221
+      being developed).
223 222
 
224 223
     * Documentation for a particular Django release is frozen once the version
225 224
       has been released officially. It remains a snapshot of the docs as of the
2  docs/ref/contrib/flatpages.txt
@@ -19,7 +19,7 @@ custom Django application.
19 19
 A flatpage can use a custom template or a default, systemwide flatpage
20 20
 template. It can be associated with one, or multiple, sites.
21 21
 
22  
-**New in Django development version**
  22
+.. versionadded:: 1.0
23 23
 
24 24
 The content field may optionally be left blank if you prefer to put your 
25 25
 content in a custom template.
2  docs/ref/contrib/formtools/form-wizard.txt
@@ -7,7 +7,7 @@ Form wizard
7 7
 .. module:: django.contrib.formtools.wizard
8 8
     :synopsis: Splits forms across multiple Web pages.
9 9
 
10  
-**New in Django development version.**
  10
+.. versionadded:: 1.0
11 11
 
12 12
 Django comes with an optional "form wizard" application that splits
13 13
 :ref:`forms <topics-forms-index>` across multiple Web pages. It maintains
2  docs/ref/contrib/humanize.txt
@@ -74,7 +74,7 @@ You can pass in either an integer or a string representation of an integer.
74 74
 naturalday
75 75
 ----------
76 76
 
77  
-**New in Django development version**
  77
+.. versionadded:: 1.0
78 78
 
79 79
 For dates that are the current day or within one day, return "today",
80 80
 "tomorrow" or "yesterday", as appropriate. Otherwise, format the date using
4  docs/ref/contrib/index.txt
@@ -59,7 +59,9 @@ See :ref:`topics-auth`.
59 59
 comments
60 60
 ========
61 61
 
62  
-**New in Django development version.**
  62
+.. versionchanged:: 1.0
  63
+   The comments application has been rewriten. See :ref:`ref-contrib-comments-upgrade`
  64
+   for information on howto upgrade.
63 65
 
64 66
 A simple yet flexible comments system. See :ref:`ref-contrib-comments-index`.
65 67
 
2  docs/ref/contrib/sitemaps.txt
@@ -342,7 +342,7 @@ each time you call ``save()``.
342 342
 Pinging Google via `manage.py`
343 343
 ------------------------------
344 344
 
345  
-**New in Django development version**
  345
+.. versionadded:: 1.0
346 346
 
347 347
 Once the sitemaps application is added to your project, you may also
348 348
 ping the Google server's through the command line manage.py interface::
4  docs/ref/contrib/sites.txt
@@ -230,7 +230,7 @@ To do this, you can use the sites framework. A simple example::
230 230
 Caching the current ``Site`` object
231 231
 ===================================
232 232
 
233  
-**New in Django development version**
  233
+.. versionadded:: 1.0
234 234
 
235 235
 As the current site is stored in the database, each call to
236 236
 ``Site.objects.get_current()`` could result in a database query. But Django is a
@@ -379,7 +379,7 @@ Here's how Django uses the sites framework:
379 379
 
380 380
 .. _requestsite-objects:
381 381
 
382  
-**New in Django development version**
  382
+.. versionadded:: 1.0
383 383
 
384 384
 Some :ref:`django.contrib <ref-contrib-index>` applications take advantage of
385 385
 the sites framework but are architected in a way that doesn't *require* the
17  docs/ref/contrib/syndication.txt
@@ -265,10 +265,13 @@ request to the URL :file:`/rss/beats/0613/`:
265 265
       :exc:`ObjectDoesNotExist` in :meth:`get_object()` tells Django to produce
266 266
       a 404 error for that request.
267 267
 
268  
-      **New in Django development version:** The :meth:`get_object()` method
269  
-      also has a chance to handle the :file:`/rss/beats/` url. In this case,
270  
-      :data:`bits` will be an empty list. In our example, ``len(bits) != 1`` and
271  
-      an :exc:`ObjectDoesNotExist` exception will be raised, so
  268
+      .. versionadded:: 1.0
  269
+         meth:`get_object()` can handle the :file:`/rss/beats/` url.
  270
+
  271
+      The :meth:`get_object()` method also has a chance to handle the
  272
+      :file:`/rss/beats/` url. In this case, :data:`bits` will be an
  273
+      empty list. In our example, ``len(bits) != 1`` and an
  274
+      :exc:`ObjectDoesNotExist` exception will be raised, so
272 275
       :file:`/rss/beats/` will generate a 404 page. But you can handle this case
273 276
       however you like. For example, you could generate a combined feed for all
274 277
       beats.
@@ -476,8 +479,6 @@ This example illustrates all possible attributes and methods for a
476 479
         # for them in this order. This property is only used for Atom feeds
477 480
         # (where it is the feed-level ID element). If not provided, the feed
478 481
         # link is used as the ID.
479  
-        #
480  
-        # (New in Django development version)
481 482
 
482 483
         def feed_guid(self, obj):
483 484
             """
@@ -652,8 +653,6 @@ This example illustrates all possible attributes and methods for a
652 653
         # ITEM_GUID -- The following method is optional. This property is
653 654
         # only used for Atom feeds (it is the ID element for an item in an
654 655
         # Atom feed). If not provided, the item's link is used by default.
655  
-        #
656  
-        # (New in Django development version)
657 656
 
658 657
         def item_guid(self, obj):
659 658
             """
@@ -989,4 +988,4 @@ For example, you might start implementing an iTunes RSS feed generator like so::
989 988
 Obviously there's a lot more work to be done for a complete custom feed class,
990 989
 but the above example should demonstrate the basic idea.
991 990
 
992  
-.. _XMLGenerator: http://docs.python.org/dev/library/xml.sax.utils.html#xml.sax.saxutils.XMLGenerator
  991
+.. _XMLGenerator: http://docs.python.org/dev/library/xml.sax.utils.html#xml.sax.saxutils.XMLGenerator
10  docs/ref/databases.txt
@@ -315,10 +315,12 @@ many-to-many table would be stored in the ``indexes`` tablespace. The ``data``
315 315
 field would also generate an index, but no tablespace for it is specified, so
316 316
 it would be stored in the model tablespace ``tables`` by default.
317 317
 
318  
-**New in the Django development version:** Use the :setting:`DEFAULT_TABLESPACE`
319  
-and :setting:`DEFAULT_INDEX_TABLESPACE` settings to specify default values for
320  
-the db_tablespace options. These are useful for setting a tablespace for the
321  
-built-in Django apps and other applications whose code you cannot control.
  318
+.. versionadded:: 1.0
  319
+
  320
+Use the :setting:`DEFAULT_TABLESPACE` and :setting:`DEFAULT_INDEX_TABLESPACE`
  321
+settings to specify default values for the db_tablespace options.
  322
+These are useful for setting a tablespace for the built-in Django apps and
  323
+other applications whose code you cannot control.
322 324
 
323 325
 Django does not create the tablespaces for you. Please refer to `Oracle's
324 326
 documentation`_ for details on creating and managing tablespaces.
14  docs/ref/django-admin.txt
@@ -98,7 +98,7 @@ Available subcommands
98 98
 cleanup 
99 99
 -------
100 100
 
101  
-**New in Django development version**
  101
+.. versionadded:: 1.0
102 102
 
103 103
 Can be run as a cronjob or directly to clean out old data from the database
104 104
 (only expired sessions at the moment).
@@ -106,7 +106,8 @@ Can be run as a cronjob or directly to clean out old data from the database
106 106
 compilemessages
107 107
 ---------------
108 108
 
109  
-**New in Django development version**
  109
+.. versionchanged:: 1.0
  110
+   Before 1.0 this was the "bin/compile-messages.py" command.
110 111
 
111 112
 Compiles .po files created with ``makemessages`` to .mo files for use with
112 113
 the builtin gettext support. See :ref:`topics-i18n`.
@@ -134,7 +135,7 @@ createsuperuser
134 135
 
135 136
 .. django-admin:: createsuperuser 
136 137
 
137  
-**New in Django development version**
  138
+.. versionadded:: 1.0
138 139
 
139 140
 Creates a superuser account (a user who has all permissions). This is
140 141
 useful if you need to create an initial superuser account but did not
@@ -209,7 +210,7 @@ objects will be dumped.
209 210
 
210 211
 .. django-admin-option:: --exclude
211 212
 
212  
-**New in Django development version**
  213
+.. versionadded:: 1.0
213 214
 
214 215
 Exclude a specific application from the applications whose contents is
215 216
 output. For example, to specifically exclude the `auth` application from
@@ -383,7 +384,8 @@ Example usage::
383 384
 makemessages
384 385
 ------------
385 386
 
386  
-**New in Django development version**
  387
+.. versionchanged:: 1.0
  388
+   Before 1.0 this was the "bin/make-messages.py" command.
387 389
 
388 390
 Runs over the entire source tree of the current directory and pulls out all
389 391
 strings marked for translation. It creates (or updates) a message file in the
@@ -734,7 +736,7 @@ Example usage::
734 736
 testserver <fixture fixture ...>
735 737
 --------------------------------
736 738
 
737  
-**New in Django development version**
  739
+.. versionadded:: 1.0
738 740
 
739 741
 Runs a Django development server (as in ``runserver``) using data from the
740 742
 given fixture(s).
7  docs/ref/forms/api.txt
@@ -157,9 +157,8 @@ object::
157 157
     >>> f.cleaned_data
158 158
     {'cc_myself': True, 'message': u'Hi there', 'sender': u'foo@example.com', 'subject': u'hello'}
159 159
 
160  
-.. note::
161  
-    **New in Django development version** The ``cleaned_data`` attribute was
162  
-    called ``clean_data`` in earlier releases.
  160
+.. versionchanged:: 1.0
  161
+    The ``cleaned_data`` attribute was called ``clean_data`` in earlier releases.
163 162
 
164 163
 Note that any text-based field -- such as ``CharField`` or ``EmailField`` --
165 164
 always cleans the input into a Unicode string. We'll cover the encoding
@@ -564,7 +563,7 @@ when printed::
564 563
 Binding uploaded files to a form
565 564
 --------------------------------
566 565
 
567  
-**New in Django development version**
  566
+.. versionadded:: 1.0
568 567
 
569 568
 Dealing with forms that have ``FileField`` and ``ImageField`` fields
570 569
 is a little more complicated than a normal form.
29  docs/ref/forms/fields.txt
@@ -219,9 +219,10 @@ fields. We've specified ``auto_id=False`` to simplify the output::
219 219
 ``error_messages``
220 220
 ~~~~~~~~~~~~~~~~~~
221 221
 
  222
+.. versionadded:: 1.0
  223
+
222 224
 .. attribute:: Field.error_messages
223 225
 
224  
-**New in Django development version**
225 226
 
226 227
 The ``error_messages`` argument lets you override the default messages that the
227 228
 field will raise. Pass in a dictionary with keys matching the error messages you
@@ -314,9 +315,9 @@ For each field, we describe the default widget used if you don't specify
314 315
       the field has ``required=True``.
315 316
     * Error message keys: ``required``
316 317
 
317  
-**New in Django development version:** The empty value for a ``CheckboxInput``
318  
-(and hence the standard ``BooleanField``) has changed to return ``False``
319  
-instead of ``None`` in the development version.
  318
+.. versionchanged:: 1.0
  319
+   The empty value for a ``CheckboxInput`` (and hence the standard ``BooleanField``)
  320
+   has changed to return ``False`` instead of ``None`` in the development version.
320 321
 
321 322
 .. note::
322 323
 
@@ -448,15 +449,15 @@ If no ``input_formats`` argument is provided, the default input formats are::
448 449
     '%m/%d/%y %H:%M',        # '10/25/06 14:30'
449 450
     '%m/%d/%y',              # '10/25/06'
450 451
 
451  
-**New in Django development version:** The ``DateTimeField`` used to use a
452  
-``TextInput`` widget by default. This has now changed.
  452
+.. versionchanged:: 1.0
  453
+   The ``DateTimeField`` used to use a ``TextInput`` widget by default. This has now changed.
453 454
 
454 455
 ``DecimalField``
455 456
 ~~~~~~~~~~~~~~~~
456 457
 
457  
-.. class:: DecimalField(**kwargs)
  458
+.. versionadded:: 1.0
458 459
 
459  
-**New in Django development version**
  460
+.. class:: DecimalField(**kwargs)
460 461
 
461 462
     * Default widget: ``TextInput``
462 463
     * Empty value: ``None``
@@ -503,9 +504,9 @@ given length.
503 504
 ``FileField``
504 505
 ~~~~~~~~~~~~~
505 506
 
506  
-.. class:: FileField(**kwargs)
  507
+.. versionadded:: 1.0
507 508
 
508  
-**New in Django development version**
  509
+.. class:: FileField(**kwargs)
509 510
 
510 511
     * Default widget: ``FileInput``
511 512
     * Empty value: ``None``
@@ -523,9 +524,9 @@ When you use a ``FileField`` in a form, you must also remember to
523 524
 ``FilePathField``
524 525
 ~~~~~~~~~~~~~~~~~
525 526
 
526  
-.. class:: FilePathField(**kwargs)
  527
+.. versionadded:: 1.0
527 528
 
528  
-**New in Django development version**
  529
+.. class:: FilePathField(**kwargs)
529 530
 
530 531
     * Default widget: ``Select``
531 532
     * Empty value: ``None``
@@ -569,9 +570,9 @@ These control the range of values permitted in the field.
569 570
 ``ImageField``
570 571
 ~~~~~~~~~~~~~~
571 572
 
572  
-.. class:: ImageField(**kwargs)
  573
+.. versionadded:: 1.0
573 574
 
574  
-**New in Django development version**
  575
+.. class:: ImageField(**kwargs)
575 576
 
576 577
     * Default widget: ``FileInput``
577 578
     * Empty value: ``None``
4  docs/ref/forms/widgets.txt
@@ -38,9 +38,9 @@ commonly used groups of widgets:
38 38
 
39 39
 .. class:: DateTimeInput
40 40
 
41  
-    Date/time input as a simple text box: ``<input type='text' ...>``
  41
+    .. versionadded:: 1.0
42 42
 
43  
-    **New in Django development version:**
  43
+    Date/time input as a simple text box: ``<input type='text' ...>``
44 44
 
45 45
 .. class:: Textarea
46 46
 
28  docs/ref/generic-views.txt
@@ -198,9 +198,10 @@ a date in the *future* are not included unless you set ``allow_future`` to
198 198
       specified in ``date_field`` is greater than the current date/time. By
199 199
       default, this is ``False``.
200 200
 
201  
-    * **New in Django development version:** ``template_object_name``:
202  
-      Designates the name of the template variable to use in the template
203  
-      context. By default, this is ``'latest'``.
  201
+    .. versionadded:: 1.0
  202
+
  203
+    * ``template_object_name``: Designates the name of the template variable
  204
+      to use in the template context. By default, this is ``'latest'``.
204 205
 
205 206
 **Template name:**
206 207
 
@@ -223,14 +224,16 @@ In addition to ``extra_context``, the template's context will be:
223 224
       ordered in reverse. This is equivalent to
224 225
       ``queryset.dates(date_field, 'year')[::-1]``.
225 226
 
  227
+    .. versionchanged:: 1.0
  228
+       The behaviour depending on ``template_object_name`` is new in this version.
  229
+
226 230
     * ``latest``: The ``num_latest`` objects in the system, ordered descending
227 231
       by ``date_field``. For example, if ``num_latest`` is ``10``, then
228 232
       ``latest`` will be a list of the latest 10 objects in ``queryset``.
229 233
 
230  
-      **New in Django development version:** This variable's name depends on
231  
-      the ``template_object_name`` parameter, which is ``'latest'`` by default.
232  
-      If ``template_object_name`` is ``'foo'``, this variable's name will be
233  
-      ``foo``.
  234
+      This variable's name depends on the ``template_object_name`` parameter,
  235
+      which is ``'latest'`` by default. If ``template_object_name`` is
  236
+      ``'foo'``, this variable's name will be ``foo``.
234 237
 
235 238
 ``django.views.generic.date_based.archive_year``
236 239
 ------------------------------------------------
@@ -733,6 +736,9 @@ If ``template_name`` isn't specified, this view will use the template
733 736
 
734 737
 **Template context:**
735 738
 
  739
+.. versionadded:: 1.0
  740
+   The ``paginator`` and ``page_obj`` context variables are new.
  741
+
736 742
 In addition to ``extra_context``, the template's context will be:
737 743
 
738 744
     * ``object_list``: The list of objects. This variable's name depends on the
@@ -746,11 +752,9 @@ In addition to ``extra_context``, the template's context will be:
746 752
 
747 753
 If the results are paginated, the context will contain these extra variables:
748 754
 
749  
-    * **New in Django development version:** ``paginator``: An instance of
750  
-      ``django.core.paginator.Paginator``.
  755
+    * ``paginator``: An instance of ``django.core.paginator.Paginator``.
751 756
 
752  
-    * **New in Django development version:** ``page_obj``: An instance of
753  
-      ``django.core.paginator.Page``.
  757
+    * ``page_obj``: An instance of ``django.core.paginator.Page``.
754 758
 
755 759
 Notes on pagination
756 760
 ~~~~~~~~~~~~~~~~~~~
@@ -778,7 +782,7 @@ represented as page ``1``.
778 782
 For more on pagination, read the :ref:`pagination documentation
779 783
 <topics-pagination>`.
780 784
 
781  
-**New in Django development version:** 
  785
+.. versionadded:: 1.0
782 786
 
783 787
 As a special case, you are also permitted to use ``last`` as a value for
784 788
 ``page``::
9  docs/ref/middleware.txt
@@ -54,9 +54,10 @@ Adds a few conveniences for perfectionists:
54 54
       don't have a valid URL pattern for ``foo.com/bar`` but *do* have a valid
55 55
       pattern for ``foo.com/bar/``.
56 56
 
57  
-      **New in Django development version:** The behavior of
58  
-      :setting:`APPEND_SLASH` has changed slightly in the development version.
59  
-      It didn't used to check whether the pattern was matched in the URLconf.
  57
+      .. versionchanged:: 1.0
  58
+         The behavior of :setting:`APPEND_SLASH` has changed slightly in this
  59
+         version. It didn't used to check whether the pattern was matched in
  60
+         the URLconf.
60 61
 
61 62
       If :setting:`PREPEND_WWW` is ``True``, URLs that lack a leading "www."
62 63
       will be redirected to the same URL with a leading "www."
@@ -175,7 +176,7 @@ CSRF protection middleware
175 176
 
176 177
 .. class:: django.contrib.csrf.middleware.CsrfMiddleware
177 178
 
178  
-**New in Django development version**
  179
+.. versionadded:: 1.0
179 180
 
180 181
 Adds protection against Cross Site Request Forgeries by adding hidden form
181 182
 fields to POST forms and checking requests for the correct value. See the
28  docs/ref/models/fields.txt
@@ -171,7 +171,7 @@ If ``True``, djadmin:`django-admin.py sqlindexes <sqlindexes>` will output a
171 171
 
172 172
 .. attribute:: Field.db_tablespace
173 173
 
174  
-**New in Django development version**
  174
+.. versionadded:: 1.0
175 175
 
176 176
 The name of the database tablespace to use for this field's index, if this field
177 177
 is indexed. The default is the project's :setting:`DEFAULT_INDEX_TABLESPACE`
@@ -366,7 +366,7 @@ shortcuts.
366 366
 ``DecimalField``
367 367
 ----------------
368 368
 
369  
-**New in Django development version**
  369
+.. versionadded:: 1.0
370 370
 
371 371
 .. class:: DecimalField(max_digits=None, decimal_places=None, [**options])
372 372
 
@@ -422,7 +422,7 @@ A file-upload field. Has one **required** argument:
422 422
     date/time of the file upload (so that uploaded files don't fill up the given
423 423
     directory).
424 424
     
425  
-    **New in Django development version**
  425
+    .. versionadded:: 1.0
426 426
 
427 427
     This may also be a callable, such as a function, which will be called to
428 428
     obtain the upload path, including the filename. This callable must be
@@ -452,7 +452,7 @@ Also has one optional argument:
452 452
 
453 453
 .. attribute:: FileField.storage
454 454
 
455  
-    **New in Django development version.**
  455
+    .. versionadded:: 1.0
456 456
     
457 457
     Optional. A storage object, which handles the storage and retrieval of your
458 458
     files. See :ref:`topics-files` for details on how to provide this object.
@@ -499,7 +499,10 @@ without validation, to a directory that's within your Web server's document
499 499
 root, then somebody could upload a CGI or PHP script and execute that script by
500 500
 visiting its URL on your site. Don't allow that.
501 501
 
502  
-**New in development version:** By default, :class:`FileField` instances are
  502
+.. versionadded:: 1.0
  503
+   The ``max_length`` argument was added in this version.
  504
+
  505
+By default, :class:`FileField` instances are
503 506
 created as ``varchar(100)`` columns in your database. As with other fields, you
504 507
 can change the maximum length using the :attr:`~CharField.max_length` argument.
505 508
 
@@ -542,7 +545,10 @@ base filename, not the full path. So, this example::
542 545
 because the :attr:`~FilePathField.match` applies to the base filename
543 546
 (``foo.gif`` and ``bar.gif``).
544 547
 
545  
-**New in development version:** By default, :class:`FilePathField` instances are
  548
+.. versionadded:: 1.0
  549
+   The ``max_length`` argument was added in this version.
  550
+
  551
+By default, :class:`FilePathField` instances are
546 552
 created as ``varchar(100)`` columns in your database. As with other fields, you
547 553
 can change the maximum length using the :attr:`~CharField.max_length` argument.
548 554
 
@@ -588,7 +594,10 @@ Requires the `Python Imaging Library`_.
588 594
 
589 595
 .. _Python Imaging Library: http://www.pythonware.com/products/pil/
590 596
 
591  
-**New in development version:** By default, :class:`ImageField` instances are
  597
+.. versionadded:: 1.0
  598
+   The ``max_length`` argument was added in this version.
  599
+
  600
+By default, :class:`ImageField` instances are
592 601
 created as ``varchar(100)`` columns in your database. As with other fields, you
593 602
 can change the maximum length using the :attr:`~CharField.max_length` argument.
594 603
 
@@ -753,7 +762,10 @@ Note, however, that this only refers to models in the same ``models.py`` file --
753 762
 you cannot use a string to reference a model defined in another application or
754 763
 imported from elsewhere.
755 764
 
756  
-**New in Django development version:** To refer to models defined in another
  765
+.. versionchanged:: 1.0
  766
+   Refering models in other applications must include the application label.
  767
+
  768
+To refer to models defined in another
757 769
 application, you must instead explicitly specify the application label. For
758 770
 example, if the ``Manufacturer`` model above is defined in another application
759 771
 called ``production``, you'd need to use::
4  docs/ref/models/instances.txt
@@ -62,7 +62,7 @@ documentation for ``AutoField`` for more details.
62 62
 The ``pk`` property
63 63
 ~~~~~~~~~~~~~~~~~~~
64 64
 
65  
-**New in Django development version**
  65
+.. versionadded:: 1.0
66 66
 
67 67
 .. attribute:: Model.pk
68 68
 
@@ -172,7 +172,7 @@ auto-primary-key values`_ above and `Forcing an INSERT or UPDATE`_ below.
172 172
 Forcing an INSERT or UPDATE
173 173
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
174 174
 
175  
-**New in Django development version**
  175
+.. versionadded:: 1.0
176 176
 
177 177
 In some rare circumstances, it's necessary to be able to force the ``save()``
178 178
 method to perform an SQL ``INSERT`` and not fall back to doing an ``UPDATE``.
4  docs/ref/models/options.txt
@@ -55,7 +55,7 @@ Django quotes column and table names behind the scenes.
55 55
 
56 56
 .. attribute:: Options.db_tablespace
57 57
 
58  
-**New in Django development version**
  58
+.. versionadded:: 1.0
59 59
 
60 60
 The name of the database tablespace to use for the model. If the backend doesn't
61 61
 support tablespaces, this option is ignored.
@@ -152,7 +152,7 @@ It's used in the Django admin and is enforced at the database level (i.e., the
152 152
 appropriate ``UNIQUE`` statements are included in the ``CREATE TABLE``
153 153
 statement).
154 154
 
155  
-**New in Django development version**
  155
+.. versionadded:: 1.0
156 156
 
157 157
 For convenience, unique_together can be a single list when dealing with a single
158 158
 set of fields::
25  docs/ref/models/querysets.txt
@@ -376,7 +376,7 @@ Examples::
376 376
 ``none()``
377 377
 ~~~~~~~~~~
378 378
 
379  
-**New in Django development version**
  379
+.. versionadded:: 1.0
380 380
 
381 381
 Returns an ``EmptyQuerySet`` -- a ``QuerySet`` that always evaluates to
382 382
 an empty list. This can be used in cases where you know that you should
@@ -458,7 +458,8 @@ follow::
458 458
     p = b.author         # Doesn't hit the database.
459 459
     c = p.hometown       # Requires a database call.
460 460
 
461  
-The ``depth`` argument is new in the Django development version.
  461
+.. versionadded:: 1.0
  462
+   The ``depth`` argument is new in the Django development version.
462 463
 
463 464
 ``extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)``
464 465
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -518,7 +519,8 @@ of the arguments is required, but you should use at least one of them.
518 519
     some database backends, such as some MySQL versions, don't support
519 520
     subqueries.
520 521
 
521  
-    **New in Django development version**
  522
+    .. versionadded:: 1.0
  523
+
522 524
     In some rare cases, you might wish to pass parameters to the SQL fragments
523 525
     in ``extra(select=...)```. For this purpose, use the ``select_params``
524 526
     parameter. Since ``select_params`` is a sequence and the ``select``
@@ -619,10 +621,6 @@ of the arguments is required, but you should use at least one of them.
619 621
 
620 622
         Entry.objects.extra(where=['headline=%s'], params=['Lennon'])
621 623
 
622  
-**New in Django development version** The ``select_params`` argument to
623  
-``extra()`` is new. Previously, you could attempt to pass parameters for
624  
-``select`` in the ``params`` argument, but it worked very unreliably.
625  
-
626 624
 QuerySet methods that do not return QuerySets
627 625
 ---------------------------------------------
628 626
 
@@ -853,10 +851,11 @@ SQL equivalents::
853 851
     SELECT ... WHERE id = 14;
854 852
     SELECT ... WHERE id IS NULL;
855 853
 
856  
-**New in Django development version:** The semantics of ``id__exact=None`` have
857  
-changed in the development version. Previously, it was (intentionally)
858  
-converted to ``WHERE id = NULL`` at the SQL level, which would never match
859  
-anything. It has now been changed to behave the same as ``id__isnull=True``.
  854
+.. versionchanged:: 1.0
  855
+   The semantics of ``id__exact=None`` have
  856
+   changed in the development version. Previously, it was (intentionally)
  857
+   converted to ``WHERE id = NULL`` at the SQL level, which would never match
  858
+   anything. It has now been changed to behave the same as ``id__isnull=True``.
860 859
 
861 860
 .. admonition:: MySQL comparisons
862 861
 
@@ -1140,7 +1139,7 @@ database to add the full-text index.
1140 1139
 regex
1141 1140
 ~~~~~
1142 1141
 
1143  
-**New in Django development version**
  1142
+.. versionadded:: 1.0
1144 1143
 
1145 1144
 Case-sensitive regular expression match.
1146 1145
 
@@ -1168,7 +1167,7 @@ regular expression syntax is recommended.
1168 1167
 iregex
1169 1168
 ~~~~~~
1170 1169
 
1171  
-**New in Django development version**
  1170
+.. versionadded:: 1.0
1172 1171
 
1173 1172
 Case-insensitive regular expression match.
1174 1173
 
29  docs/ref/request-response.txt
@@ -49,7 +49,7 @@ All attributes except ``session`` should be considered read-only.
49 49
 
50 50
 .. attribute:: HttpRequest.encoding
51 51
 
52  
-    **New in Django development version**
  52
+    .. versionadded:: 1.0
53 53
 
54 54
     A string representing the current encoding used to decode form submission
55 55
     data (or ``None``, which means the ``DEFAULT_CHARSET`` setting is used).
@@ -183,7 +183,7 @@ Methods
183 183
 
184 184
 .. method:: HttpRequest.get_host()
185 185
 
186  
-   **New in Django development version**
  186
+   .. versionadded:: 1.0
187 187
 
188 188
    Returns the originating host of the request using information from the
189 189
    ``HTTP_X_FORWARDED_HOST`` and ``HTTP_HOST`` headers (in that order). If
@@ -202,7 +202,7 @@ Methods
202 202
 
203 203
 .. method:: HttpRequest.build_absolute_uri(location)
204 204
 
205  
-   **New in Django development version**
  205
+   .. versionadded:: 1.0
206 206
 
207 207
    Returns the absolute URI form of ``location``. If no location is provided,
208 208
    the location will be set to ``request.get_full_path()``.
@@ -220,7 +220,7 @@ Methods
220 220
 
221 221
 .. method:: HttpRequest.is_ajax()
222 222
 
223  
-   **New in Django development version**
  223
+   .. versionadded:: 1.0
224 224
 
225 225
    Returns ``True`` if the request was made via an ``XMLHttpRequest``, by checking
226 226
    the ``HTTP_X_REQUESTED_WITH`` header for the string ``'XMLHttpRequest'``. The
@@ -448,13 +448,15 @@ Methods
448 448
 
449 449
     ``status`` is the `HTTP Status code`_ for the response.
450 450
 
451  
-    **(New in Django development version)** ``content_type`` is an alias for
452  
-    ``mimetype``. Historically, the parameter was only called ``mimetype``,
453  
-    but since this is actually the value included in the HTTP ``Content-Type``
454  
-    header, it can also include the character set encoding, which makes it
455  
-    more than just a MIME type specification. If ``mimetype`` is specified
456  
-    (not ``None``), that value is used. Otherwise, ``content_type`` is used. If
457  
-    neither is given, the ``DEFAULT_CONTENT_TYPE`` setting is used.
  451
+    .. versionadded:: 1.0
  452
+
  453
+    ``content_type`` is an alias for ``mimetype``. Historically, this parameter
  454
+    was only called ``mimetype``, but since this is actually the value included
  455
+    in the HTTP ``Content-Type`` header, it can also include the character set
  456
+    encoding, which makes it more than just a MIME type specification.
  457
+    If ``mimetype`` is specified (not ``None``), that value is used.
  458
+    Otherwise, ``content_type`` is used. If neither is given, the
  459
+    ``DEFAULT_CONTENT_TYPE`` setting is used.
458 460
 
459 461
 .. method:: HttpResponse.__setitem__(header, value)
460 462
 
@@ -548,8 +550,9 @@ types of HTTP responses. Like ``HttpResponse``, these subclasses live in
548 550
 
549 551
 .. class:: HttpResponseBadRequest
550 552
 
551  
-    **New in Django development version.** Acts just like :class:`HttpResponse`
552  
-    but uses a 400 status code.
  553
+    .. versionadded:: 1.0
  554
+
  555
+    Acts just like :class:`HttpResponse` but uses a 400 status code.
553 556
 
554 557
 .. class:: HttpResponseNotFound
555 558
 
34  docs/ref/settings.txt
@@ -287,7 +287,7 @@ Never deploy a site into production with ``DEBUG`` turned on.
287 287
 DEBUG_PROPAGATE_EXCEPTIONS
288 288
 --------------------------
289 289
 
290  
-**New in Django development version**
  290
+.. versionadded:: 1.0
291 291
 
292 292
 Default: ``False``
293 293
 
@@ -342,7 +342,7 @@ site manager(s).
342 342
 DEFAULT_TABLESPACE
343 343
 ------------------
344 344
 
345  
-**New in Django development version**
  345
+.. versionadded:: 1.0
346 346
 
347 347
 Default: ``''`` (Empty string)
348 348
 
@@ -354,7 +354,7 @@ backend supports it.
354 354
 DEFAULT_INDEX_TABLESPACE
355 355
 ------------------------
356 356
 
357  
-**New in Django development version**
  357
+.. versionadded:: 1.0
358 358
 
359 359
 Default: ``''`` (Empty string)
360 360
 
@@ -435,7 +435,7 @@ trailing space.
435 435
 EMAIL_USE_TLS
436 436
 -------------
437 437
 
438  
-**New in Django development version**
  438
+.. versionadded:: 1.0
439 439
 
440 440
 Default: ``False``
441 441
 
@@ -446,7 +446,7 @@ Whether to use a TLS (secure) connection when talking to the SMTP server.
446 446
 FILE_CHARSET
447 447
 ------------
448 448
 
449  
-**New in Django development version**
  449
+.. versionadded:: 1.0
450 450
 
451 451
 Default: ``'utf-8'``
452 452
 
@@ -458,7 +458,7 @@ template files and initial SQL data files.
458 458
 FILE_UPLOAD_HANDLERS
459 459
 --------------------
460 460
 
461  
-**New in Django development version**
  461
+.. versionadded:: 1.0
462 462
 
463 463
 Default::
464 464
 
@@ -472,7 +472,7 @@ A tuple of handlers to use for uploading. See :ref:`topics-files` for details.
472 472
 FILE_UPLOAD_MAX_MEMORY_SIZE
473 473
 ---------------------------
474 474
 
475  
-**New in Django development version**
  475
+.. versionadded:: 1.0
476 476
 
477 477
 Default: ``2621440`` (i.e. 2.5 MB).
478 478
 
@@ -484,7 +484,7 @@ the file system. See :ref:`topics-files` for details.
484 484
 FILE_UPLOAD_TEMP_DIR
485 485
 --------------------
486 486
 
487  
-**New in Django development version**
  487
+.. versionadded:: 1.0
488 488
 
489 489
 Default: ``None``
490 490
 
@@ -615,7 +615,7 @@ standard language format. For example, U.S. English is ``"en-us"``. See
615 615
 LANGUAGE_COOKIE_NAME
616 616
 --------------------
617 617
 
618  
-**New in Django development version**
  618
+.. versionadded:: 1.0
619 619
 
620 620
 Default: ``'django_language'``
621 621
 
@@ -679,7 +679,7 @@ See :ref:`translations-in-your-own-projects`.
679 679
 LOGIN_REDIRECT_URL
680 680
 ------------------
681 681
 
682  
-**New in Django development version**
  682
+.. versionadded:: 1.0
683 683
 
684 684
 Default: ``'/accounts/profile/'``
685 685
 
@@ -694,7 +694,7 @@ decorator, for example.
694 694
 LOGIN_URL
695 695
 ---------
696 696
 
697  
-**New in Django development version**
  697
+.. versionadded:: 1.0
698 698
 
699 699
 Default: ``'/accounts/login/'``
700 700
 
@@ -706,7 +706,7 @@ The URL where requests are redirected for login, specially when using the
706 706
 LOGOUT_URL
707 707
 ----------
708 708
 
709  
-**New in Django development version**
  709
+.. versionadded:: 1.0
710 710
 
711 711
 Default: ``'/accounts/logout/'``
712 712
 
@@ -866,7 +866,7 @@ The e-mail address that error messages come from, such as those sent to
866 866
 SESSION_ENGINE
867 867
 --------------
868 868
 
869  
-**New in Django development version**
  869
+.. versionadded:: 1.0
870 870
 
871 871
 Default: ``django.contrib.sessions.backends.db``
872 872
 
@@ -913,7 +913,7 @@ should be different from ``LANGUAGE_COOKIE_NAME``). See the :ref:`topics-http-se
913 913
 SESSION_COOKIE_PATH
914 914
 -------------------
915 915
 
916  
-**New in Django development version**
  916
+.. versionadded:: 1.0
917 917
 
918 918
 Default: ``'/'``
919 919
 
@@ -951,7 +951,7 @@ See the :ref:`topics-http-sessions`.
951 951
 SESSION_FILE_PATH
952 952
 -----------------
953 953
 
954  
-**New in Django development version**
  954
+.. versionadded:: 1.0
955 955
 
956 956
 Default: ``None``
957 957
 
@@ -1058,7 +1058,7 @@ misspelled) variables. See :ref:`invalid-template-variables`..
1058 1058
 TEST_DATABASE_CHARSET
1059 1059
 ---------------------
1060 1060
 
1061  
-**New in Django development version**
  1061
+.. versionadded:: 1.0
1062 1062
 
1063 1063
 Default: ``None``
1064 1064
 
@@ -1076,7 +1076,7 @@ Supported for the PostgreSQL_ (``postgresql``, ``postgresql_psycopg2``) and MySQ
1076 1076
 TEST_DATABASE_COLLATION
1077 1077
 ------------------------
1078 1078
 
1079  
-**New in Django development version**
  1079
+.. versionadded:: 1.0
1080 1080
 
1081 1081
 Default: ``None``
1082 1082
 
2  docs/ref/templates/api.txt
@@ -387,7 +387,7 @@ See :ref:`topics-i18n` for more.
387 387
 django.core.context_processors.media
388 388
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
389 389
 
390  
-**New in Django development version**
  390
+.. versionadded:: 1.0
391 391
 
392 392
 If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
393 393
 ``RequestContext`` will contain a variable ``MEDIA_URL``, providing the
46  docs/ref/templates/builtins.txt
@@ -19,7 +19,7 @@ Built-in tag reference
19 19
 autoescape
20 20
 ~~~~~~~~~~
21 21
 
22  
-**New in Django development version**
  22
+.. versionadded:: 1.0
23 23
 
24 24
 Control the current auto-escaping behavior. This tag takes either ``on`` or
25 25
 ``off`` as an argument and that determines whether auto-escaping is in effect
@@ -54,8 +54,8 @@ Ignore everything between ``{% comment %}`` and ``{% endcomment %}``
54 54
 cycle
55 55
 ~~~~~
56 56
 
57  
-**Changed in Django development version**
58  
-Cycle among the given strings or variables each time this tag is encountered.
  57
+.. versionchanged:: 1.0
  58
+    Cycle among the given strings or variables each time this tag is encountered.
59 59
 
60 60
 Within a loop, cycles among the given strings/variables each time through the
61 61
 loop::
@@ -171,7 +171,8 @@ provided in ``athlete_list``::
171 171
 
172 172
 You can loop over a list in reverse by using ``{% for obj in list reversed %}``.
173 173
 
174  
-**New in Django development version**
  174
+.. versionadded:: 1.0
  175
+
175 176
 If you need to loop over a list of lists, you can unpack the values
176 177
 in each sub-list into individual variables. For example, if your context
177 178
 contains a list of (x,y) coordinates called ``points``, you could use the
@@ -671,9 +672,11 @@ such as this::
671 672
 
672 673
 The template tag will output the string ``/clients/client/123/``.
673 674
 
674  
-**New in development version:** If you're using :ref:`named URL patterns
675  
-<naming-url-patterns>`, you can refer to the name of the pattern in the ``url``
676  
-tag instead of using the path to the view.
  675
+.. versionadded:: 1.0
  676
+
  677
+If you're using :ref:`named URL patterns <naming-url-patterns>`, you can
  678
+refer to the name of the pattern in the ``url`` tag instead of using the
  679
+path to the view.
677 680
 
678 681
 Note that if the URL you're reversing doesn't exist, you'll get an
679 682
 :exc:`NoReverseMatch` exception raised, which will cause your site to display an
@@ -719,7 +722,7 @@ which is rounded up to 88).
719 722
 with
720 723
 ~~~~
721 724
 
722  
-**New in Django development version**
  725
+.. versionadded:: 1.0
723 726
 
724 727
 Caches a complex variable under a simpler name. This is useful when accessing
725 728
 an "expensive" method (e.g., one that hits the database) multiple times.
@@ -758,9 +761,6 @@ addslashes
758 761
 
759 762
 Adds slashes before quotes. Useful for escaping strings in CSV, for example.
760 763
 
761  
-**New in Django development version**: For escaping data in JavaScript strings,
762  
-use the `escapejs`_ filter instead.
763  
-
764 764
 .. templatefilter:: capfirst
765 765
 
766 766
 capfirst
@@ -906,16 +906,17 @@ applied to the result will only result in one round of escaping being done. So
906 906
 it is safe to use this function even in auto-escaping environments. If you want
907 907
 multiple escaping passes to be applied, use the ``force_escape`` filter.
908 908
 
909  
-**New in Django development version:** Due to auto-escaping, the behavior