2005-06-11: * getSpecialFunction renamed getSpecialAttribute (mikerobi) 2005-06-10: * New test suite (no forks, no exec). (fumanchu) * New lib/profiler module. (fumanchu) * New session filter (mikerobi) * New config.getAll function (mikerobi) 2005-06-09: * New sessionauthenticatefilter. This replace CSAuthenticate implementation (based on aspect). (Remi) * New nsgmlsfilter. Provides XHTML validation (you need NSGMLS installed). (Remi) 2005-06-02: * New WSGI server. (Peter) 2005-06-01: * Core (_cphttptools) was completely rewritten to use iterators throughout. (fumanchu) * HTTP server has been decoupled from _cpserver. (fumanchu) * New WSGI interface to the builtin http server; WSGI is now the default. (fumanchu) * Moved session handling into a filter. (fumanchu) * New testCore.py for testing basic request and error handling. (fumanchu) * autoreload disabled if cpg.server.start is called with initOnly=True. (fumanchu) * BACKWARD INCOMPATIBILITY: filters changed, see http://www.cherrypy.org/wiki/WhatsNewIn21#filter_methods. (fumanchu) 2005-05-20: * BACKWARD INCOMPATIBILITY: New config system, see http://www.cherrypy.org/wiki/ConfigSystem21 (Remi) * Fixed small bug in httptools.redirect (Remi) * Allow methods to return recursive generators (Remi) * Methods can now return file objects which are red in 64kb chunks. (Mike) 2005-04-25: * CherryPy-2.0-final released * Added tests about static content and httptools.redirect (Remi) * Handle %20 (and others) in static content - ticket #104 (Remi) * If y is a static dir make y/a?b try and serve a file named a?b (Dan) * Pass threadIndex to onStartThreadList functions - ticket #91 (Remi) * Renamed "configDict" into "configMap" for consistency - ticket #82 (Remi) * Dots in requests path are now replaced by underscores - ticket #87 (Remi) * Improved WSGI support and added example (seems to work OK) (Peter, Remi) * Added DecodingFilter (Remi) * Added form module (port from CP1 Form.cpy) (Remi) * Improved the way static files are being served (Remi) 2004-12-29: * CherryPY-2.0-beta released * xmlrpcfilter added (Remco) * cpg.response.body is now always an iterable type - ticket #59 (Carlos) * Allowed default session functions to be accessed by other modules - ticket #56 (Remi) * Added cpg.threadData - ticket #53 (Remi) * Added request.requestLine - ticket #52 (Remi) * logFile config option is now honored - ticket #51 (Remi) * Added cpg.request.remoteAddr and cpg.request.remoteHost - ticket #34 (Eurleif) * Improved baseurlfilter to handle x-forwarded-host - ticket #49 (Kender) * Made object mapping algorithm iterative instead of recursive - ticket #48 (Jesir Vargas) * Improved testing framework (Remco) * Check that response is a string *after* filters have been applied (ticket #28) (Remi) * Removed all XML-RPC references from the core: it is now a filter (ticket #30) (Remi) * Removed "response encoding" from the core: it is now in a filter (ticket #31) (Remi) * Implemented filters and a couple of sample filters (Remi) * Fixed "cleanUpOldSessions" bug (ticket #12) (Remi) * "file" storage type for sessions now works fine (Remi) * Ticket #6: If a response is unicode, it gets encoded automatically. Encoding is specified in the config file unser [server].encoding (the default is UTF-8). (Remi) * Added more unittest (Remi) * Fixed file upload bug (Remi) 2004-10-13: * First alpha release of CherryPy-2 (Remi)