1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
2004-04-18 Remi Delon <remi@cherrypy.org>
* CherryPy-0.10-final released
* Added two new options to the compiler for specifying which shebang line and encoding to use for the generated .py file. Options are called -S|--shebang and -E|--encoding. Example: python ../cherrypy.py -S "#!/usr/local/bin/python" --encoding "latin-1" Root.cpy
* Change prototype of logMessage to logMessage(message, level=0) and updated HowTo
* Tweaked cherrypcgi.cgi to remove "last-modified" header as this doesn't work well with Apache
* Fixed multiple-cookie handling bug with Konqueror
* Improved code that handles client certificate verification in SSL mode (hopefully there will be a HowTo that explains how to use that soon)
* Updated HowTo about sessions to show usage of cleanUpDelay
* Changed "server" string returned by HTTP server to be "CherryPy/<version>"
2004-03-07 Remi Delon <remi@cherrypy.org>
* CherryPy-0.10-rc1 released
* Old sessions are now cleaned-up. New function "cleanUpOldSessions" has been added for custom sessions. See HowTo about sessions for more information.
* Made a small change in Form.cpy so people can use "mandatory=1" as well as their own validation function. Thanks to Scott Luck for that fix.
* Improved the "Mail" module with a new "sendHtmlMail" method that supports sending HTML mails. The date is also now included by default in the e-mail header. Updated the doc as well. Thanks to Enrico Morelli for this code
* Added "request.peerCertificate" variable that contains the peer certificate (if any) in SSL mode (thanks to Chris Foote for this)
* Fixed aspect behavior when using multiple inheritance. Now respects the "russian doll" effect ... Added a couple of regression tests about this
* When a file is being uploaded, its content-type is now available through request.fileTypeMap[<fieldName>] (if the browser sent the information)
* "getPath" now takes an optional argument: "includeRequestBase" which defaults to 1. If it is set to 0, then the returned URl no longer includes the domain name (this makes it easier for CherryPy servers that run behind Apache with mod_rewrite)
* Changed CookieSessionAuthenticate: "isGoodLoginAndPassword" has been renamed "checkLoginAndPassword" and should return None if it's ok and an error message such as "Wrong login/password" or "Account disabled" if it's not ok.
* Fix in CookieSessionAuthenticate: the login is now stored in "request.login" as opposed to "self.login". This makes it thread-safe
* Small fix in CookieSessionAuthenticate: if client has no session at all, display the "No cookie message"
* Updated request.filenameMap so it handles the case when several file fields have the same name
* Now catch the case where someone uses "hidden" but the method is not a mask or a view
* Fixed bug when setting "_reverseDNS" in config file
* Tweaked a couple of things to be able to have a favicon.ico for a website
* Fixed a bug with URL <-> Method mapping and added a regression test about it
* Fixed a glitch in prettyMap (in lib/MaskTools.cpy)
2004-01-06 Remi Delon <remi@cherrypy.org>
* CherryPy-0.10-beta released
* CherryPy now uses 4 spaces instead of tabs in its source code. It also uses spaces in the generated .py file. I've added a new regression test called "testIndentation.py" about this and I've updated the tutorial.
* No longer enforces a parent class name to match CherryClass's name pattern (because a CherryClass could inherit from any class)
* Added new special function "initRequestBeforeParse" that allows us to tell CherryPy not to parse POST data (by setting request.parsePostData=0) and to parse the POST data ourselves (by reading on request.rfile). This allows for instance to stream an uploaded file directly to the filesystem. Added a new HowTo about this.
* Added new section 1.4 in the tutorial to explain how to stop the server
* Changed the abstract in the tutorial to use same text as the one on CherryPy.org
* Updated the HOME page of cherrypy.org
* Restored Jython compatibility (was broken in 0.9)
* Session data is now accessed through "request.sessionMap" instead of just "sessionMap". This is because "sessionMap" wasn't thread-safe.
* Small change to CherryFileObject to get rid of annoying error messages with Python-2.3 when old sockets are being deleted.
* Now setting the cookie version for CherryPySession cookie
2003-11-25 Remi Delon <remi@cherrypy.org>
* CherryPy-0.9 released
* Put a warning in the HowTo about Psyco about potential memory leaks
* Added back "request.method", which had disappeared when switching to BaseHTTPServer-based server
* Changed the copyright again ... All files now say "Copyright CherryPy Team". A new file "CherryPyTeam.txt" has been added and list the people who make the CherryPy team and own the copyright. The file "Contributors.txt" has been renamed "Thanks.txt"
* Updated "prettyMap" in maskTools
* Changed the search functionality on cherrypy.org to use Google
* initThread and initProcess now take respectively "threadIndex" and "processIndex" as argument and updated documentation accordingly
* Fixed a bug that caused the first character after <py-include> to disappear
2003-11-17 Remi Delon <remi@cherrypy.org>
* CherryPy-0.9-rc1 released
* Added a HowTo called "Sample deployment configuration for a real-world website"
* Changed tutorial to emphasize CGTL instead of CHTL
* Fixed a bug that happened when using aspect with multiple inheritance
* Now uses "best-effort" to handle wrong URLs like: http://domain?url=http://domain (thanks to Steven Nieker)
* Includes Jeff's CookieSession (and updated HowTo about sessions accordingly)
* Slightly modified the license so the copyright applies to "Remi Delon and contributors" instead of just "Remi Delon". The license now specifies that the code that CherryPy copies into the executable is not covered by the GPL. All files (including the ones in lib/* and src/* now include that license).
* Added a file "Contributors.txt" that lists everybody who contributed to the project
* Added the ability to close CGTL tags "ala XML" (for instance, <py-eval="name"/>) and updated tutorial accordingly (thanks to Damien Boucard for this code)
* Added the ability to use double-quotes inside CGTL expressions, by escaping them with a backslash (thanks to Damien Boucard for this code)
* Added the ability to use triple-quotes within masks (thanks to Damien Boucard for this code)
* Added the ability to return pages to the browser in a streaming way (and added a HowTo about it)
* Added the ability to use several mask/view/... sections within a given CherryClass and updated tutorial accordingly
* Check that response type is not unicode
* Added the ability to serve static files by specifying the full name of the file, and updated tutorial accordingly). This can be used for instance to serve favicon.ico
* Fixed some typos in the Standard Library reference (thanks to Damien Boucard)
* Documented CookieSessionAuthenticate.cpy in the standard library documentation
* removed --psyco flag (same effect can be achieved using initProgram) and updated HowTo accordingly
* Added the ability to have multiple same sections in a given CherryClass and updated tutorial accordingly
* Added initProgram, initThread, initProcess and initAfterBind special functions and updated tutorial accordingly
* Added prettyMap mask to MaskTools.cpy (thanks to Mario Ruggier)
* Fixed bug that caused the HTTP server to try to use HTTP/1.1 and wasn't working with python-2.3
* Added a special key call "_sessionId" in sessionMap: sessionMap['_sessionId'] contains the sessionId
* Thread names are now only checked in debug mode (speed optimization)
* Now trapps Ctrl-C even on Windows (if timeoutmodule is there or if using python-2.3)
* Added new config variable "socketHost" to control which address to bind the server to (thanks to Ulf Bartelt) and updated tutorial accordingly
* Fixed bug in XML-RPC (wrong mapping path.methodName to CherryClass). Added a test about it in testXmlRpc.py
* Now allows spaces between "def (" and "self". There gets tested in testCGTL.py
* Now checks name of CherryClass and parent classes (thanks to Jeff Clement)
* Fixed small bug in threadPoolServer.py that prevented it to work under rare circumstances
* Fixed test suite so it works when ran with python-2.3
* Fixed a bug with <py-else> in external template files
* Remove "start" from cherrypy/www.cherrypy.org/
* Fixed hotReload for python-2.3 and added a regression test about it
* Fixed unicode characters in demo (caused a warning with python-2.3)
2003-08-24 Remi Delon <remi@cherrypy.org>
* CherryPy-0.9-gamma released
* New HowTo about Chettah templates
* New config file parameter: socketQueueSize
* When using external templates (with py-include), CherryPy now correctly reports the template filename if an error occured while compiling the template mask
* New module to access an Oracle database (thanks to Brent Fentem): DCOracleFull.cpy ("Full" because it exposes the full set of methods instead of just one generic "query" method)
* When using several aspect methods, now keep the order in which they are defined
* Aspects methods are now propagated to children classes recursively (before, it was propagated to only one level down)
* Added "method.className" for aspect headers
* Renamed "function.name" into "method.name" for aspect headers
* py-for now works even with generators (in the case, _end is set to -1)
* No longer load/save session data when serving static files
* Now send "Last-Modified" header and handle "If-Modified-Since" when serving static files (added a regression tes tabout it)
* Fixed a bug that affected _index and _end for nested py-for loops (added a regression test about it)
* Custom loadSessionData and saveSessionData (allows users to store sessionData wherever they want, including to a database)
* Improved CHTL and CGTH tests with recursive py-for and _index and _end (and fixed a bug)
* Storing session data to files now works in threading and threadPool mode (added some locks)
* Added threadPool server
* reverseDNS option in config file
* Changed CookieAuthenticate.cpy to use absolute URL for "doLogin"
* Changed fixedNumberOfProcesses into "processPool"
* Fixed a bug in sessions that caused all sessions to expire unexpectedly
* Fixed spaces->tabs conversion problem when using py-code
2003-06-19 Remi Delon <remi@cherrypy.org>
* CherryPy-0.9-beta released
* Changed the way "hidden property" is inherited. See HowTo about hidden methods. Made DefaultFormMask hidden in Form.cpy
* Added a new attribute used in aspect headers: function.isHidden. Updated HttpAuthenticate and CookieAuthenticate to use this new attribute
* Added session handling, include a new HowTo about sessions and a new demo entry
* Added a new option to the cherrypy.py compiler: --psyco to enable psyco in the generated file
* Added a new option to the cherrypy.py compiler: --stderr2stdout to redirect errors to stdout (used for regression tests)
* self.login for HttpAuthenticate and CookieAuthenticate + demo and doc updated
* Removed the need for a MySql database to run cherrypy.org on your local machine
* New way of cookie handling: now uses a SimpleCookie object. Cookie demo updated and new HowTo added
* Make it python 2.3 compatible
* Renamed all variables read from config file with an underscore (so users don't change them by mistake)
* request.rawHeader no longer exists (since we switched to BaseHTTPServer)
* Fixed a bug when a CherryClass section (like "function", "mask" or "variable") was empty
* "use" on several lines
* Removed tabs when using recursive py-include
* Accept any filename extensions for templates in py-include (used to force it to .cpyt)
* Fixed bug that prevented absolute path for .cpy files to work on windows
* Made current directory always the first when searching for files
* Now check that masks and views return non-empty strings
* Improved XML-RPC (thanks to Steven Nieker)
* Small engine optimization (thanks to Joseph Knapka)
* Replace whitespace with TABS (-W option) only for the beginning of the line
* Default to index when URL corresponds to a CherryClass (thanks to Nolan J. Darilek)
* Make it Jython-compatible
* Fixed cherrypcgi.py et cherryfcgi.cgi to change Http-Referer into Referer
* Fixed a bug: abstract CherryClasses with parents weren't abstract
* Fixed a bug: hidden CherryClasses with parents weren't hidden
2003-01-10 Remi Delon <remi@cherrypy.org>
* CherryPy-0.8 released
* Fixed a bug that prevented to use threading on Windows
* Remove GPL license from files in lib/
* Added PostGres.cpy in lib/ thanks to Marc A. Linux
* Added new logging configuration variables and logMessage special function
* Fixed a few bugs that prevented SSL from correctly working for some Python/pyOpenSSL/platform combinations
2002-12-16 Remi Delon <remi@cherrypy.org>
* CherryPy-0.8-beta released
* Implemented XMl-RPC
* Make hidden masks and views possible
* Completely changed the http server. Now much more flexible and robust
* Changed services/ into src/
* Improved cherryhotreload.py
* Updated XML demo to allow for wider forms
* Now sets remote-addr and remote-host when using CherryPy HTTP server directly
2002-09-18 Remi Delon <remi@cherrypy.org>
* CherryPy-0.7 released
* Added time in server log
* Two new HowTos: AOP and XML/XSL
* Fixed HotReload bug (changed debug into _debug in Httpd.py), thanks to Lukasz Pankowski
* Catch special error when view or mask doesn't return a string
* For AOP that applies on a mask, put AOP code after _page=[] and before return _page
2002-09-01 Remi Delon <remi@cherrypy.org>
* CherryPy-0.6 released
* Added SSL support based on PyOpenSSL (Added a HowTo to explain how to use it)
* Removed the copyright and the GPL license from Httpd.py
2002-08-08 Remi Delon <remi@cherrypy.org>
* CherryPy-0.5 released
* New py-include tag
* FastCGI support
* Recognize filename extension for static files (and set content-type accordingly)
* Now HowTos about FastCGI and py-include
2002-07-29 Remi Delon <remi@cherrypy.org>
* CherryPy-0.4 released
* Added caching feature
* Added request.filenameMap to find out the name of the file that's being uploaded
* Compiler optimization: use _page.append(text) instead of _page+="text"
2002-07-17 Remi Delon <remi@cherrypy.org>
* CherryPy-0.3 released
* New entry in the demo: Using OOP to develop a web site
* Improved the demo: source code is now included
* cherrypy.org modification: added a "current development" section
* Standard Library documentation
2002-07-04 Remi Delon <remi@cherrypy.org>
* CherryPy-0.2 released
* CookieAuthenticate now uses the md5 module instead of crypt (crypt is only available on Unix)
* Now handles pdf file type when serving static content
* Added 2 HowTos about serving gzip-compressed pages and running CherryPy behind Apache
* CherryPy now recognizes the $CHERRYPY_HOME environment variable
* CherryPy now has a CVS repository on Sourceforge
2002-06-25 Remi Delon <remi@cherrypy.org>
* First release of CherryPy (Version 0.1)
|