[storm] Storm 0.20 is out

Free Ekanayaka free.ekanayaka at gmail.com
Fri Jun 28 14:07:19 UTC 2013


The Storm team is proud to announce Storm 0.20!

Tarballs can be found at Launchpad or PyPI:

https://launchpad.net/storm/+milestone/0.20
https://pypi.python.org/pypi/storm

>From the NEWS file:

0.20 (2013-06-28)
=================

Improvements
------------

- A new CaptureTracer has been added to storm.testing, for capturing all SQL
  statements executed by Storm. It can be used like this:

    with CaptureTracer() as tracer:
      # Run queries
      pass
    print tracer.queries  # Print all queries run in the context manager block

  You will need the python-fixtures package in order to use this feature.

- Setuptools <http://pypi.python.org/pypi/setuptools> is now required
  to run setup.py. This makes it much easier to install the majority
  of the dependencies required to run the test suite in its entirety.

- Disconnection errors arising from PostgreSQL are now more reliably
  detected, especially with regard to recent libpq updates in Ubuntu.
  There are also disconnection tests that simulate sudden termination
  of pgbouncer <http://pgfoundry.org/projects/pgbouncer/>.

- Insert expressions now support multi-row and subquery INSERT
  statements.

- Support in the postgres backend to use the RETURNING extension for UPDATE
  statement, optionally specifying the columns to return.
  (PostgreSQL >= 8.2 only)

- Add a new Distinct expression for pre-pending the 'DISTINCT' token to
  SQL expressions that support it (like columns).

- Switch to REPEATABLE READ as isolation level for Postgres. If you use
  psycopg2 < 2.4, it doesn't change anything. For psycopg2 2.4 and newer, it
  will keep the same behavior on Postgres < 9 as it's equivalent to
  SERIALIZABLE, but it will be less strict on Postgres >= 9.

- Add support for two-phase commits, using the DB API version 2.0, which
  is only supported by PostgreSQL.

- ZStormResourceManager now has a schema_stamp_dir optional instance attribute
  that, if set, will be used to to save timestamps of the schema's patch
  packages, so schema upgrades will be performed only when needed.


Bug fixes
---------

- When a SQLObjectResultSet object was sliced with slice.start and
  slice.end both zero (sqlobject[0:0]), the full, unsliced resultset
  was returned (bug #872086).

- Fixes some test failures around Django disconnections from
  PostgreSQL stores.

- Some of the proxy-less disconnection tests were causing segfaults,
  so they're now run in a subprocess via subunit's IsolatedTestCase,
  when it's available.

- Fix a few non-uses of super() in TestHelper.

- Abort the transaction and reset ZStorm at the end of
  tests/zope/README.txt.

- Fix the ./test script to not import tests until after local eggs
  have been added to sys.path. This ensures that all possible features
  are available to the tests.

- If transaction.commit() fails, call transaction.abort() to rollback
  everything and leave the transaction in a clean state when using Django's
  ZopeTransactionMiddleware and DatabaseWrapper.

- It's now again possible to use the Desc() expression when passing an
  order_by parameter to a ReferenceSet (bug #620369).

Enjoy :)

Free



More information about the storm mailing list