|
1 =============================== |
|
2 Django 1.2 beta 1 release notes |
|
3 =============================== |
|
4 |
|
5 February 5, 2010 |
|
6 |
|
7 Welcome to Django 1.2 beta 1! |
|
8 |
|
9 This is the second in a series of preview/development releases leading |
|
10 up to the eventual release of Django 1.2, currently scheduled to take |
|
11 place in March 2010. This release is primarily targeted at developers |
|
12 who are interested in trying out new features and testing the Django |
|
13 codebase to help identify and resolve bugs prior to the final 1.2 |
|
14 release. |
|
15 |
|
16 As such, this release is *not* intended for production use, and any |
|
17 such use is discouraged. |
|
18 |
|
19 This document covers changes since the Django 1.2 alpha release; the |
|
20 :doc:`1.2 alpha release notes </releases/1.2-alpha-1>` cover new and |
|
21 updated features in Django between 1.1 and 1.2 alpha. |
|
22 |
|
23 |
|
24 Deprecations and other changes in 1.2 beta |
|
25 ========================================== |
|
26 |
|
27 This beta release deprecates two portions of public API, and |
|
28 introduces a potentially backwards-incompatible change to |
|
29 another. Under :doc:`our API stability policy </misc/api-stability>`, |
|
30 deprecation proceeds over multiple release cycles: initially, the |
|
31 deprecated API will raise ``PendingDeprecationWarning``, followed by |
|
32 raising ``DeprecationWarning`` in the next release, and finally |
|
33 removal of the deprecated API in the release after that. APIs |
|
34 beginning the deprecation process in Django 1.2 will be removed in the |
|
35 Django 1.4 release. |
|
36 |
|
37 |
|
38 Unit test runners |
|
39 ----------------- |
|
40 |
|
41 Django 1.2 changes the test runner tools to use a class-based |
|
42 approach. Old style function-based test runners will still work, but |
|
43 should be updated to use the new :ref:`class-based runners |
|
44 <topics-testing-test_runner>`. |
|
45 |
|
46 |
|
47 Syndication feeds |
|
48 ----------------- |
|
49 |
|
50 The :class:`django.contrib.syndication.feeds.Feed` class is being |
|
51 replaced by the :class:`django.contrib.syndication.views.Feed` class. |
|
52 The old ``feeds.Feed`` class is deprecated. The new class has an |
|
53 almost identical API, but allows instances to be used as views. |
|
54 |
|
55 Also, in accordance with `RSS best practices`_, RSS feeds will now |
|
56 include an ``atom:link`` element. You may need to update your tests to |
|
57 take this into account. |
|
58 |
|
59 For more information, see the full :doc:`syndication framework |
|
60 documentation </ref/contrib/syndication>`. |
|
61 |
|
62 .. _RSS best practices: http://www.rssboard.org/rss-profile |
|
63 |
|
64 |
|
65 Cookie encoding |
|
66 --------------- |
|
67 |
|
68 Due to cookie-handling bugs in Internet Explorer, Safari, and possibly |
|
69 other browsers, Django's encoding of cookie values was changed so that |
|
70 the characters comma (',') and semi-colon (';') are treated as |
|
71 non-safe characters, and are therefore encoded as ``\054`` and |
|
72 ``\073`` respectively. This could produce backwards incompatibilities |
|
73 if you are relying on the ability to set these characters directly in |
|
74 cookie values. |
|
75 |
|
76 |
|
77 What's new in 1.2 beta |
|
78 ====================== |
|
79 |
|
80 This 1.2 beta release marks the final feature freeze for Django 1.2; |
|
81 while most feature development was completed for 1.2 alpha (which |
|
82 constituted a freeze on major features), a few other new features were |
|
83 added afterward and so are new as of 1.2 beta. |
|
84 |
|
85 |
|
86 Object-level permissions |
|
87 ------------------------ |
|
88 |
|
89 A foundation for specifying permissions at the per-object level was |
|
90 added in Django 1.2 alpha but not documented with the alpha release. |
|
91 |
|
92 The default authentication backends shipped with Django do not |
|
93 currently make use of this, but third-party authentication backends |
|
94 are free to do so. See the :doc:`authentication docs </topics/auth>` |
|
95 for more information. |
|
96 |
|
97 |
|
98 Permissions for anonymous users |
|
99 ------------------------------- |
|
100 |
|
101 If you provide a custom authentication backend with the attribute |
|
102 ``supports_anonymous_user`` set to ``True``, the ``AnonymousUser`` |
|
103 class will check the backend for permissions, just as the normal |
|
104 ``User`` does. This is intended to help centralize permission |
|
105 handling; apps can always delegate the question of whether something |
|
106 is allowed or not to the authorization/authentication system. See the |
|
107 :doc:`authentication docs </topics/auth>` for more details. |
|
108 |
|
109 |
|
110 ``select_related()`` improvements |
|
111 --------------------------------- |
|
112 |
|
113 The ``select_related()`` method of ``QuerySet`` now accepts the |
|
114 ``related_name`` of a reverse one-to-one relation in the list of |
|
115 fields to select. One-to-one relations will not, however, be traversed |
|
116 by a depth-based ``select_related()`` call. |
|
117 |
|
118 |
|
119 The Django 1.2 roadmap |
|
120 ====================== |
|
121 |
|
122 Before the final Django 1.2 release, at least one additional |
|
123 preview/development releases will be made available. The current |
|
124 schedule consists of at least the following: |
|
125 |
|
126 * Week of **March 2, 2010**: First Django 1.2 release |
|
127 candidate. String freeze for translations. |
|
128 |
|
129 * Week of **March 9, 2010**: Django 1.2 final release. |
|
130 |
|
131 If necessary, additional beta or release-candidate packages will be |
|
132 issued prior to the final 1.2 release. Django 1.2 will be released |
|
133 approximately one week after the final release candidate. |
|
134 |
|
135 |
|
136 What you can do to help |
|
137 ======================= |
|
138 |
|
139 In order to provide a high-quality 1.2 release, we need your |
|
140 help. Although this beta release is, again, *not* intended for |
|
141 production use, you can help the Django team by trying out the beta |
|
142 codebase in a safe test environment and reporting any bugs or issues |
|
143 you encounter. The Django ticket tracker is the central place to |
|
144 search for open issues: |
|
145 |
|
146 * http://code.djangoproject.com/timeline |
|
147 |
|
148 Please open new tickets if no existing ticket corresponds to a problem |
|
149 you're running into. |
|
150 |
|
151 Additionally, discussion of Django development, including progress |
|
152 toward the 1.2 release, takes place daily on the django-developers |
|
153 mailing list: |
|
154 |
|
155 * http://groups.google.com/group/django-developers |
|
156 |
|
157 ... and in the ``#django-dev`` IRC channel on ``irc.freenode.net``. If you're |
|
158 interested in helping out with Django's development, feel free to join the |
|
159 discussions there. |
|
160 |
|
161 Django's online documentation also includes pointers on how to |
|
162 contribute to Django: |
|
163 |
|
164 * :doc:`How to contribute to Django </internals/contributing>` |
|
165 |
|
166 Contributions on any level -- developing code, writing documentation |
|
167 or simply triaging tickets and helping to test proposed bugfixes -- |
|
168 are always welcome and appreciated. |
|
169 |
|
170 Development sprints for Django 1.2 will also be taking place at PyCon |
|
171 US 2010, on the dedicated sprint days (February 22 through 25), and |
|
172 anyone who wants to help out is welcome to join in, either in person |
|
173 at PyCon or virtually in the IRC channel or on the mailing list. |