Monday, August 3. 2009
I didn't realize this, but all my SHA implementations were still living in my Subversion repository. Well, after some meticulous converting from both my archived CVS and SVN repositories, I've managed to finally move them over to Mercurial.
Anyway, I'm not sure what else in Subversion I'd like to move over. Certainly, there's nothing left in there that's all that interesting to the public. So I will take down the public-facing SVN repo... someday.
Searching Google, I see nothing links directly svn.saddi.com. However, there's quite a lot of documentation that references flup and fcgi.py within it. Well, if anyone's been checking out that flup, it's 2 years out of date. And the standalone fcgi.py module... I'd rather just forget about that since it's hopelessly out of sync from the flup version. (It's basically the flup threaded fcgi server without thread pools.)
Wednesday, September 7. 2005
I just fixed a rather insiduous 2.3-only problem in fcgi: Apparently, the 2.3 socket module does not define the SHUT_* constants for the shutdown() syscall. This caused an attribute error that was silently being ignored. The end result was that the FastCGI socket connection with the server was not being closed - this caused output to hang in certain situations.
I didn't see the problem because as I said previously, I run 2.4 everywhere - even on my Macs (which normally come with 2.3 out-of-the-box).
Anyhow, big thanks to Eugene Lazutkin for bringing the problem to my attention, helping to isolate the problem (since it was unreproducible on my end, I had a hard time believing it was fcgi's fault  ), and finally, providing access to an environment where it was reproducible 100% of the time (which allowed me to figure it out).
Wednesday, August 31. 2005
Just some superficial rewrites to remove the reliance on decorators (a 2.4 addition). I run 2.4 everywhere I care to run Python... plus the short-hand notation for decorators is so much more convenient. But I guess if such a trivial change would keep compatibility with 2.3, it would benefit more people to make it.
Once Python 2.5 comes around though...
Friday, August 19. 2005
Namely, the modules that were repackaged into flup. What this means is that the py-lib versions will not be updated anymore. I plan to eventually to delete the affected files from py-lib, but not for some time.
HOWEVER, I will continue to update fcgi.py and session.py in py-lib. I realize the non-packaged versions of these modules are somewhat popular and convenient to have around. (e.g. No need to install the entire flup package if all you're interested in is the FastCGI WSGI module.)
Regardless, I encourage all new code to use flup instead, and all old code to be ported to flup. (C'mon! After installing flup, it just requires a single change to the import statement.  )
Sunday, July 3. 2005
Session's generateIdentifier() method was returning non-ASCII strings for international locales. This has been fixed. Thanks to Ksenia Marasanova for the problem report and patch.
Monday, June 13. 2005
A minor change was made to how fcgi closes its connection with the web server. In certain cases, fcgi may close the connection early, causing the connection to be reset at the web server's end. This usually results in a shortened HTTP response. Thanks to Dima Barsky for pointing this out and suggesting a fix!
Sunday, May 15. 2005
MemorySessionStore and ShelveSessionStore were incorrectly allowing the same Session to be checked out multiple times simultaneously. Also, eliminate a possible deadlock in DiskSessionStore.
Saturday, April 16. 2005
Apparently, like AJP/mod_jk, mod_scgi does not pass in sane values for SCRIPT_NAME/PATH_INFO. Accept a scriptName keyword to scgi.WSGIServer and deduce SCRIPT_NAME/PATH_INFO appropriately.
Thursday, April 14. 2005
I've tenatively repackaged the WSGI servers, middleware, and publisher into the "flup" package (named after the project that spawned all these modules). For now, you can get it from the SVN repo at <http://svn.saddi.com/flup/trunk>.
Pros: allows me to refactor (especially the servers). There are 3 types of servers (fcgi, ajp, scgi) with 2 flavors of each (threaded, forking). Better organized, easier to maintain.
Cons: No more single-module servers or publisher. No more picking and choosing modules. You have to grab the whole package (because of the refactoring). 
Wednesday, April 13. 2005
Added fcgi_fork.py (also dependent on prefork.py), a forking version of the fcgi module.
Monday, April 11. 2005
Added scgi, a threaded SCGI/WSGI module.
Saturday, April 9. 2005
ErrorEmailMiddleware was renamed to ErrorMiddleware. It seemed more appropriate since I added a "debug" flag that allows the middleware component to be used during development. (I end up creating a similar component during development... why continuously re-invent the wheel?) Added support for "internal" redirects in Publisher. The Resolver interface has changed slightly as a result.
Thursday, April 7. 2005
The Resolvers in Publisher have been updated to ignore URL path parameters. Added JSessionService, a subclass of session's SessionService class, that supports AJP's sticky-session feature.
Monday, April 4. 2005
The environment variable used to force CGI behavior has been renamed to FCGI_FORCE_CGI (previously MAC_OS_X_FORCE_CGI).
Saturday, April 2. 2005
Added ErrorEmailMiddleware, a WSGI middleware component that catches any unhandled exceptions from the application. When an exception is caught, a static error page is displayed to the user and details about the exception are emailed to an administrator.
|