On behalf of the Storm development team, I'm proud to announce that the release 0.12 is out! This is a very exciting release, as it brings several fixes and quite a few new features.
Thank you very much to everyone who contributed. Storm is available at: https://storm.canonical.com Improvements ------------ - The Connection will reconnect automatically when connection drops are detected and a rollback is performed. As a result, the Store should handle reconnections in a seamless way in most circumstances (#94986, by James Henstridge). This is supported in the MySQL and PostgreSQL backends. - Store.flush() will not load values inserted in the database. Instead, undefined variables are set to AutoReload, and resolved once first accessed. This won't be noticeable in normal usage, but will boost the performance of inserts. - Support in the postgres backend to use the RETURNING extension of the INSERT statement to retrieve the primary key on inserts for object identity mapping (PostgreSQL >= 8.2 only) - Introduced a cache mechanism that keeps the N last retrieved objects in memory to optimize cases where the same object is retrieved often while no strong references are kept elsewhere. Implemented by Bernd Dorn, from Lovely Systems. - Improved support for TimeDelta properties on all backends. Many more formats are accepted now, and some issues were fixed. Bug fixes --------- - TimeDelta was added to storm.locals. - Fixed TimeDelta support in SQLite, MySQL, and PostgreSQL, and enabled base test for all backends to ensure that it continues to work. - Schema names are accepted in __storm_table__ when using PostgreSQL as the database (e.g. "schema.table"). (#146580, reported by James Mayfield) - Test runner handles path correctly on Windows, and SQLite tests won't break (patch by Ali Afshar). - In the SQLite backend, ensure that we're able to recommit a transaction after "database is locked" errors. Also make sure that when this happens the timeout is actually the expected one (patch by Richard Boulton) - TransactionFailedError is now imported from the public place: ZODB.POSException (#129715, by James Henstridge). - TimeDelta was added to storm.locals. - Tables named with reserved keywords are properly escaped. - Reserved keywords on column names are properly escaped when part of an insert or update statement (#184849, by Thomas Herve). - Prevent cached objects from issuing selects to retrieve their data when find()s were previously made and already brough their data (#174388, reported and fixed by Bernd Dorn). - Fixed bug which caused an object to be readded to the store when a reference of an object that had already been removed was looked up. - Prevent pathological case which happens when a statement like "SELECT ... WHERE table.id = currval(...)" is executed in PostgreSQL. The change is only meaningful on PostgreSQL < 8.2, as newer versions will use the RETURNING extension instead. - Specify both of the joining tables explicitly when compiling Proxy, so that it doesn't break due to incorrect references in the ON clause when multiple tables are used (reported in #162528 by S3ym0ur and Hamilton Tran) - MySQL client charset now defaults to UTF-8 (reported by Brad Crittenden). -- Gustavo Niemeyer http://niemeyer.net -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html