summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Kubasik <kevin@kubasik.net>2009-07-22 13:11:55 +0000
committerKevin Kubasik <kevin@kubasik.net>2009-07-22 13:11:55 +0000
commit2511eb2759097be51a3cf255762cbc1dca2f1c08 (patch)
treee90ca01ed40c1acd72408cb0a2925ed9de76adb1
parent7e26c1047b4e4f471d4f7020a6571e6e8bced0de (diff)
parentfb564015960298ab820d7fd1c7edd3e96a8a95f0 (diff)
[gsoc2009-testing] Upstream Merge
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/test-improvements@11293 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--AUTHORS1
-rw-r--r--django/conf/locale/pl/LC_MESSAGES/django.mobin65770 -> 65771 bytes
-rw-r--r--django/conf/locale/pl/LC_MESSAGES/django.po172
-rw-r--r--django/views/debug.py4
-rw-r--r--docs/index.txt3
-rw-r--r--docs/internals/committers.txt23
-rw-r--r--docs/internals/deprecation.txt21
-rw-r--r--docs/internals/index.txt3
-rw-r--r--docs/internals/release-process.txt31
-rw-r--r--docs/topics/http/urls.txt18
10 files changed, 153 insertions, 123 deletions
diff --git a/AUTHORS b/AUTHORS
index c965ddee4e..38abfe357e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -14,6 +14,7 @@ The PRIMARY AUTHORS are (and/or have been):
* Robert Wittams
* Gary Wilson
* Brian Rosner
+ * Justin Bronn
* Karen Tracey
More information on the main contributors to Django can be found in
diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo
index e6387f9f4f..309db85baf 100644
--- a/django/conf/locale/pl/LC_MESSAGES/django.mo
+++ b/django/conf/locale/pl/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/pl/LC_MESSAGES/django.po b/django/conf/locale/pl/LC_MESSAGES/django.po
index cd5cc68a6b..ba985d01e9 100644
--- a/django/conf/locale/pl/LC_MESSAGES/django.po
+++ b/django/conf/locale/pl/LC_MESSAGES/django.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-20 12:58+0200\n"
+"POT-Creation-Date: 2009-07-17 21:59+0200\n"
"PO-Revision-Date: 2008-02-25 15:53+0100\n"
"Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -223,7 +223,7 @@ msgstr "chiński tradycyjny"
msgid "Successfully deleted %(count)d %(items)s."
msgstr "Usunięto %(count)d %(items)s."
-#: contrib/admin/actions.py:67 contrib/admin/options.py:1025
+#: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?"
msgstr "Jesteś pewien?"
@@ -321,7 +321,7 @@ msgstr "Zmieniono %s"
#: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
-#: forms/models.py:587
+#: forms/models.py:600
msgid "and"
msgstr "i"
@@ -344,53 +344,53 @@ msgstr "Usunięto %(name)s \"%(object)s\"."
msgid "No fields changed."
msgstr "Żadne pole nie zmienione."
-#: contrib/admin/options.py:598 contrib/auth/admin.py:67
+#: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" dodany pomyślnie."
-#: contrib/admin/options.py:602 contrib/admin/options.py:635
+#: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75
msgid "You may edit it again below."
msgstr "Możesz ponownie edytować wpis poniżej."
-#: contrib/admin/options.py:612 contrib/admin/options.py:645
+#: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format
msgid "You may add another %s below."
msgstr "Możesz dodać nowy wpis %s poniżej."
-#: contrib/admin/options.py:633
+#: contrib/admin/options.py:634
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione."
-#: contrib/admin/options.py:641
+#: contrib/admin/options.py:642
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
"%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej."
-#: contrib/admin/options.py:772
+#: contrib/admin/options.py:773
#, python-format
msgid "Add %s"
msgstr "Dodaj %s"
-#: contrib/admin/options.py:803 contrib/admin/options.py:1003
+#: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format
msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje."
-#: contrib/admin/options.py:860
+#: contrib/admin/options.py:861
#, python-format
msgid "Change %s"
msgstr "Zmień %s"
-#: contrib/admin/options.py:904
+#: contrib/admin/options.py:905
msgid "Database error"
msgstr "Błąd bazy danych"
-#: contrib/admin/options.py:940
+#: contrib/admin/options.py:941
#, python-format
msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully."
@@ -398,17 +398,17 @@ msgstr[0] "%(count)s %(name)s został pomyślnie zmieniony."
msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione."
msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych."
-#: contrib/admin/options.py:1018
+#: contrib/admin/options.py:1020
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie."
-#: contrib/admin/options.py:1054
+#: contrib/admin/options.py:1057
#, python-format
msgid "Change history: %s"
msgstr "Historia zmian: %s"
-#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14
+#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80
msgid ""
"Please enter a correct username and password. Note that both fields are case-"
@@ -417,11 +417,11 @@ msgstr ""
"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
"znaczenie."
-#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40
+#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired."
msgstr "Twoja sesja wygasła, zaloguj się ponownie."
-#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47
+#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
msgid ""
"Looks like your browser isn't configured to accept cookies. Please enable "
"cookies, reload this page, and try again."
@@ -429,27 +429,27 @@ msgstr ""
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
"spróbuj ponownie."
-#: contrib/admin/sites.py:301 contrib/admin/sites.py:307
+#: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character."
msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'."
-#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62
+#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, python-format
msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'."
-#: contrib/admin/sites.py:360
+#: contrib/admin/sites.py:367
msgid "Site administration"
msgstr "Administracja stroną"
-#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26
+#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20
msgid "Log in"
msgstr "Zaloguj się"
-#: contrib/admin/sites.py:417
+#: contrib/admin/sites.py:426
#, python-format
msgid "%s administration"
msgstr "%s - administracja"
@@ -484,7 +484,7 @@ msgstr "Zmień:"
msgid "Lookup"
msgstr "Szukaj"
-#: contrib/admin/widgets.py:236
+#: contrib/admin/widgets.py:235
msgid "Add Another"
msgstr "Dodaj kolejny"
@@ -499,7 +499,7 @@ msgstr "Niestety, żądana strona nie została znaleziona."
#: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8
-#: contrib/admin/templates/admin/base.html:31
+#: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6
@@ -545,7 +545,7 @@ msgstr "Wykonaj wybraną akcję"
#: contrib/admin/templates/admin/actions.html:4
msgid "Go"
-msgstr "Szukaj"
+msgstr "Wykonaj"
#: contrib/admin/templates/admin/app_index.html:10
#: contrib/admin/templates/admin/index.html:19
@@ -553,18 +553,18 @@ msgstr "Szukaj"
msgid "%(name)s"
msgstr "%(name)s"
-#: contrib/admin/templates/admin/base.html:26
+#: contrib/admin/templates/admin/base.html:27
msgid "Welcome,"
msgstr "Witaj,"
-#: contrib/admin/templates/admin/base.html:26
+#: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation"
msgstr "Dokumentacja"
-#: contrib/admin/templates/admin/base.html:26
+#: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3
@@ -572,7 +572,7 @@ msgstr "Dokumentacja"
msgid "Change password"
msgstr "Zmiana hasła"
-#: contrib/admin/templates/admin/base.html:26
+#: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out"
@@ -755,6 +755,11 @@ msgstr ""
msgid "Show all"
msgstr "Pokaż wszystko"
+#: contrib/admin/templates/admin/pagination.html:11
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Save"
+msgstr "Zapisz"
+
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Szukaj"
@@ -772,10 +777,6 @@ msgstr[2] "%(counter)s wyników"
msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s trafień"
-#: contrib/admin/templates/admin/submit_line.html:3
-msgid "Save"
-msgstr "Zapisz"
-
#: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new"
msgstr "Zapisz jako nowe"
@@ -999,144 +1000,145 @@ msgstr "strona"
msgid "template"
msgstr "szablon"
-#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60
-#: contrib/admindocs/views.py:62
+#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
+#: contrib/admindocs/views.py:65
msgid "tag:"
msgstr "tag:"
-#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93
-#: contrib/admindocs/views.py:95
+#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
+#: contrib/admindocs/views.py:98
msgid "filter:"
msgstr "filtr:"
-#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157
-#: contrib/admindocs/views.py:159
+#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
+#: contrib/admindocs/views.py:162
msgid "view:"
msgstr "widok:"
-#: contrib/admindocs/views.py:187
+#: contrib/admindocs/views.py:190
#, python-format
msgid "App %r not found"
msgstr "Aplikacja %r nie została znaleziona"
-#: contrib/admindocs/views.py:194
+#: contrib/admindocs/views.py:197
#, python-format
msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r"
-#: contrib/admindocs/views.py:206
+#: contrib/admindocs/views.py:209
#, python-format
msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`"
-#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228
-#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247
+#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
+#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
+#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:"
msgstr "model:"
-#: contrib/admindocs/views.py:237
+#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format
msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`"
-#: contrib/admindocs/views.py:242
+#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format
msgid "all %s"
msgstr "wszystkie %s"
-#: contrib/admindocs/views.py:247
+#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format
msgid "number of %s"
msgstr "liczba %s"
-#: contrib/admindocs/views.py:252
+#: contrib/admindocs/views.py:271
#, python-format
msgid "Fields on %s objects"
msgstr "Pola obiektów %s"
-#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326
-#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334
-#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337
+#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
+#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
+#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer"
msgstr "Liczba całkowita"
-#: contrib/admindocs/views.py:316
+#: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)"
msgstr "Wartość logiczna (True, False - prawda lub fałsz)"
-#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336
+#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format
msgid "String (up to %(max_length)s)"
msgstr "Łańcuch (do %(max_length)s znaków)"
-#: contrib/admindocs/views.py:318
+#: contrib/admindocs/views.py:337
msgid "Comma-separated integers"
msgstr "Liczby całkowite rozdzielone przecinkami"
-#: contrib/admindocs/views.py:319
+#: contrib/admindocs/views.py:338
msgid "Date (without time)"
msgstr "Data (bez godziny)"
-#: contrib/admindocs/views.py:320
+#: contrib/admindocs/views.py:339
msgid "Date (with time)"
msgstr "Data (z godziną)"
-#: contrib/admindocs/views.py:321
+#: contrib/admindocs/views.py:340
msgid "Decimal number"
msgstr "Liczba dziesiętna"
-#: contrib/admindocs/views.py:322
+#: contrib/admindocs/views.py:341
msgid "E-mail address"
msgstr "Adres e-mail"
-#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324
-#: contrib/admindocs/views.py:327
+#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
+#: contrib/admindocs/views.py:346
msgid "File path"
msgstr "Ścieżka do pliku"
-#: contrib/admindocs/views.py:325
+#: contrib/admindocs/views.py:344
msgid "Floating point number"
msgstr "Liczba zmiennoprzecinkowa"
-#: contrib/admindocs/views.py:329 contrib/comments/models.py:60
+#: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address"
msgstr "Adres IP"
-#: contrib/admindocs/views.py:331
+#: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)"
msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)"
-#: contrib/admindocs/views.py:332
+#: contrib/admindocs/views.py:351
msgid "Relation to parent model"
msgstr "Relacja do modelu rodzica"
-#: contrib/admindocs/views.py:333
+#: contrib/admindocs/views.py:352
msgid "Phone number"
msgstr "Numer telefonu"
-#: contrib/admindocs/views.py:338
+#: contrib/admindocs/views.py:357
msgid "Text"
msgstr "Tekst"
-#: contrib/admindocs/views.py:339
+#: contrib/admindocs/views.py:358
msgid "Time"
msgstr "Czas"
-#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95
+#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL"
msgstr "URL"
-#: contrib/admindocs/views.py:341
+#: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)"
msgstr "Stan USA (dwie duże litery)"
-#: contrib/admindocs/views.py:342
+#: contrib/admindocs/views.py:361
msgid "XML text"
msgstr "Tekst XML"
-#: contrib/admindocs/views.py:368
+#: contrib/admindocs/views.py:387
#, python-format
msgid "%s does not appear to be a urlpattern object"
msgstr "%s nie jest obiektem urlpattern"
@@ -3920,14 +3922,14 @@ msgstr ""
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]."
-#: db/models/fields/related.py:792
+#: db/models/fields/related.py:816
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
"zaznaczyć więcej niż jeden wybór."
-#: db/models/fields/related.py:870
+#: db/models/fields/related.py:894
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
@@ -4051,7 +4053,7 @@ msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr ""
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
-#: forms/fields.py:704 forms/fields.py:765 forms/models.py:991
+#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values."
msgstr "Podaj listę wartości."
@@ -4080,43 +4082,43 @@ msgstr ""
msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(field_label)s już istnieje w %(model_name)s."
-#: forms/models.py:581
+#: forms/models.py:594
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "Popraw zduplikowane dane w %(field)s."
-#: forms/models.py:585
+#: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Popraw zduplikowane dane w %(field)s, które wymaga unikalności."
-#: forms/models.py:591
+#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
-"Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla "
-"%(lookup)s w polu %(date_field)s."
+"Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla %"
+"(lookup)s w polu %(date_field)s."
-#: forms/models.py:599
+#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Popraw poniższe zduplikowane wartości."
-#: forms/models.py:855
+#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica."
-#: forms/models.py:918
+#: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
-#: forms/models.py:992
+#: forms/models.py:1004
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
-#: forms/models.py:994
+#: forms/models.py:1006
#, python-format
msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" nie jest poprawną wartością klucza głównego."
diff --git a/django/views/debug.py b/django/views/debug.py
index 4e9dcb1d7c..6da89ffcf5 100644
--- a/django/views/debug.py
+++ b/django/views/debug.py
@@ -405,7 +405,7 @@ TECHNICAL_500_TEMPLATE = """
</tr>
<tr>
<th>Exception Value:</th>
- <td><pre>{{ exception_value|escape }}<pre></td>
+ <td><pre>{{ exception_value|escape }}</pre></td>
</tr>
<tr>
<th>Exception Location:</th>
@@ -630,7 +630,7 @@ Exception Value: {{ exception_value|escape }}
{% else %}
<p>No FILES data</p>
{% endif %}
-
+
<h3 id="cookie-info">COOKIES</h3>
{% if request.COOKIES %}
diff --git a/docs/index.txt b/docs/index.txt
index abf5580c60..abe6416da3 100644
--- a/docs/index.txt
+++ b/docs/index.txt
@@ -202,6 +202,7 @@ The Django open-source project
* **Django over time:**
:ref:`API stability <misc-api-stability>` |
- :ref:`Archive of release notes <releases-index>` | `Backwards-incompatible changes`_
+ :ref:`Archive of release notes <releases-index>` | `Backwards-incompatible changes`_ |
+ :ref:`Deprecation Timeline <internals-deprecation>`
.. _Backwards-incompatible changes: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
diff --git a/docs/internals/committers.txt b/docs/internals/committers.txt
index 002c7f5ab8..9f77e98c07 100644
--- a/docs/internals/committers.txt
+++ b/docs/internals/committers.txt
@@ -154,6 +154,19 @@ Gary Wilson
broken windows. He's continued to do that necessary tidying up work
throughout the code base since then.
+Justin Bronn
+ Justin Bronn is a computer scientist and attorney specializing
+ in legal topics related to intellectual property and spatial law.
+
+ In 2007, Justin began developing ``django.contrib.gis`` in a branch,
+ a.k.a. GeoDjango_, which was merged in time for Django 1.0. While
+ implementing GeoDjango, Justin obtained a deep knowledge of Django's
+ internals including the ORM, the admin, and Oracle support.
+
+ Justin lives in Houston, Texas.
+
+.. _GeoDjango: http://geodjango.org/
+
Karen Tracey
Karen has a background in distributed operating systems (graduate school),
communications software (industry) and crossword puzzle construction
@@ -187,16 +200,6 @@ Ian Kelly
Matt Boersma
Matt is also responsible for Django's Oracle support.
-Justin Bronn
- Justin Bronn is a computer scientist and third-year law student at the
- University of Houston who enjoys studying legal topics related to
- intellectual property and spatial law.
-
- Justin is the primary developer of ``django.contrib.gis``, a.k.a.
- GeoDjango_.
-
-.. _GeoDjango: http://geodjango.org/
-
Jeremy Dunck
Jeremy the lead developer of Pegasus News, a personalized local site based
in Dallas, Texas. An early contributor to Greasemonkey and Django, he sees
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
new file mode 100644
index 0000000000..7e7f4c6338
--- /dev/null
+++ b/docs/internals/deprecation.txt
@@ -0,0 +1,21 @@
+.. _internals-deprecation:
+
+===========================
+Django Deprecation Timeline
+===========================
+
+This document outlines when various pieces of Django will be removed, following
+their deprecation, as per the :ref:`Django deprecation policy
+<internal-release-deprecation-policy>`
+
+ * 1.3
+ * ``AdminSite.root()``. This release will remove the old method for
+ hooking up admin URLs. This has been deprecated since the 1.1
+ release.
+
+ * 2.0
+ * ``django.views.defaults.shortcut()``. This function has been moved
+ to ``django.contrib.contenttypes.views.shortcut()`` as part of the
+ goal of removing all ``django.contrib`` references from the core
+ Django codebase. The old shortcut will be removed in the 2.0
+ release.
diff --git a/docs/internals/index.txt b/docs/internals/index.txt
index 0d54948bf5..1cbbb87f06 100644
--- a/docs/internals/index.txt
+++ b/docs/internals/index.txt
@@ -17,8 +17,9 @@ the hood".
.. toctree::
:maxdepth: 1
-
+
contributing
documentation
committers
release-process
+ deprecation
diff --git a/docs/internals/release-process.txt b/docs/internals/release-process.txt
index 911b67e441..6d4ad9e8c9 100644
--- a/docs/internals/release-process.txt
+++ b/docs/internals/release-process.txt
@@ -48,14 +48,16 @@ Minor releases
--------------
Minor release (1.1, 1.2, etc.) will happen roughly every six months -- see
-`release process`_, below for details.
+`release process`_, below for details.
+
+.. _internal-release-deprecation-policy:
These releases will contain new features, improvements to existing features, and
such. A minor release may deprecate certain features from previous releases. If a
feature in version ``A.B`` is deprecated, it will continue to work in version
``A.B+1``. In version ``A.B+2``, use of the feature will raise a
``PendingDeprecationWarning`` but will continue to work. Version ``A.B+3`` will
-remove the feature entirely.
+remove the feature entirely.
So, for example, if we decided to remove a function that existed in Django 1.0:
@@ -66,9 +68,9 @@ So, for example, if we decided to remove a function that existed in Django 1.0:
* Django 1.2 will contain the backwards-compatible replica, but the warning
will be promoted to a full-fledged ``DeprecationWarning``. This warning is
*loud* by default, and will likely be quite annoying.
-
+
* Django 1.3 will remove the feature outright.
-
+
Micro releases
--------------
@@ -92,21 +94,21 @@ varying levels:
* The current development trunk will get new features and bug fixes
requiring major refactoring.
-
+
* All bug fixes applied to the trunk will also be applied to the last
minor release, to be released as the next micro release.
-
+
* Security fixes will be applied to the current trunk and the previous two
minor releases.
-
+
As a concrete example, consider a moment in time halfway between the release of
Django 1.3 and 1.4. At this point in time:
* Features will be added to development trunk, to be released as Django 1.4.
-
+
* Bug fixes will be applied to a ``1.3.X`` branch, and released as 1.3.1,
1.3.2, etc.
-
+
* Security releases will be applied to trunk, a ``1.3.X`` branch and a
``1.2.X`` branch. Security fixes will trigger the release of ``1.3.1``,
``1.2.1``, etc.
@@ -117,7 +119,7 @@ Release process
===============
Django uses a time-based release schedule, with minor (i.e. 1.1, 1.2, etc.)
-releases every six months, or more, depending on features.
+releases every six months, or more, depending on features.
After each previous release (and after a suitable cooling-off period of a week
or two), the core development team will examine the landscape and announce a
@@ -174,12 +176,12 @@ and an rc complete with string freeze two weeks before the end of the schedule.
Bug-fix releases
----------------
-After a minor release (i.e 1.1), the previous release will go into bug-fix mode.
+After a minor release (i.e 1.1), the previous release will go into bug-fix mode.
A branch will be created of the form ``branches/releases/1.0.X`` to track
bug-fixes to the previous release. When possible, bugs fixed on trunk must
*also* be fixed on the bug-fix branch; this means that commits need to cleanly
-separate bug fixes from feature additions. The developer who commits a fix to
+separate bug fixes from feature additions. The developer who commits a fix to
trunk will be responsible for also applying the fix to the current bug-fix
branch. Each bug-fix branch will have a maintainer who will work with the
committers to keep them honest on backporting bug fixes.
@@ -193,14 +195,13 @@ development will be happening in a bunch of places:
* On trunk, development towards 1.2 proceeds with small additions, bugs
fixes, etc. being checked in daily.
-
+
* On the branch "branches/releases/1.1.X", bug fixes found in the 1.1
release are checked in as needed. At some point, this branch will be
released as "1.1.1", "1.1.2", etc.
* On the branch "branches/releases/1.0.X", security fixes are made if
needed and released as "1.0.2", "1.0.3", etc.
-
+
* On feature branches, development of major features is done. These
branches will be merged into trunk before the end of phase two.
-
diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt
index b2e99dce7f..0b2257cefe 100644
--- a/docs/topics/http/urls.txt
+++ b/docs/topics/http/urls.txt
@@ -465,7 +465,7 @@ Defining URL Namespaces
When you need to deploy multiple instances of a single application, it can be
helpful to be able to differentiate between instances. This is especially
-important when using _`named URL patterns <naming-url-patterns>`, since
+important when using :ref:`named URL patterns <naming-url-patterns>`, since
multiple instances of a single application will share named URLs. Namespaces
provide a way to tell these named URLs apart.
@@ -642,7 +642,7 @@ view::
This is completely valid, but it leads to problems when you try to do reverse
URL matching (through the ``permalink()`` decorator or the :ttag:`url` template
-tag. Continuing this example, if you wanted to retrieve the URL for the
+tag). Continuing this example, if you wanted to retrieve the URL for the
``archive`` view, Django's reverse URL matcher would get confused, because *two*
URLpatterns point at that view.
@@ -706,12 +706,12 @@ the fully qualified name into parts, and then tries the following lookup:
example, ``myapp``). This will yield a list of instances of that
application.
- 2. If there is a ``current`` application defined, Django finds and returns
- the URL resolver for that instance. The ``current`` can be specified
- as an attribute on the template context - applications that expect to
- have multiple deployments should set the ``current_app`` attribute on
- any ``Context`` or ``RequestContext`` that is used to render a
- template.
+ 2. If there is a *current* application defined, Django finds and returns
+ the URL resolver for that instance. The *current* application can be
+ specified as an attribute on the template context - applications that
+ expect to have multiple deployments should set the ``current_app``
+ attribute on any ``Context`` or ``RequestContext`` that is used to
+ render a template.
The current application can also be specified manually as an argument
to the :func:`reverse()` function.
@@ -725,7 +725,7 @@ the fully qualified name into parts, and then tries the following lookup:
deployed instance of the application, whatever its instance name may be.
5. If the provided namespace doesn't match an application namespace in
- step 2, Django will attempt a direct lookup of the namespace as an
+ step 1, Django will attempt a direct lookup of the namespace as an
instance namespace.
If there are nested namespaces, these steps are repeated for each part of the