paulb@68 | 1 | Introduction
|
paulb@68 | 2 | ------------
|
paulb@68 | 3 |
|
paulb@60 | 4 | WebStack is a package which provides a common API for Python Web applications,
|
paulb@60 | 5 | regardless of the underlying server or framework environment. It should be
|
paulb@60 | 6 | possible with WebStack to design and implement an application and to choose a
|
paulb@60 | 7 | deployment environment, without having to go back and rewrite large parts of
|
paulb@60 | 8 | that application to work in the chosen environment or in other environments
|
paulb@60 | 9 | (should the deployment requirements change after the application has been
|
paulb@60 | 10 | written).
|
paulb@60 | 11 |
|
paulb@68 | 12 | Framework Support
|
paulb@68 | 13 | -----------------
|
paulb@68 | 14 |
|
paulb@178 | 15 | Currently, BaseHTTPRequestHandler (via BaseHTTPServer in the standard library),
|
paulb@178 | 16 | CGI, Jython/Java Servlet API, mod_python, Twisted and Webware are supported.
|
paulb@178 | 17 | Each framework has its own set of strengths and weaknesses, but the idea is that
|
paulb@178 | 18 | deployment concerns can be considered separately from the implementation of
|
paulb@178 | 19 | application functionality. Consult the NOTES.txt files in each framework's
|
paulb@178 | 20 | subdirectory of the docs directory for some notes on how applications may be run
|
paulb@178 | 21 | in each environment.
|
paulb@60 | 22 |
|
paulb@68 | 23 | Tested Frameworks
|
paulb@68 | 24 | -----------------
|
paulb@68 | 25 |
|
paulb@178 | 26 | BaseHTTPRequestHandler Python 2.2.2, Python 2.3.3
|
paulb@120 | 27 | CGI Apache 2.0.44
|
paulb@178 | 28 | Jython/Java Servlet API Jython 2.1, Java JDK 1.3.1_02, Tomcat 4.1.27 (Servlet 2.3)
|
paulb@102 | 29 | mod_python 3.0.3 (3.1.3 for cookie support)
|
paulb@68 | 30 | Twisted 1.0.5
|
paulb@68 | 31 | Webware 0.8.1, CVS (2004-02-06)
|
paulb@68 | 32 |
|
paulb@178 | 33 | New in WebStack 0.6 (Changes Since WebStack 0.5)
|
paulb@178 | 34 | ------------------------------------------------
|
paulb@178 | 35 |
|
paulb@178 | 36 | Introduced Jython/Java Servlet API support.
|
paulb@178 | 37 | Minor fixes to example applications and to BaseHTTPRequestHandler.
|
paulb@178 | 38 |
|
paulb@171 | 39 | New in WebStack 0.5 (Changes Since WebStack 0.4)
|
paulb@171 | 40 | ------------------------------------------------
|
paulb@171 | 41 |
|
paulb@171 | 42 | Changed request body fields/parameters so that they are now represented using
|
paulb@171 | 43 | Unicode objects rather than plain strings.
|
paulb@171 | 44 | Introduced better support for Unicode in response streams.
|
paulb@171 | 45 |
|
paulb@160 | 46 | New in WebStack 0.4 (Changes Since WebStack 0.3)
|
paulb@160 | 47 | ------------------------------------------------
|
paulb@140 | 48 |
|
paulb@140 | 49 | Added application definition of user identity, permitting alternative
|
paulb@140 | 50 | authentication mechanisms.
|
paulb@142 | 51 | Improved BaseHTTPRequestHandler and mod_python reliability around fields from
|
paulb@142 | 52 | request bodies.
|
paulb@142 | 53 | Provided stream and environment parameterisation in the CGI adapter.
|
paulb@140 | 54 | Added LoginRedirect and Login examples.
|
paulb@164 | 55 | Added get_path_without_query and fixed get_path behaviour.
|
paulb@140 | 56 |
|
paulb@160 | 57 | New in WebStack 0.3 (Changes Since WebStack 0.2)
|
paulb@160 | 58 | ------------------------------------------------
|
paulb@120 | 59 |
|
paulb@120 | 60 | Added better header support for Webware (suggested by Ian Bicking).
|
paulb@120 | 61 | Introduced CGI and Java Servlet support (the latter is currently
|
paulb@120 | 62 | broken/unfinished).
|
paulb@120 | 63 | Introduced support for cookies.
|
paulb@120 | 64 |
|
paulb@68 | 65 | Future Work
|
paulb@68 | 66 | -----------
|
paulb@68 | 67 |
|
paulb@165 | 68 | Things to consider for future releases: improved cookie support, redirects,
|
paulb@165 | 69 | session interfaces, access to shared resources and much better documentation.
|
paulb@68 | 70 |
|
paulb@88 | 71 | Field access needs testing, especially for anything using the cgi.FieldStorage
|
paulb@102 | 72 | class - Webware and Twisted certainly need reviewing. The acquisition of
|
paulb@102 | 73 | fields from specific sources should be made more strict - some frameworks (eg.
|
paulb@102 | 74 | mod_python) provide path fields in the body fields dictionary.
|
paulb@102 | 75 |
|
paulb@102 | 76 | Cookie objects need defining strictly, especially since the standard library
|
paulb@102 | 77 | Cookie object behaves differently to mod_python (and possibly Webware) Cookie
|
paulb@103 | 78 | objects. Moreover, the set_cookie_value method needs to provide access to the
|
paulb@103 | 79 | usual cookie parameters as supported by the frameworks.
|
paulb@90 | 80 |
|
paulb@159 | 81 | Release Procedures
|
paulb@159 | 82 | ------------------
|
paulb@159 | 83 |
|
paulb@159 | 84 | Update the WebStack/__init__.py __version__ attribute.
|
paulb@159 | 85 | Update the release notes (see above).
|
paulb@159 | 86 | Check the setup.py file and ensure that all package directories are mentioned.
|
paulb@159 | 87 | Tag, export, archive, upload.
|