WebStack

Annotated README.txt

221:dd031a30ecb5
2004-08-31 paulb [project @ 2004-08-31 18:28:09 by paulb] Fixed encoding usage in body fields processing. Removed the default charset from ContentType since it is not necessarily helpful.
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@218 15
Currently, BaseHTTPRequestHandler (via BaseHTTPServer in the standard
paulb@218 16
library), CGI, Jython/Java Servlet API, mod_python, Twisted, Webware and Zope
paulb@218 17
2 are supported. Each framework has its own set of strengths and weaknesses,
paulb@218 18
but the idea is that deployment concerns can be considered separately from the
paulb@218 19
implementation of application functionality. Consult the NOTES.txt files in
paulb@218 20
each framework's subdirectory of the docs directory for some notes on how
paulb@218 21
applications may be run 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@192 32
Zope			  2.7.2-0
paulb@192 33
paulb@192 34
New in WebStack 0.7 (Changes Since WebStack 0.6)
paulb@192 35
------------------------------------------------
paulb@192 36
paulb@218 37
Fixed path information semantics.
paulb@192 38
Fixed file upload semantics.
paulb@192 39
Fixed content type handling (although some improvement remains).
paulb@192 40
Introduced Zope 2 support.
paulb@68 41
paulb@178 42
New in WebStack 0.6 (Changes Since WebStack 0.5)
paulb@178 43
------------------------------------------------
paulb@178 44
paulb@178 45
Introduced Jython/Java Servlet API support.
paulb@178 46
Minor fixes to example applications and to BaseHTTPRequestHandler.
paulb@178 47
paulb@171 48
New in WebStack 0.5 (Changes Since WebStack 0.4)
paulb@171 49
------------------------------------------------
paulb@171 50
paulb@171 51
Changed request body fields/parameters so that they are now represented using
paulb@171 52
Unicode objects rather than plain strings.
paulb@171 53
Introduced better support for Unicode in response streams.
paulb@171 54
paulb@160 55
New in WebStack 0.4 (Changes Since WebStack 0.3)
paulb@160 56
------------------------------------------------
paulb@140 57
paulb@140 58
Added application definition of user identity, permitting alternative
paulb@140 59
authentication mechanisms.
paulb@142 60
Improved BaseHTTPRequestHandler and mod_python reliability around fields from
paulb@142 61
request bodies.
paulb@142 62
Provided stream and environment parameterisation in the CGI adapter.
paulb@140 63
Added LoginRedirect and Login examples.
paulb@164 64
Added get_path_without_query and fixed get_path behaviour.
paulb@140 65
paulb@160 66
New in WebStack 0.3 (Changes Since WebStack 0.2)
paulb@160 67
------------------------------------------------
paulb@120 68
paulb@120 69
Added better header support for Webware (suggested by Ian Bicking).
paulb@120 70
Introduced CGI and Java Servlet support (the latter is currently
paulb@120 71
broken/unfinished).
paulb@120 72
Introduced support for cookies.
paulb@120 73
paulb@68 74
Future Work
paulb@68 75
-----------
paulb@68 76
paulb@165 77
Things to consider for future releases: improved cookie support, redirects,
paulb@218 78
access to shared resources and much better documentation.
paulb@68 79
paulb@88 80
Field access needs testing, especially for anything using the cgi.FieldStorage
paulb@218 81
class, and the way file uploads are exposed should be reviewed (currently the
paulb@218 82
meta-data is not exposed). The acquisition of fields from specific sources
paulb@218 83
should be made more strict - some frameworks (eg. mod_python) provide path
paulb@218 84
fields in the body fields dictionary.
paulb@102 85
paulb@102 86
Cookie objects need defining strictly, especially since the standard library
paulb@102 87
Cookie object behaves differently to mod_python (and possibly Webware) Cookie
paulb@103 88
objects. Moreover, the set_cookie_value method needs to provide access to the
paulb@103 89
usual cookie parameters as supported by the frameworks.
paulb@90 90
paulb@218 91
Unicode text written to the response stream needs to be suitably encoded
paulb@218 92
somewhere beneath each application. Better support for content type definition
paulb@218 93
could be provided.
paulb@218 94
paulb@159 95
Release Procedures
paulb@159 96
------------------
paulb@159 97
paulb@159 98
Update the WebStack/__init__.py __version__ attribute.
paulb@159 99
Update the release notes (see above).
paulb@159 100
Check the setup.py file and ensure that all package directories are mentioned.
paulb@159 101
Tag, export, archive, upload.