Release 3.3 of The SkunkWeb Web Application Server has just
The release is available from the SkunkWeb home page at
or directly from
Changes in 3.3
- Developer's manual updated
- fix to PyDO/mysql so that you can put NULL values into columns
- minor change to handling of python code files (__name__ is now set
to '__main__' in the document namespace), so precompiled Cheetah
- fix to the cachekey generator so it won't dump core under certain
---3.3 beta 0 cut
- the build process was revised to facilitate changing the installed
directory structure using standard configure options; FHS-compliant
packaging and installation is now feasible.
- PSP support added. For now should be considered alpha
- Prebuilt documentation is now included in the distribution (HTML and
paper-formats in letter dimensions)
- now can have skunkweb started as root (can set who you actually want
it to run as) so you can bind to low ports
- new extcgi service so you can run CGI's from SkunkWeb!
- new pycgi service for running Python CGI's in process -- still in
- vfs.FS has new method, split_extra(), that finds extra path info;
the rewrite service has a new DynamicRewriter subclass,
ExtraPathFinder, which takes advantage of it (although a simple
rewrite rule is still more efficient to use when possible -- see the
- fixed userModuleCleanup bugs when using MySQL service and/or used
<:img:> tag with PIL installed.
- pydo/mysql now supports connection caching using the mysql service.
- PyDO documentation updates
- The userdir service will now function properly when operating with a
- Now converts non-native line-endings in exprs to the native line
ending so that when editing templates on non-native machines,
expressions will work properly
- auth service fix when using multiple auth schemes simultaneously --
BACKWARD INCOMPATIBLE CHANGE AHEAD---
If you customized the login/logout pages copied from the auth
service directory, NOTE THE FOLLOWING CHANGE!!
change the <:import SkunkWeb Configuration:> to <:import auth:>
change the Configuration.authAuthorizer bits to auth.getAuthorizer().
If you copied them and didn't change them, recopy them.
- the logger now handles some really bizarre cases that shouldn't ever
happen in reality (but of course have, or I wouldn't have fixed
them). Oh the benefits of a machine with bad memory to make you
test for things that shouldn't happen.