John: > This project proposes to integrate into a Minor release of Solaris > version 8.1 of the Twisted Python project. Twisted version 5.2 > was already approved in PSARC 2008/121.
You mean to say Twisted version 2.5 instead of 5.2. The previous release was 2.5. Brian > 1. Introduction > > 1.1. Project/Component Working Name: > > Twisted update to 8.1 and adding Twisted-Web2 > > 1.2. Name of Document Author/Supplier: > > Brian Cameron > > 1.3. Date of This Document: > > 10/28/2008 > > 1.4. Name of Major Document Customer(s)/Consumer(s): > 1.4.1. The PAC or CPT you expect to review your project: > > Solaris PAC > > 1.4.2. The ARC(s) you expect to review your project: > > LSARC > > 1.4.3. The Director/VP who is "Sponsoring" this project: > > Robert O'Dea > > 1.4.4. The name of your business unit: > > Software - OPG > > 1.5. Email Aliases: > 1.5.1. Responsible Manager: leo.binchy at sun.com > 1.5.2. Responsible Engineer: brian.cameron at sun.com, > 1.5.3 Marketing Manager: dan.robert at sun.com > 1.5.4. Interest List: desktop-discuss at opensolaris.org > > 2. Project Summary > 2.1. Project Description: > > This project updates Twisted from 2.5 to 8.1 and adds the Twisted.Web2 > module. > > 4. Technical Description: > 4.1. Details: > > Twisted is a popular, open-source networking engine written in Python > and supporting numerous protocols. It contains a web server, chat > clients, chat servers, mail servers, and more. > > Twisted is made up of a number of related sub-projects. This proposal > integrates version 8.1 which includes the following 9 main modules: > > Twisted Conch SSH and SFTP protocol implementation. > Twisted Core Asynchronous event loop. > Twisted Lore Documentation generator with HTML and LaTeX support. > Twisted Mail SMTP, IMAP and POP protocol implementation. > Twisted Names DNS protocol implementation with client and server. > Twisted News NNTP protocol implementation with client and server. > Twisted Runner Process management, including an inetd server. > Twisted Web HTTP protocol implementation with clients and servers. > Twisted Words Chat and Instant Messaging. > > The Web2 module is a 10th module which is distributed separately. > > 4.1.1. Updating Python Twisted from 2.5 to 8.1 > > While this may seem like a fairly significant version bump, it is > not. The Twisted community changed their version numbering system > so > that the first digit of the version is the last digit of the year. > Release 2.5 was followed by release 8.0 and then 8.1. So, the > Twisted community is not following normal major.minor.micro version > numbering system used by most software. Python Twisted 2.5 was > previously reviewed as PSARC 2008/121. > > Twisted version 8.1 contains many bug fixes. The following > highlights the more significant interface-related features and > deprecations. All features were relate to Twisted release 8.0 > unless > otherwise specified: > > - Twisted now uses setuptools and easy_install for better > installation. > - twisted.internet.defer contains a DeferredFilesystemLock which > gives a Deferred interface to lock file acquisition. > - twisted.python.modules is a new system for representing and > manipulated module paths (i.e. sys.path). > - twisted.internet.fdesc now contains a writeToFD function. > - The reactor now has a blockingCallFromThread method for > non-reactor > threads to use to wait for a reactor-scheduled call to return a > result. > - twisted.internet.task.deferLater is a new API for scheduling calls > and getting deferreds which are fired with their results. > - twisted.python.log now contains a Twisted log observer which can > forward messages to the Python logging system. > - Log files now include seconds in the timestamps. > - Int8Receiver was added. > - The FTP client can be told what port range to bind passive > transfer > ports. > - twisted.spread.jelly now supports decimal objects and all forms of > sets. > - Twisted Conch adds DEC private mode manipulation methods to > ITerminalTransport. > - Twisted Web twisted.web.client.getPage has support for the HTTP > HEAD > method. > - Twisted Words provides a function for creating XMPP response > stanzas. > - Twisted Words adds 'and' and 'or' operators for Xish Xpath > expressions. > - Twisted Mail supports CAPABILITY responses that include atoms of > the form "FOO" and "FOO=BAR" in IMAP4 > - In 8.1, twisted.internet.error.ConnectionClosed is a new exception > which is the superclass of ConnectionLost and ConnectionDone. > - In 8.1, extending XMPP protocols is easier. > > Deprecations: > > - twisted.python.timeoutqueue. > - twisted.entrprise.row, twisted.enterprise.reflector, and > twisted.enterprise.util. > - The dispatch and dispatchWithCallback methods of ThreadPool. > - Starting the same reactor multiple times. > - The visit method of various test classes in trial. > - The --report-profile option to twistd and > twisted.python.dxprofile. > - The upDownError method of Trail reporters. > - In 8.1, mktap is now deprecated. > > 4.1.2. Twisted.Web2 > > This case also adds the Twisted.Web2 module. This is an > asynchronous > HTTP 1.1 Web Server Framework built with Twisted. It provides a RFC > 2616 compliant HTTP 1.1 protocol implementation, with pipelined and > persistent request support, in a non-blocking threadless manner. > > It also includes a simple web framework with request and response > objects, static file support, error handling, form upload support, > HTTP range support, pre-built parsers for all standard headers, and > so on. > > It is deployable as a standalone HTTP or HTTPS server, as a HTTP[S] > server proxied behind another server, or as a SCGI, FastCGI, or CGI > script. > > In addition to running native twisted.web2 applications, it can also > run any WSGI or CGI application, or, via compatibility wrappers, > most > applications written for the older twisted.web API. > > Currently, twisted.web2 does not include a HTTP client or proxy. > > Twisted.web2 is not a templating framework. It provides mechanisms > for locating and running code associated with a URL, but does not > provide any means for separating code and data or to ease the task > of > generating HTML. > > According to its documentation, its interfaces should not be > considered stable. Note that Python-Twisted contains a module named > Web, which is a separate project and there is no compatibility > between them. The Twisted.Web2 module has the following > improvements > over Twisted.Web: > > * Streaming upload data > * Support for multiple headers of the same name > * Separation of low level HTTP and high level request handling which > allows it to run under other transports such as SCGI and CGI > * IResource API improvements from Nevow > * More versatile outgoing data streaming API > * Correct header parsing > * Full HTTP/1.1 support > * Output filters (HTTP range support in a generic fashion, and gzip > support) > * Significantly better URI Rewriting when used behind a reverse > proxy > such as Apache's mod_pxy > > 4.2. Interfaces: > > Exported interfaces: > > Interface Stability Comment > -------------------------------------- -------------- > --------------------- > twisted.flow Uncommitted Python Twisted > module > twisted.pair Uncommitted Python Twisted > module > twisted.web2 Uncommitted Python Twisted Web2 > module > Imported Interfaces > Interface Stability Comments > -------------------------------------- -------------- > --------------------- > Python 2.4.x External PSARC 2005/532 > Python Setuptools Uncommitted PSARC 2008/084 > zope-interface Uncommitted PSARC 2008/122 > > 4.3. Doc Impact: > > Man page is needed. > > 4.4. Packaging & Delivery: > > SUNWpython-twisted - package for Python-Twisted > SUNWpython-twisted-web2 - package for Python-Twisted-Web2 > > 4.5. Dependencies: > > None. > > 4.6. L10N Impact: > > The Desktop team and the G11N are working together to evaluate and > provide I18N/L10N support. > > 4.7 Security Impact: > > None. > > 5. Reference Documents: > > PSARC 2008/121 Python Twisted. > > Python Twisted Home Page > http://twistedmatrix.com/trac/ > > Twisted Documentation > http://twistedmatrix.com/projects/core/documentation/howto/index.html > http://twistedmatrix.com/trac/wiki/Documentation >