[Checkins] SVN: relstorage/tags/1.2.0b2/ tagged 1.2.0b2

Shane Hathaway shane at hathawaymix.org
Tue May 5 23:30:34 EDT 2009


Log message for revision 99788:
  tagged 1.2.0b2
  

Changed:
  A   relstorage/tags/1.2.0b2/
  D   relstorage/tags/1.2.0b2/CHANGES.txt
  A   relstorage/tags/1.2.0b2/CHANGES.txt
  D   relstorage/tags/1.2.0b2/setup.py
  A   relstorage/tags/1.2.0b2/setup.py

-=-

Property changes on: relstorage/tags/1.2.0b2
___________________________________________________________________
Added: svn:ignore
   + nbproject
develop-eggs
parts
.installed.cfg
coverage
bin
RelStorage.egg-info
eggs
dist


Added: svn:mergeinfo
   + 

Deleted: relstorage/tags/1.2.0b2/CHANGES.txt
===================================================================
--- relstorage/trunk/CHANGES.txt	2009-05-06 03:17:45 UTC (rev 99785)
+++ relstorage/tags/1.2.0b2/CHANGES.txt	2009-05-06 03:30:32 UTC (rev 99788)
@@ -1,294 +0,0 @@
-
-Version 1.2.0b1 (2009-05-05)
---------------------------
-
-- RelStorage now implements IMVCCStorage, making it compatible with
-  ZODB 3.9.0b1 and above.
-
-- Removed two-phase commit support from the PostgreSQL adapter. The
-  feature turned out to be unnecessary.
-
-- Added MySQL 5.1.34 and above to the list of supportable databases.
-
-- Fixed minor test failures under Windows. Windows is now a supportable
-  platform.
-
-
-Version 1.1.3 (2009-02-04)
---------------------------
-
-- In rare circumstances, ZODB can legitimately commit an object twice in a
-  single transaction.  Fixed RelStorage to accept that.
-
-- Auto reconnect to Oracle sometimes did not work because cx_Oracle was
-  raising a different kind of exception than expected.  Fixed.
-
-- Included LICENSE.txt in the source distribution.
-
-
-Version 1.1.2 (2009-01-27)
---------------------------
-
-- When both cache-servers and poll-interval are set, we now poll the
-  cache for changes on every request.  This makes it possible to use
-  a high poll-interval to reduce the database polling burden, yet
-  every client can see changes immediately.
-
-- Added the pack-dry-run option, which causes pack operations to only
-  populate the pack tables with the list of objects and states to pack,
-  but not actually pack.
-
-- Refined the pack algorithm.  It was not removing as many object states
-  as it should have.  As a bonus, there is now a method of adapters called
-  fill_object_refs(), which could be useful for debugging.  It ensures the
-  object_ref table is fully populated.
-
-- Began using zc.buildout for development.
-
-- Increased automated test coverage.
-
-- Fixed KeyError reporting to not trip over a related KeyError while logging.
-
-
-Version 1.1.1 (2008-12-27)
---------------------------
-
-- Worked around MySQL performance bugs in packing.  Used temporary
-  tables and another column in the pack_object table.  The
-  other databases may benefit from the optimization as well.
-
-- Applied an optimization using setinputsizes() to the Oracle code,
-  bringing write speed back up to where it was in version 1.0.
-
-
-Version 1.1 (2008-12-19)
-------------------------
-
-- Normalized poll-invalidation patches as Solaris' patch command would not
-  accept the current format. The patches now apply with:
-  patch -d lib/python/ZODB -p0 < poll-invalidation-1-zodb-3-X-X.patch
-
-- In MySQL, Use DROP TABLE IF EXISTS instead of TRUNCATE to clear 'temp_store'
-  because:
-
-  - TRUNCATE has one page of caveats in the MySQL documentation.
-  - TEMPORARY TABLEs have half a page of caveats when it comes to
-    replication.
-  - The end result is that 'temp_store' may not exist on the
-    replication slave at the exact same time(s) it exists on the
-    master.
-
-- Implemented the database size query in MySQL, based on a patch from
-  Kazuhiko Shiozaki.  Thanks!
-
-- Optimized Oracle object retrieval by causing BLOBs to be sent inline
-  when possible, based on a patch by Helge Tesdal.  By default, the
-  optimization is activated automatically when cx_Oracle 5 is used.
-
-- Updated the storage iterator code to be compatible with ZODB 3.9.
-  The RelStorage tests now pass with the shane-poll-invalidations branch
-  of ZODB 3.9.
-
-- Added a translation of README.txt to Brazilian Portuguese by
-  Rogerio Ferreira.  Thanks!
-
-
-Version 1.1c1
--------------
-
-- Added optional memcache integration.  This is useful when the connection
-  to the relational database has high latency.
-
-- Made it possible to set the pack and memcache options in zope.conf.
-
-- Log more info when a KeyError occurs within RelStorage.
-
-
-Version 1.1b2
--------------
-
-- Made the MySQL locks database-specific rather than server-wide.  This is
-  important for multi-database configurations.
-
-- In the PostgreSQL adapter, made the pack lock fall back to table locking
-  rather than advisory locks for PostgreSQL 8.1.
-
-- Changed a query for following object references (used during packing)
-  to work around a MySQL performance bug.  Thanks to Anton Stonor for
-  discovering this.
-
-
-Version 1.1b1
--------------
-
-- Fixed the use of setup.py without setuptools.  Thanks to Chris Withers.
-
-- Fixed type coercion of the transaction extension field.  This fixes
-  an issue with converting databases.  Thanks to Kevin Smith for
-  discovering this.
-
-- Added logging to the pack code to help diagnose performance issues.
-
-- Additions to the object_ref table are now periodically committed
-  during pre_pack so that the work is not lost if pre_pack fails.
-
-- Modified the pack code to pack one transaction at a time and
-  release the commit lock frequently.  This should help large pack
-  operations.
-
-- Fixed buildout-based installation of the zodbconvert script.  Thanks to
-  Jim Fulton.
-
-
-Version 1.0.1
--------------
-
-- The speedtest script failed if run on a test database that has no tables.
-  Now the script creates the tables if needed.  Thanks to Flavio Coelho
-  for discovering this.
-
-- Reworked the auto-reconnect logic so that applications never see
-  temporary database disconnects if possible.  Thanks to Rigel Di Scala
-  for pointing out this issue.
-
-- Improved the log messages explaining database connection failures.
-
-- Moved poll_invalidations to the common adapter base class, reducing the
-  amount of code to maintain.
-
-
-Version 1.0
------------
-
-- Added a utility for converting between storages called zodbconvert.
-
-
-Version 1.0c1
--------------
-
-- The previous fix for non-ASCII characters was incorrect.  Now transaction
-  metadata is stored as raw bytes.  A schema migration is required; see
-  notes/migrate-1.0-beta.txt.
-
-- Integrated setuptools and made an egg.
-
-
-Version 1.0 beta
-----------------
-
-- Renamed to reflect expanding database support.
-
-- Added support for Oracle 10g.
-
-- Major overhaul with many scalability and reliability improvements,
-  particularly in the area of packing.
-
-- Moved to svn.zope.org and switched to ZPL 2.1.
-
-- Made two-phase commit optional in both Oracle and PostgreSQL.  They
-  both use commit_lock in such a way that the commit is not likely to
-  fail in the second phase.
-
-- Switched most database transaction isolation levels from serializable
-  to read committed.  It turns out that commit_lock already provides
-  the serializability guarantees we need, so it is safe to take advantage
-  of the potential speed gains.  The one major exception is the load
-  connection, which requires an unchanging view of the database.
-
-- Stored objects are now buffered in a database table rather than a file.
-
-- Stopped using the LISTEN and NOTIFY statements in PostgreSQL since
-  they are not strictly transactional in the sense we require.
-
-- Started using a prepared statement in PostgreSQL for getting the
-  newest transaction ID quickly.
-
-- Removed the code in the Oracle adapter for retrying connection attempts.
-  (It is better to just reconfigure Oracle.)
-
-- Added support for MySQL 5.0.
-
-- Added the poll_interval option.  It reduces the frequency of database
-  polls, but it also increases the potential for conflict errors on
-  servers with high write volume.
-
-- Implemented the storage iterator protocol, making it possible to copy
-  transactions to and from FileStorage and other RelStorage instances.
-
-- Fixed a bug that caused OIDs to be reused after importing transactions.
-  Added a corresponding test.
-
-- Made it possible to disable garbage collection during packing.
-  Exposed the option in zope.conf.
-
-- Valery Suhomlinov discovered a problem with non-ASCII data in transaction
-  metadata.  The problem has been fixed for all supported databases.
-
-
-PGStorage history
-=================
-
-Version 0.4
------------
-
-- Began using the PostgreSQL LISTEN and NOTIFY statements as a shortcut
-  for invalidation polling.
-
-- Removed the commit_order code.  The commit_order idea was intended to
-  allow concurrent commits, but that idea is a little too ambitious while
-  other more important ideas are being tested.  Something like it may
-  come later.
-
-- Improved connection management: only one database connection is
-  held continuously open per storage instance.
-
-- Reconnect to the database automatically.
-
-- Removed test mode.
-
-- Switched from using a ZODB.Connection subclass to a ZODB patch.  The
-  Connection class changes in subtle ways too often to subclass reliably;
-  a patch is much safer.
-
-- PostgreSQL 8.1 is now a dependency because PGStorage uses two phase commit.
-
-- Fixed an undo bug.  Symptom: attempting to examine the undo log revealed
-  broken pickles.  Cause: the extension field was not being wrapped in
-  psycopg2.Binary upon insert.  Solution: used psycopg2.Binary.
-  Unfortunately, this doesn't fix existing transactions people have
-  committed.  If anyone has any data to keep, fixing the old transactions
-  should be easy.
-
-- Moved from a private CVS repository to Sourceforge.
-  See http://pgstorage.sourceforge.net .  Also switched to the MIT license.
-
-- David Pratt added a basic getSize() implementation so that the Zope
-  management interface displays an estimate of the size of the database.
-
-- Turned PGStorage into a top-level package.  Python generally makes
-  top-level packages easier to install.
-
-
-Version 0.3
------------
-
-- Made compatible with Zope 3, although an undo bug apparently remains.
-
-
-Version 0.2
------------
-
-- Fixed concurrent commits, which were generating deadlocks.  Fixed by
-  adding a special table, "commit_lock", which is used for
-  synchronizing increments of commit_seq (but only at final commit.)
-  If you are upgrading from version 0.1, you need to change your
-  database using the 'psql' prompt:
-
-    create table commit_lock ();
-
-- Added speed tests and an OpenDocument spreadsheet comparing
-  FileStorage / ZEO with PGStorage.  PGStorage wins at reading objects
-  and writing a lot of small transactions, while FileStorage / ZEO
-  wins at writing big transactions.  Interestingly, they tie when
-  writing a RAM disk.
-

Copied: relstorage/tags/1.2.0b2/CHANGES.txt (from rev 99787, relstorage/trunk/CHANGES.txt)
===================================================================
--- relstorage/tags/1.2.0b2/CHANGES.txt	                        (rev 0)
+++ relstorage/tags/1.2.0b2/CHANGES.txt	2009-05-06 03:30:32 UTC (rev 99788)
@@ -0,0 +1,294 @@
+
+Version 1.2.0b2 (2009-05-05)
+----------------------------
+
+- RelStorage now implements IMVCCStorage, making it compatible with
+  ZODB 3.9.0b1 and above.
+
+- Removed two-phase commit support from the PostgreSQL adapter. The
+  feature turned out to be unnecessary.
+
+- Added MySQL 5.1.34 and above to the list of supportable databases.
+
+- Fixed minor test failures under Windows. Windows is now a supportable
+  platform.
+
+
+Version 1.1.3 (2009-02-04)
+--------------------------
+
+- In rare circumstances, ZODB can legitimately commit an object twice in a
+  single transaction.  Fixed RelStorage to accept that.
+
+- Auto reconnect to Oracle sometimes did not work because cx_Oracle was
+  raising a different kind of exception than expected.  Fixed.
+
+- Included LICENSE.txt in the source distribution.
+
+
+Version 1.1.2 (2009-01-27)
+--------------------------
+
+- When both cache-servers and poll-interval are set, we now poll the
+  cache for changes on every request.  This makes it possible to use
+  a high poll-interval to reduce the database polling burden, yet
+  every client can see changes immediately.
+
+- Added the pack-dry-run option, which causes pack operations to only
+  populate the pack tables with the list of objects and states to pack,
+  but not actually pack.
+
+- Refined the pack algorithm.  It was not removing as many object states
+  as it should have.  As a bonus, there is now a method of adapters called
+  fill_object_refs(), which could be useful for debugging.  It ensures the
+  object_ref table is fully populated.
+
+- Began using zc.buildout for development.
+
+- Increased automated test coverage.
+
+- Fixed KeyError reporting to not trip over a related KeyError while logging.
+
+
+Version 1.1.1 (2008-12-27)
+--------------------------
+
+- Worked around MySQL performance bugs in packing.  Used temporary
+  tables and another column in the pack_object table.  The
+  other databases may benefit from the optimization as well.
+
+- Applied an optimization using setinputsizes() to the Oracle code,
+  bringing write speed back up to where it was in version 1.0.
+
+
+Version 1.1 (2008-12-19)
+------------------------
+
+- Normalized poll-invalidation patches as Solaris' patch command would not
+  accept the current format. The patches now apply with:
+  patch -d lib/python/ZODB -p0 < poll-invalidation-1-zodb-3-X-X.patch
+
+- In MySQL, Use DROP TABLE IF EXISTS instead of TRUNCATE to clear 'temp_store'
+  because:
+
+  - TRUNCATE has one page of caveats in the MySQL documentation.
+  - TEMPORARY TABLEs have half a page of caveats when it comes to
+    replication.
+  - The end result is that 'temp_store' may not exist on the
+    replication slave at the exact same time(s) it exists on the
+    master.
+
+- Implemented the database size query in MySQL, based on a patch from
+  Kazuhiko Shiozaki.  Thanks!
+
+- Optimized Oracle object retrieval by causing BLOBs to be sent inline
+  when possible, based on a patch by Helge Tesdal.  By default, the
+  optimization is activated automatically when cx_Oracle 5 is used.
+
+- Updated the storage iterator code to be compatible with ZODB 3.9.
+  The RelStorage tests now pass with the shane-poll-invalidations branch
+  of ZODB 3.9.
+
+- Added a translation of README.txt to Brazilian Portuguese by
+  Rogerio Ferreira.  Thanks!
+
+
+Version 1.1c1
+-------------
+
+- Added optional memcache integration.  This is useful when the connection
+  to the relational database has high latency.
+
+- Made it possible to set the pack and memcache options in zope.conf.
+
+- Log more info when a KeyError occurs within RelStorage.
+
+
+Version 1.1b2
+-------------
+
+- Made the MySQL locks database-specific rather than server-wide.  This is
+  important for multi-database configurations.
+
+- In the PostgreSQL adapter, made the pack lock fall back to table locking
+  rather than advisory locks for PostgreSQL 8.1.
+
+- Changed a query for following object references (used during packing)
+  to work around a MySQL performance bug.  Thanks to Anton Stonor for
+  discovering this.
+
+
+Version 1.1b1
+-------------
+
+- Fixed the use of setup.py without setuptools.  Thanks to Chris Withers.
+
+- Fixed type coercion of the transaction extension field.  This fixes
+  an issue with converting databases.  Thanks to Kevin Smith for
+  discovering this.
+
+- Added logging to the pack code to help diagnose performance issues.
+
+- Additions to the object_ref table are now periodically committed
+  during pre_pack so that the work is not lost if pre_pack fails.
+
+- Modified the pack code to pack one transaction at a time and
+  release the commit lock frequently.  This should help large pack
+  operations.
+
+- Fixed buildout-based installation of the zodbconvert script.  Thanks to
+  Jim Fulton.
+
+
+Version 1.0.1
+-------------
+
+- The speedtest script failed if run on a test database that has no tables.
+  Now the script creates the tables if needed.  Thanks to Flavio Coelho
+  for discovering this.
+
+- Reworked the auto-reconnect logic so that applications never see
+  temporary database disconnects if possible.  Thanks to Rigel Di Scala
+  for pointing out this issue.
+
+- Improved the log messages explaining database connection failures.
+
+- Moved poll_invalidations to the common adapter base class, reducing the
+  amount of code to maintain.
+
+
+Version 1.0
+-----------
+
+- Added a utility for converting between storages called zodbconvert.
+
+
+Version 1.0c1
+-------------
+
+- The previous fix for non-ASCII characters was incorrect.  Now transaction
+  metadata is stored as raw bytes.  A schema migration is required; see
+  notes/migrate-1.0-beta.txt.
+
+- Integrated setuptools and made an egg.
+
+
+Version 1.0 beta
+----------------
+
+- Renamed to reflect expanding database support.
+
+- Added support for Oracle 10g.
+
+- Major overhaul with many scalability and reliability improvements,
+  particularly in the area of packing.
+
+- Moved to svn.zope.org and switched to ZPL 2.1.
+
+- Made two-phase commit optional in both Oracle and PostgreSQL.  They
+  both use commit_lock in such a way that the commit is not likely to
+  fail in the second phase.
+
+- Switched most database transaction isolation levels from serializable
+  to read committed.  It turns out that commit_lock already provides
+  the serializability guarantees we need, so it is safe to take advantage
+  of the potential speed gains.  The one major exception is the load
+  connection, which requires an unchanging view of the database.
+
+- Stored objects are now buffered in a database table rather than a file.
+
+- Stopped using the LISTEN and NOTIFY statements in PostgreSQL since
+  they are not strictly transactional in the sense we require.
+
+- Started using a prepared statement in PostgreSQL for getting the
+  newest transaction ID quickly.
+
+- Removed the code in the Oracle adapter for retrying connection attempts.
+  (It is better to just reconfigure Oracle.)
+
+- Added support for MySQL 5.0.
+
+- Added the poll_interval option.  It reduces the frequency of database
+  polls, but it also increases the potential for conflict errors on
+  servers with high write volume.
+
+- Implemented the storage iterator protocol, making it possible to copy
+  transactions to and from FileStorage and other RelStorage instances.
+
+- Fixed a bug that caused OIDs to be reused after importing transactions.
+  Added a corresponding test.
+
+- Made it possible to disable garbage collection during packing.
+  Exposed the option in zope.conf.
+
+- Valery Suhomlinov discovered a problem with non-ASCII data in transaction
+  metadata.  The problem has been fixed for all supported databases.
+
+
+PGStorage history
+=================
+
+Version 0.4
+-----------
+
+- Began using the PostgreSQL LISTEN and NOTIFY statements as a shortcut
+  for invalidation polling.
+
+- Removed the commit_order code.  The commit_order idea was intended to
+  allow concurrent commits, but that idea is a little too ambitious while
+  other more important ideas are being tested.  Something like it may
+  come later.
+
+- Improved connection management: only one database connection is
+  held continuously open per storage instance.
+
+- Reconnect to the database automatically.
+
+- Removed test mode.
+
+- Switched from using a ZODB.Connection subclass to a ZODB patch.  The
+  Connection class changes in subtle ways too often to subclass reliably;
+  a patch is much safer.
+
+- PostgreSQL 8.1 is now a dependency because PGStorage uses two phase commit.
+
+- Fixed an undo bug.  Symptom: attempting to examine the undo log revealed
+  broken pickles.  Cause: the extension field was not being wrapped in
+  psycopg2.Binary upon insert.  Solution: used psycopg2.Binary.
+  Unfortunately, this doesn't fix existing transactions people have
+  committed.  If anyone has any data to keep, fixing the old transactions
+  should be easy.
+
+- Moved from a private CVS repository to Sourceforge.
+  See http://pgstorage.sourceforge.net .  Also switched to the MIT license.
+
+- David Pratt added a basic getSize() implementation so that the Zope
+  management interface displays an estimate of the size of the database.
+
+- Turned PGStorage into a top-level package.  Python generally makes
+  top-level packages easier to install.
+
+
+Version 0.3
+-----------
+
+- Made compatible with Zope 3, although an undo bug apparently remains.
+
+
+Version 0.2
+-----------
+
+- Fixed concurrent commits, which were generating deadlocks.  Fixed by
+  adding a special table, "commit_lock", which is used for
+  synchronizing increments of commit_seq (but only at final commit.)
+  If you are upgrading from version 0.1, you need to change your
+  database using the 'psql' prompt:
+
+    create table commit_lock ();
+
+- Added speed tests and an OpenDocument spreadsheet comparing
+  FileStorage / ZEO with PGStorage.  PGStorage wins at reading objects
+  and writing a lot of small transactions, while FileStorage / ZEO
+  wins at writing big transactions.  Interestingly, they tie when
+  writing a RAM disk.
+

Deleted: relstorage/tags/1.2.0b2/setup.py
===================================================================
--- relstorage/trunk/setup.py	2009-05-06 03:17:45 UTC (rev 99785)
+++ relstorage/tags/1.2.0b2/setup.py	2009-05-06 03:30:32 UTC (rev 99788)
@@ -1,87 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""A backend for ZODB that stores pickles in a relational database."""
-
-VERSION = "1.2.0b1"
-
-# The choices for the Trove Development Status line:
-# Development Status :: 5 - Production/Stable
-# Development Status :: 4 - Beta
-# Development Status :: 3 - Alpha
-
-classifiers = """\
-Development Status :: 4 - Beta
-Intended Audience :: Developers
-License :: OSI Approved :: Zope Public License
-Programming Language :: Python
-Topic :: Database
-Topic :: Software Development :: Libraries :: Python Modules
-Operating System :: Microsoft :: Windows
-Operating System :: Unix
-"""
-
-import os
-try:
-    from setuptools import setup
-except ImportError:
-    from distutils.core import setup
-    setup_args = dict(
-        scripts=['relstorage/zodbconvert.py'],
-    )
-else:
-    setup_args = dict(
-        zip_safe=False,  # otherwise ZConfig can't see component.xml
-        install_requires=[
-            'ZODB3>=3.7.0',
-            'zope.interface',
-            ],
-        extras_require={
-            'mysql':      ['MySQL-python>=1.2.2'],
-            'postgresql': ['psycopg2>=2.0'],
-            'oracle':     ['cx_Oracle>=4.3.1'],
-            },
-        entry_points = {'console_scripts': [
-            'zodbconvert = relstorage.zodbconvert:main',
-            ]},
-        test_suite='relstorage.tests.alltests.make_suite',
-    )
-
-doclines = __doc__.split("\n")
-
-def read_file(*path):
-    base_dir = os.path.dirname(__file__)
-    file_path = (base_dir, ) + tuple(path)
-    return file(os.path.join(*file_path)).read()
-
-setup(
-    name="RelStorage",
-    version=VERSION,
-    maintainer="Shane Hathaway",
-    maintainer_email="shane at hathawaymix.org",
-    url="http://pypi.python.org/pypi/RelStorage",
-    packages=['relstorage', 'relstorage.adapters', 'relstorage.tests'],
-    package_data={
-        'relstorage': ['component.xml'],
-    },
-    license="ZPL 2.1",
-    platforms=["any"],
-    description=doclines[0],
-    classifiers=filter(None, classifiers.split("\n")),
-    long_description = (
-        read_file("README.txt") + "\n\n" +
-        "Change History\n" +
-        "==============\n\n" +
-        read_file("CHANGES.txt")),
-    **setup_args
-    )

Copied: relstorage/tags/1.2.0b2/setup.py (from rev 99787, relstorage/trunk/setup.py)
===================================================================
--- relstorage/tags/1.2.0b2/setup.py	                        (rev 0)
+++ relstorage/tags/1.2.0b2/setup.py	2009-05-06 03:30:32 UTC (rev 99788)
@@ -0,0 +1,87 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""A backend for ZODB that stores pickles in a relational database."""
+
+VERSION = "1.2.0b2"
+
+# The choices for the Trove Development Status line:
+# Development Status :: 5 - Production/Stable
+# Development Status :: 4 - Beta
+# Development Status :: 3 - Alpha
+
+classifiers = """\
+Development Status :: 4 - Beta
+Intended Audience :: Developers
+License :: OSI Approved :: Zope Public License
+Programming Language :: Python
+Topic :: Database
+Topic :: Software Development :: Libraries :: Python Modules
+Operating System :: Microsoft :: Windows
+Operating System :: Unix
+"""
+
+import os
+try:
+    from setuptools import setup
+except ImportError:
+    from distutils.core import setup
+    setup_args = dict(
+        scripts=['relstorage/zodbconvert.py'],
+    )
+else:
+    setup_args = dict(
+        zip_safe=False,  # otherwise ZConfig can't see component.xml
+        install_requires=[
+            'ZODB3>=3.7.0',
+            'zope.interface',
+            ],
+        extras_require={
+            'mysql':      ['MySQL-python>=1.2.2'],
+            'postgresql': ['psycopg2>=2.0'],
+            'oracle':     ['cx_Oracle>=4.3.1'],
+            },
+        entry_points = {'console_scripts': [
+            'zodbconvert = relstorage.zodbconvert:main',
+            ]},
+        test_suite='relstorage.tests.alltests.make_suite',
+    )
+
+doclines = __doc__.split("\n")
+
+def read_file(*path):
+    base_dir = os.path.dirname(__file__)
+    file_path = (base_dir, ) + tuple(path)
+    return file(os.path.join(*file_path)).read()
+
+setup(
+    name="RelStorage",
+    version=VERSION,
+    maintainer="Shane Hathaway",
+    maintainer_email="shane at hathawaymix.org",
+    url="http://pypi.python.org/pypi/RelStorage",
+    packages=['relstorage', 'relstorage.adapters', 'relstorage.tests'],
+    package_data={
+        'relstorage': ['component.xml'],
+    },
+    license="ZPL 2.1",
+    platforms=["any"],
+    description=doclines[0],
+    classifiers=filter(None, classifiers.split("\n")),
+    long_description = (
+        read_file("README.txt") + "\n\n" +
+        "Change History\n" +
+        "==============\n\n" +
+        read_file("CHANGES.txt")),
+    **setup_args
+    )



More information about the Checkins mailing list