Initial import to Tizen
[profile/ivi/python-twisted.git] / twisted / web / topfiles / NEWS
1 Ticket numbers in this file can be looked up by visiting
2 http://twistedmatrix.com/trac/ticket/<number>
3
4 Twisted Web 12.1.0 (2012-06-02)
5 ===============================
6
7 Features
8 --------
9  - twisted.web.client.Agent and ProxyAgent now support persistent
10    connections. (#3420)
11  - Added twisted.web.template.renderElement, a function which renders
12    an Element to a response. (#5395)
13  - twisted.web.client.HTTPConnectionPool now ensures that failed
14    queries on persistent connections are retried, when possible.
15    (#5479)
16  - twisted.web.template.XMLFile now supports FilePath objects. (#5509)
17  - twisted.web.template.renderElement takes a doctype keyword
18    argument, which will be written as the first line of the response,
19    defaulting to the HTML5 doctype. (#5560)
20
21 Bugfixes
22 --------
23  - twisted.web.util.formatFailure now quotes all data in its output to
24    avoid it being mistakenly interpreted as markup. (#4896)
25  - twisted.web.distrib now lets distributed servers set the response
26    message. (#5525)
27
28 Deprecations and Removals
29 -------------------------
30  - PHP3Script and PHPScript were removed from twisted.web.twcgi,
31    deprecated since 10.1. Use twcgi.FilteredScript instead. (#5456)
32  - twisted.web.template.XMLFile's support for file objects and
33    filenames is now deprecated.  Use the new support for FilePath
34    objects. (#5509)
35  - twisted.web.server.date_time_string and
36    twisted.web.server.string_date_time are now deprecated in favor of
37    twisted.web.http.datetimeToString and twisted.web.
38    http.stringToDatetime (#5535)
39
40 Other
41 -----
42  - #4966, #5460, #5490, #5591, #5602, #5609, #5612
43
44
45 Twisted Web 12.0.0 (2012-02-10)
46 ===============================
47
48 Features
49 --------
50  - twisted.web.util.redirectTo now raises TypeError if the URL passed
51    to it is a unicode string instead of a byte string. (#5236)
52  - The new class twisted.web.template.CharRef provides support for
53    inserting numeric character references in output generated by
54    twisted.web.template. (#5408)
55
56 Improved Documentation
57 ----------------------
58  - The Twisted Web howto now has a section on proxies and reverse
59    proxies. (#399)
60  - The web client howto now covers ContentDecoderAgent and links to an
61    example of its use. (#5415)
62
63 Other
64 -----
65  - #5404, #5438
66
67
68 Twisted Web 11.1.0 (2011-11-15)
69 ===============================
70
71 Features
72 --------
73  - twisted.web.client.ProxyAgent is a new HTTP/1.1 web client which
74    adds proxy support. (#1774)
75  - twisted.web.client.Agent now takes optional connectTimeout and
76    bindAddress arguments which are forwarded to the subsequent
77    connectTCP/connectSSL call. (#3450)
78  - The new class twisted.web.client.FileBodyProducer makes it easy to
79    upload data in HTTP requests made using the Agent client APIs.
80    (#4017)
81  - twisted.web.xmlrpc.XMLRPC now allows its lookupProcedure method to
82    be overridden to change how XML-RPC procedures are dispatched.
83    (#4836)
84  - A new HTTP cookie-aware Twisted Web Agent wrapper is included in
85    twisted.web.client.CookieAgent (#4922)
86  - New class twisted.web.template.TagLoader provides an
87    ITemplateLoader implementation which loads already-created
88    twisted.web.iweb.IRenderable providers. (#5040)
89  - The new class twisted.web.client.RedirectAgent adds redirect
90    support to the HTTP 1.1 client stack. (#5157)
91  - twisted.web.template now supports HTML tags from the HTML5
92    standard, including <canvas> and <video>. (#5306)
93
94 Bugfixes
95 --------
96  - twisted.web.client.getPage and .downloadPage now only fire their
97    result Deferred after the underlying connection they use has been
98    closed. (#3796)
99  - twisted.web.server now omits the default Content-Type header from
100    NOT MODIFIED responses. (#4156)
101  - twisted.web.server now responds correctly to 'Expect: 100-continue'
102    headers, although this is not yet usefully exposed to user code.
103    (#4673)
104  - twisted.web.client.Agent no longer raises an exception if a server
105    responds and closes the connection before the request has been
106    fully transmitted. (#5013)
107  - twisted.web.http_headers.Headers now correctly capitalizes the
108    header names Content-MD5, DNT, ETag, P3P, TE, and X-XSS-Protection.
109    (#5054)
110  - twisted.web.template now escapes more inputs to comments which
111    require escaping in the output. (#5275)
112
113 Improved Documentation
114 ----------------------
115  - The twisted.web.template howto now documents the common idiom of
116    yielding tag clones from a renderer. (#5286)
117  - CookieAgent is now documented in the twisted.web.client how-to.
118    (#5110)
119
120 Deprecations and Removals
121 -------------------------
122  - twisted.web.google is now deprecated. (#5209)
123
124 Other
125 -----
126  - #4951, #5057, #5175, #5288, #5316
127
128
129 Twisted Web 11.0.0 (2011-04-01)
130 ===============================
131
132 Features
133 --------
134  - twisted.web._newclient.HTTPParser (and therefore Agent) now handles
135    HTTP headers delimited by bare LF newlines. (#3833)
136  - twisted.web.client.downloadPage now accepts the `afterFoundGet`
137    parameter, with the same meaning as the `getPage` parameter of the
138    same name. (#4364)
139  - twisted.web.xmlrpc.Proxy constructor now takes additional 'timeout'
140    and 'reactor' arguments. The 'timeout' argument defaults to 30
141    seconds. (#4741)
142  - Twisted Web now has a templating system, twisted.web.template,
143    which is a direct, simplified derivative of Divmod Nevow. (#4939)
144
145 Bugfixes
146 --------
147  - HTTPPageGetter now adds the port to the host header if it is not
148    the default for that scheme. (#3857)
149  - twisted.web.http.Request.write now raises an exception if it is
150    called after response generation has already finished. (#4317)
151  - twisted.web.client.HTTPPageGetter and twisted.web.client.getPage
152    now no longer make two requests when using afterFoundGet. (#4760)
153  - twisted.web.twcgi no longer adds an extra "content-type" header to
154    CGI responses. (#4786)
155  - twisted.web will now properly specify an encoding (UTF-8) on error,
156    redirect, and directory listing pages, so that IE7 and previous
157    will not improperly guess the 'utf7' encoding in these cases.
158    Please note that Twisted still sets a *default* content-type of
159    'text/html', and you shouldn't rely on that: you should set the
160    encoding appropriately in your application. (#4900)
161  - twisted.web.http.Request.setHost now sets the port in the host
162    header if it is not the default. (#4918)
163  - default NOT_IMPLEMENTED and NOT_ALLOWED pages now quote the request
164    method and URI respectively, to protect against browsers which
165    don't quote those values for us. (#4978)
166
167 Improved Documentation
168 ----------------------
169  - The XML-RPC howto now includes an example demonstrating how to
170    access the HTTP request object in a server-side XML-RPC method.
171    (#4732)
172  - The Twisted Web client howto now uses the correct, public name for
173    twisted.web.client.Response. (#4769)
174  - Some broken links were fixed, descriptions were updated, and new
175    API links were added in the Resource Templating documentation
176    (resource-templates.xhtml) (#4968)
177
178 Other
179 -----
180  - #2271, #2386, #4162, #4733, #4855, #4911, #4973
181
182
183 Twisted Web 10.2.0 (2010-11-29)
184 ===============================
185
186 Features
187 --------
188  - twisted.web.xmlrpc.XMLRPC.xmlrpc_* methods can now be decorated
189    using withRequest to cause them to be passed the HTTP request
190    object. (#3073)
191
192 Bugfixes
193 --------
194  - twisted.web.xmlrpc.QueryProtocol.handleResponse now disconnects
195    from the server, meaning that Twisted XML-RPC clients disconnect
196    from the server as soon as they receive a response, rather than
197    relying on the server to disconnect. (#2518)
198  - twisted.web.twcgi now generates responses containing all
199    occurrences of duplicate headers produced by CGI scripts, not just
200    the last value. (#4742)
201
202 Deprecations and Removals
203 -------------------------
204  - twisted.web.trp, which has been deprecated since Twisted 9.0, was
205    removed. (#4299)
206
207 Other
208 -----
209  - #4576, #4577, #4709, #4723
210
211
212 Twisted Web 10.1.0 (2010-06-27)
213 ===============================
214
215 Features
216 --------
217  - twisted.web.xmlrpc.XMLRPC and twisted.web.xmlrpc.Proxy now expose
218    xmlrpclib's support of datetime.datetime objects if useDateTime is
219    set to True. (#3219)
220  - HTTP11ClientProtocol now has an abort() method for cancelling an
221    outstanding request by closing the connection before receiving the
222    entire response. (#3811)
223  - twisted.web.http_headers.Headers initializer now rejects
224    incorrectly structured dictionaries. (#4022)
225  - twisted.web.client.Agent now supports HTTPS URLs. (#4023)
226  - twisted.web.xmlrpc.Proxy.callRemote now returns a Deferred which
227    can be cancelled to abort the attempted XML-RPC call. (#4377)
228
229 Bugfixes
230 --------
231  - twisted.web.guard now logs out avatars even if a request completes
232    with an error. (#4411)
233  - twisted.web.xmlrpc.XMLRPC will now no longer trigger a RuntimeError
234    by trying to write responses to closed connections. (#4423)
235
236 Improved Documentation
237 ----------------------
238  - Fix broken links to deliverBody and iweb.UNKNOWN_LENGTH in
239    doc/web/howto/client.xhtml. (#4507)
240
241 Deprecations and Removals
242 -------------------------
243  - twisted.web.twcgi.PHP3Script and twisted.web.twcgi.PHPScript are
244    now deprecated. (#516)
245
246 Other
247 -----
248  - #4403, #4452
249
250
251 Twisted Web 10.0.0 (2010-03-01)
252 ===============================
253
254 Features
255 --------
256  - Twisted Web in 60 Seconds, a series of short tutorials with self-
257    contained examples on a range of common web topics, is now a part
258    of the Twisted Web howto documentation. (#4192)
259
260 Bugfixes
261 --------
262  - Data and File from twisted.web.static and
263    twisted.web.distrib.UserDirectory will now only generate a 200
264    response for GET or HEAD requests.
265    twisted.web.client.HTTPPageGetter will no longer ignore the case of
266    a request method when considering whether to apply special HEAD
267    processing to a response. (#446)
268
269  - twisted.web.http.HTTPClient now supports multi-line headers.
270    (#2062)
271
272  - Resources served via twisted.web.distrib will no longer encounter a
273    Banana error when writing more than 640kB at once to the request
274    object. (#3212)
275
276  - The Error, PageRedirect, and InfiniteRedirection exception in
277    twisted.web now initialize an empty message parameter by mapping
278    the HTTP status code parameter to a descriptive string. Previously
279    the lookup would always fail, leaving message empty.  (#3806)
280
281  - The 'wsgi.input' WSGI environment object now supports -1 and None
282    as arguments to the read and readlines methods. (#4114)
283
284  - twisted.web.wsgi doesn't unquote QUERY_STRING anymore, thus
285    complying with the WSGI reference implementation. (#4143)
286
287  - The HTTP proxy will no longer pass on keep-alive request headers
288    from the client, preventing pages from loading then "hanging"
289    (leaving the connection open with no hope of termination). (#4179)
290
291 Deprecations and Removals
292 -------------------------
293  - Remove '--static' option from twistd web, that served as an alias
294    for the '--path' option. (#3907)
295
296 Other
297 -----
298  - #3784, #4216, #4242
299
300
301 Twisted Web 9.0.0 (2009-11-24)
302 ==============================
303
304 Features
305 --------
306  - There is now an iweb.IRequest interface which specifies the interface that
307    request objects provide (#3416)
308  - downloadPage now supports the same cookie, redirect, and timeout features
309    that getPage supports (#2971)
310  - A chapter about WSGI has been added to the twisted.web documentation (#3510)
311  - The HTTP auth support in the web server now allows anonymous sessions by
312    logging in with ANONYMOUS credentials when no Authorization header is
313    provided in a request (#3924, #3936)
314  - HTTPClientFactory now accepts a parameter to enable a common deviation from
315    the HTTP 1.1 standard by responding to redirects in a POSTed request with a
316    GET instead of another POST (#3624)
317  - A new basic HTTP/1.1 client API is included in twisted.web.client.Agent
318    (#886, #3987)
319
320 Fixes
321 -----
322  - Requests for "insecure" children of a static.File (such as paths containing
323    encoded directory separators) will now result in a 404 instead of a 500
324    (#3549, #3469)
325  - When specifying a followRedirect argument to the getPage function, the state
326    of redirect-following for other getPage calls should now be unaffected.  It
327    was previously overwriting a class attribute which would affect outstanding
328    getPage calls (#3192)
329  - Downloading an URL of the form "http://example.com:/" will now work,
330    ignoring the extraneous colon (#2402)
331  - microdom's appendChild method will no longer issue a spurious warning, and
332    microdom's methods in general should now issue more meaningful exceptions
333    when invalid parameters are passed (#3421)
334  - WSGI applications will no longer have spurious Content-Type headers added to
335    their responses by the twisted.web server. In addition, WSGI applications
336    will no longer be able to specify the server-restricted headers Server and
337    Date (#3569)
338  - http_headers.Headers now normalizes the case of raw headers passed directly
339    to it in the same way that it normalizes the headers passed to setRawHeaders
340    (#3557)
341  - The distrib module no longer relies on the deprecated woven package (#3559)
342  - twisted.web.domhelpers now works with both microdom and minidom (#3600)
343  - twisted.web servers will now ignore invalid If-Modified-Since headers instead
344    of returning a 500 error (#3601)
345  - Certain request-bound memory and file resources are cleaned up slightly
346    sooner by the request when the connection is lost (#1621, #3176)
347  - xmlrpclib.DateTime objects should now correctly round-trip over twisted.web's
348    XMLRPC support in all supported versions of Python, and errors during error
349    serialization will no longer hang a twisted.web XMLRPC response (#2446)
350  - request.content should now always be seeked to the beginning when
351    request.process is called, so application code should never need to seek 
352    back manually (#3585)
353  - Fetching a child of static.File with a double-slash in the URL (such as
354    "example//foo.html") should now return a 404 instead of a traceback and
355    500 error (#3631)
356  - downloadPage will now fire a Failure on its returned Deferred instead of
357    indicating success when the connection is prematurely lost (#3645)
358  - static.File will now provide a 404 instead of a 500 error when it was
359    constructed with a non-existent file (#3634)
360  - microdom should now serialize namespaces correctly (#3672)
361  - The HTTP Auth support resource wrapper should no longer corrupt requests and
362    cause them to skip a segment in the request path (#3679)
363  - The twisted.web WSGI support should now include leading slashes in PATH_INFO,
364    and SCRIPT_NAME will be empty if the application is at the root of the
365    resource tree. This means that WSGI applications should no longer generate
366    URLs with double-slashes in them even if they naively concatenate the values
367    (#3721)
368  - WSGI applications should now receive the requesting client's IP in the
369    REMOTE_ADDR environment variable (#3730)
370  - The distrib module should work again. It was unfortunately broken with the
371    refactoring of twisted.web's header support (#3697)
372  - static.File now supports multiple ranges specified in the Range header
373    (#3574)
374  - static.File should now generate a correct Content-Length value when the
375    requested Range value doesn't fit entirely within the file's contents (#3814)
376  - Attempting to call request.finish() after the connection has been lost will
377    now immediately raise a RuntimeError (#4013)
378  - An HTTP-auth resource should now be able to directly render the wrapped
379    avatar, whereas before it would only allow retrieval of child resources
380    (#4014)
381  - twisted.web's wsgi support should no longer attempt to call request.finish
382    twice, which would cause errors in certain cases (#4025)
383  - WSGI applications should now be able to handle requests with large bodies
384    (#4029)
385  - Exceptions raised from WSGI applications should now more reliably be turned
386    into 500 errors on the HTTP level (#4019)
387  - DeferredResource now correctly passes through exceptions raised from the
388    wrapped resource, instead of turning them all into 500 errors (#3932)
389  - Agent.request now generates a Host header when no headers are passed at
390    (#4131)
391
392 Deprecations and Removals
393 -------------------------
394  - The unmaintained and untested twisted.web.monitor module was removed (#2763)
395  - The twisted.web.woven package has been removed (#1522)
396  - All of the error resources in twisted.web.error are now in
397    twisted.web.resource, and accessing them through twisted.web.error is now
398    deprecated (#3035)
399  - To facilitate a simplification of the timeout logic in server.Session,
400    various things have been deprecated (#3457)
401    - the loopFactory attribute is now ignored
402    - the checkExpired method now does nothing
403    - the lifetime parameter to startCheckingExpiration is now ignored
404  - The twisted.web.trp module is now deprecated (#2030)
405
406 Other
407 -----
408  - #2763, #3540, #3575, #3610, #3605, #1176, #3539, #3750, #3761, #3779, #2677,
409    #3782, #3904, #3919, #3418, #3990, #1404, #4050
410
411
412 Web 8.2.0 (2008-12-16)
413 ======================
414
415 Features
416 --------
417  - The web server can now deal with multi-value headers in the new attributes of
418    Request, requestHeaders and responseHeaders (#165)
419  - There is now a resource-wrapper which implements HTTP Basic and Digest auth
420    in terms of twisted.cred (#696)
421  - It's now possible to limit the number of redirects that client.getPage will
422    follow (#2412)
423  - The directory-listing code no longer uses Woven (#3257)
424  - static.File now supports Range headers with a single range (#1493)
425  - twisted.web now has a rudimentary WSGI container (#2753)
426  - The web server now supports chunked encoding in requests (#3385)
427
428 Fixes
429 -----
430  - The xmlrpc client now raises an error when the server sends an empty
431    response (#3399)
432  - HTTPPageGetter no longer duplicates default headers when they're explicitly
433    overridden in the headers parameter (#1382)
434  - The server will no longer timeout clients which are still sending request
435    data (#1903)
436  - microdom's isEqualToNode now returns False when the nodes aren't equal
437    (#2542)
438
439 Deprecations and Removals
440 -------------------------
441
442  - Request.headers and Request.received_headers are not quite deprecated, but
443    they are discouraged in favor of requestHeaders and responseHeaders (#165)
444
445 Other
446 -----
447  - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471
448
449
450 8.1.0 (2008-05-18)
451 ==================
452
453 Fixes
454 -----
455
456  - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would
457    accidentally be fired twice when a connection was lost during the handling of
458    a response (#3152)
459  - Fixed a bug in the "Using Twisted Web" document which prevented an example
460    resource from being renderable (#3147)
461  - The deprecated mktap API is no longer used (#3127)
462
463
464 8.0.0 (2008-03-17)
465 ==================
466
467 Features
468 --------
469  - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750)
470
471 Fixes
472 -----
473  - Set content-type in xmlrpc responses to "text/xml" (#2430)
474  - Add more error checking in the xmlrpc.XMLRPC render method, and enforce
475    POST requests. (#2505)
476  - Reject unicode input to twisted.web.client._parse to reject invalid
477    unicode URLs early. (#2628)
478  - Correctly re-quote URL path segments when generating an URL string to
479    return from Request.prePathURL. (#2934)
480  - Make twisted.web.proxy.ProxyClientFactory close the connection when
481    reporting a 501 error. (#1089)
482  - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the
483    host header if different from 80. (#1117)
484  - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes
485    the request URI it sends on to the server for which it is a proxy. (#3013)
486  - Make "twistd web --personal" use PBServerFactory (#2681)
487
488 Misc
489 ----
490  - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905
491
492
493 0.7.0 (2007-01-02)
494 ==================
495
496 Features
497 --------
498  - Python 2.5 is now supported (#1867)
499  - twisted.web.xmlrpc now supports the <nil/> xml-rpc extension type
500    in both the server and the client (#469)
501
502 Fixes
503 -----
504  - Microdom and SUX now manages certain malformed XML more resiliently
505    (#1984, #2225, #2298)
506  - twisted.web.client.getPage can now deal with an URL of the form
507    "http://example.com" (no trailing slash) (#1080)
508  - The HTTP server now allows (invalid) URLs with multiple question
509    marks (#1550)
510  - '=' can now be in the value of a cookie (#1051)
511  - Microdom now correctly handles xmlns="" (#2184)
512
513 Deprecations and Removals
514 -------------------------
515  - websetroot was removed, because it wasn't working anyway (#945)
516  - woven.guard no longer supports the old twisted.cred API (#1440)
517
518 Other
519 -----
520 The following changes are minor or closely related to other changes.
521
522  - #1636, #1637, #1638, #1936, #1883, #447
523
524
525 0.6.0 (2006-05-21)
526 ==================
527
528 Features
529 --------
530  - Basic auth support for the XMLRPC client (#1474).
531
532 Fixes
533 -----
534  - More correct datetime parsing.
535  - Efficiency improvements (#974)
536  - Handle popular non-RFC compliant formats for If-Modified-Since
537    headers (#976).
538  - Improve support for certain buggy CGI scripts.
539  - CONTENT_LENGTH is now available to CGI scripts.
540  - Support for even worse HTML in microdom (#1358).
541  - Trying to view a user's home page when the user doesn't have a
542    ~/public_html no longer displays a traceback (#551).
543  - Misc: #543, #1011, #1005, #1287, #1337, #1383, #1079, #1492, #1189,
544    #737, #872.
545
546
547 0.5.0
548 =====
549  - Client properly reports timeouts as error
550  - "Socially deprecate" woven
551  - Fix memory leak in _c_urlarg library
552  - Stop using _c_urlarg library
553  - Fix 'gzip' and 'bzip2' content-encodings
554  - Escape log entries so remote user cannot corrupt the log
555  - Commented out range support because it's broken
556  - Fix HEAD responses without content-length