[Checkins] SVN: ZEO/trunk/ ZEO was moved to Github a while ago; there's even one commit not present in SVN

Marius Gedminas cvs-admin at zope.org
Fri Mar 1 15:55:41 UTC 2013


Log message for revision 129970:
  ZEO was moved to Github a while ago; there's even one commit not present in SVN

Changed:
  D   ZEO/trunk/CHANGES.txt
  D   ZEO/trunk/COPYING
  D   ZEO/trunk/COPYRIGHT.txt
  D   ZEO/trunk/LICENSE.txt
  A   ZEO/trunk/MOVED_TO_GITHUB
  D   ZEO/trunk/README.txt
  D   ZEO/trunk/bootstrap.py
  D   ZEO/trunk/buildout.cfg
  D   ZEO/trunk/doc/
  D   ZEO/trunk/ez_setup.py
  D   ZEO/trunk/log.ini
  D   ZEO/trunk/release.py
  D   ZEO/trunk/setup.py
  D   ZEO/trunk/src/

-=-
Deleted: ZEO/trunk/CHANGES.txt
===================================================================
--- ZEO/trunk/CHANGES.txt	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/CHANGES.txt	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,19 +0,0 @@
-CHANGES
-=======
-
-4.0.0a1 (2012-11-19)
---------------------
-
-First (in a long time) separate ZEO release.
-
-Since ZODB 3.10.5:
-
-- Storage servers now emit Serving and Closed events so subscribers
-  can discover addresses when dynamic port assignment (bind to port 0)
-  is used. This could, for example, be used to update address
-  information in a ZooKeeper database.
-
-- Client storages have a method, new_addr, that can be used to change
-  the server address(es). This can be used, for example, to update a
-  dynamically determined server address from information in a
-  ZooKeeper database.

Deleted: ZEO/trunk/COPYING
===================================================================
--- ZEO/trunk/COPYING	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/COPYING	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,5 +0,0 @@
-See:
-
- - the copyright notice in: COPYRIGHT.txt
-
- - The Zope Public License in LICENSE.txt

Deleted: ZEO/trunk/COPYRIGHT.txt
===================================================================
--- ZEO/trunk/COPYRIGHT.txt	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/COPYRIGHT.txt	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1 +0,0 @@
-Zope Foundation and Contributors
\ No newline at end of file

Deleted: ZEO/trunk/LICENSE.txt
===================================================================
--- ZEO/trunk/LICENSE.txt	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/LICENSE.txt	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,44 +0,0 @@
-Zope Public License (ZPL) Version 2.1
-
-A copyright notice accompanies this license document that identifies the
-copyright holders.
-
-This license has been certified as open source. It has also been designated as
-GPL compatible by the Free Software Foundation (FSF).
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions in source code must retain the accompanying copyright
-notice, this list of conditions, and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the accompanying copyright
-notice, this list of conditions, and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-3. Names of the copyright holders must not be used to endorse or promote
-products derived from this software without prior written permission from the
-copyright holders.
-
-4. The right to distribute this software or to use it for any purpose does not
-give you the right to use Servicemarks (sm) or Trademarks (tm) of the
-copyright
-holders. Use of them is covered by separate agreement with the copyright
-holders.
-
-5. If any files are modified, you must cause the modified files to carry
-prominent notices stating that you changed the files and the date of any
-change.
-
-Disclaimer
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Added: ZEO/trunk/MOVED_TO_GITHUB
===================================================================
--- ZEO/trunk/MOVED_TO_GITHUB	                        (rev 0)
+++ ZEO/trunk/MOVED_TO_GITHUB	2013-03-01 15:55:41 UTC (rev 129970)
@@ -0,0 +1 @@
+See https://github.com/zopefoundation/ZEO

Deleted: ZEO/trunk/README.txt
===================================================================
--- ZEO/trunk/README.txt	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/README.txt	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,483 +0,0 @@
-===
-ZEO
-===
-
-ZEO provides a client-server storage implementation for ZODB.
-
-.. contents::
-
-Usage
-=====
-
-ZEO is a client-server system for sharing a single storage among many
-clients.  When you use ZEO, the storage is opened in the ZEO server
-process.  Client programs connect to this process using a ZEO
-ClientStorage.  ZEO provides a consistent view of the database to all
-clients.  The ZEO client and server communicate using a custom RPC
-protocol layered on top of TCP.
-
-Options
--------
-
-There are several configuration options that affect the behavior of a
-ZEO server.  This section describes how a few of these features
-working.  Subsequent sections describe how to configure every option.
-
-Client cache
-~~~~~~~~~~~~
-
-Each ZEO client keeps an on-disk cache of recently used objects to
-avoid fetching those objects from the server each time they are
-requested.  It is usually faster to read the objects from disk than it
-is to fetch them over the network.  The cache can also provide
-read-only copies of objects during server outages.
-
-The cache may be persistent or transient. If the cache is persistent,
-then the cache files are retained for use after process restarts. A
-non-persistent cache uses temporary files that are removed when the
-client storage is closed.
-
-The client cache size is configured when the ClientStorage is created.
-The default size is 20MB, but the right size depends entirely on the
-particular database.  Setting the cache size too small can hurt
-performance, but in most cases making it too big just wastes disk
-space.  The document "Client cache tracing" describes how to collect a
-cache trace that can be used to determine a good cache size.
-
-ZEO uses invalidations for cache consistency.  Every time an object is
-modified, the server sends a message to each client informing it of
-the change.  The client will discard the object from its cache when it
-receives an invalidation.  These invalidations are often batched.
-
-Each time a client connects to a server, it must verify that its cache
-contents are still valid.  (It did not receive any invalidation
-messages while it was disconnected.)  There are several mechanisms
-used to perform cache verification.  In the worst case, the client
-sends the server a list of all objects in its cache along with their
-timestamps; the server sends back an invalidation message for each
-stale object.  The cost of verification is one drawback to making the
-cache too large.
-
-Note that every time a client crashes or disconnects, it must verify
-its cache.  Every time a server crashes, all of its clients must
-verify their caches.
-
-The cache verification process is optimized in two ways to eliminate
-costs when restarting clients and servers.  Each client keeps the
-timestamp of the last invalidation message it has seen.  When it
-connects to the server, it checks to see if any invalidation messages
-were sent after that timestamp.  If not, then the cache is up-to-date
-and no further verification occurs.  The other optimization is the
-invalidation queue, described below.
-
-Invalidation queue
-~~~~~~~~~~~~~~~~~~
-
-The ZEO server keeps a queue of recent invalidation messages in
-memory.  When a client connects to the server, it sends the timestamp
-of the most recent invalidation message it has received.  If that
-message is still in the invalidation queue, then the server sends the
-client all the missing invalidations.  This is often cheaper than
-perform full cache verification.
-
-The default size of the invalidation queue is 100.  If the
-invalidation queue is larger, it will be more likely that a client
-that reconnects will be able to verify its cache using the queue.  On
-the other hand, a large queue uses more memory on the server to store
-the message.  Invalidation messages tend to be small, perhaps a few
-hundred bytes each on average; it depends on the number of objects
-modified by a transaction.
-
-Transaction timeouts
-~~~~~~~~~~~~~~~~~~~~
-
-A ZEO server can be configured to timeout a transaction if it takes
-too long to complete.  Only a single transaction can commit at a time;
-so if one transaction takes too long, all other clients will be
-delayed waiting for it.  In the extreme, a client can hang during the
-commit process.  If the client hangs, the server will be unable to
-commit other transactions until it restarts.  A well-behaved client
-will not hang, but the server can be configured with a transaction
-timeout to guard against bugs that cause a client to hang.
-
-If any transaction exceeds the timeout threshold, the client's
-connection to the server will be closed and the transaction aborted.
-Once the transaction is aborted, the server can start processing other
-client's requests.  Most transactions should take very little time to
-commit.  The timer begins for a transaction after all the data has
-been sent to the server.  At this point, the cost of commit should be
-dominated by the cost of writing data to disk; it should be unusual
-for a commit to take longer than 1 second.  A transaction timeout of
-30 seconds should tolerate heavy load and slow communications between
-client and server, while guarding against hung servers.
-
-When a transaction times out, the client can be left in an awkward
-position.  If the timeout occurs during the second phase of the two
-phase commit, the client will log a panic message.  This should only
-cause problems if the client transaction involved multiple storages.
-If it did, it is possible that some storages committed the client
-changes and others did not.
-
-Connection management
-~~~~~~~~~~~~~~~~~~~~~
-
-A ZEO client manages its connection to the ZEO server.  If it loses
-the connection, it attempts to reconnect.  While
-it is disconnected, it can satisfy some reads by using its cache.
-
-The client can be configured to wait for a connection when it is created
-or to return immediately and provide data from its persistent cache.
-It usually simplifies programming to have the client wait for a
-connection on startup.
-
-When the client is disconnected, it polls periodically to see if the
-server is available.  The rate at which it polls is configurable.
-
-The client can be configured with multiple server addresses.  In this
-case, it assumes that each server has identical content and will use
-any server that is available.  It is possible to configure the client
-to accept a read-only connection to one of these servers if no
-read-write connection is available.  If it has a read-only connection,
-it will continue to poll for a read-write connection.  This feature
-supports the Zope Replication Services product,
-http://www.zope.com/Products/ZopeProducts/ZRS.  In general, it could
-be used to with a system that arranges to provide hot backups of
-servers in the case of failure.
-
-If a single address resolves to multiple IPv4 or IPv6 addresses,
-the client will connect to an arbitrary of these addresses.
-
-Authentication
-~~~~~~~~~~~~~~
-
-ZEO supports optional authentication of client and server using a
-password scheme similar to HTTP digest authentication (RFC 2069).  It
-is a simple challenge-response protocol that does not send passwords
-in the clear, but does not offer strong security.  The RFC discusses
-many of the limitations of this kind of protocol.  Note that this
-feature provides authentication only.  It does not provide encryption
-or confidentiality.
-
-The challenge-response also produces a session key that is used to
-generate message authentication codes for each ZEO message.  This
-should prevent session hijacking.
-
-Guard the password database as if it contained plaintext passwords.
-It stores the hash of a username and password.  This does not expose
-the plaintext password, but it is sensitive nonetheless.  An attacker
-with the hash can impersonate the real user.  This is a limitation of
-the simple digest scheme.
-
-The authentication framework allows third-party developers to provide
-new authentication modules.
-
-Installing software
--------------------
-
-ZEO is installed like other Python packages using pip, easy_install,
-buildout, etc.
-
-Configuring server
-------------------
-
-The script ``runzeo`` runs the ZEO server.  The server can be
-configured using command-line arguments or a config file.  This
-document only describes the config file.  Run runzeo.py
--h to see the list of command-line arguments.
-
-The ``runzeo`` script imports the ZEO package.  ZEO must either be
-installed in Python's site-packages directory or be in a directory on
-PYTHONPATH.
-
-The configuration file specifies the underlying storage the server
-uses, the address it binds, and a few other optional parameters.
-An example is::
-
-    <zeo>
-      address zeo.example.com:8090
-    </zeo>
-
-    <filestorage>
-      path /var/tmp/Data.fs
-    </filestorage>
-
-    <eventlog>
-      <logfile>
-        path /var/tmp/zeo.log
-        format %(asctime)s %(message)s
-      </logfile>
-    </eventlog>
-
-This file configures a server to use a FileStorage from
-``/var/tmp/Data.fs``.  The server listens on port 8090 of
-zeo.example.com.  The ZEO server writes its log file to
-/var/tmp/zeo.log and uses a custom format for each line.  Assuming the
-example configuration it stored in zeo.config, you can run a server by
-typing::
-
-    python runzeo -C zeo.config
-
-A configuration file consists of a <zeo> section and a storage
-section, where the storage section can use any of the valid ZODB
-storage types.  It may also contain an eventlog configuration.  See
-the document "Configuring a ZODB database" for more information about
-configuring storages and eventlogs.
-
-The zeo section must list the address.  All the other keys are
-optional.
-
-address
-        The address at which the server should listen.  This can be in
-        the form 'host:port' to signify a TCP/IP connection or a
-        pathname string to signify a Unix domain socket connection (at
-        least one '/' is required).  A hostname may be a DNS name or a
-        dotted IP address.  If the hostname is omitted, the platform's
-        default behavior is used when binding the listening socket (''
-        is passed to socket.bind() as the hostname portion of the
-        address).
-
-read-only
-        Flag indicating whether the server should operate in read-only
-        mode.  Defaults to false.  Note that even if the server is
-        operating in writable mode, individual storages may still be
-        read-only.  But if the server is in read-only mode, no write
-        operations are allowed, even if the storages are writable.  Note
-        that pack() is considered a read-only operation.
-
-invalidation-queue-size
-        The storage server keeps a queue of the objects modified by the
-        last N transactions, where N == invalidation_queue_size.  This
-        queue is used to speed client cache verification when a client
-        disconnects for a short period of time.
-
-transaction-timeout
-        The maximum amount of time to wait for a transaction to commit
-        after acquiring the storage lock, specified in seconds.  If the
-        transaction takes too long, the client connection will be closed
-        and the transaction aborted.
-
-authentication-protocol
-        The name of the protocol used for authentication.  The
-        only protocol provided with ZEO is "digest," but extensions
-        may provide other protocols.
-
-authentication-database
-        The path of the database containing authentication credentials.
-
-authentication-realm
-        The authentication realm of the server.  Some authentication
-        schemes use a realm to identify the logic set of usernames
-        that are accepted by this server.
-
-Configuring clients
--------------------
-
-The ZEO client can also be configured using ZConfig.  The ZODB.config
-module provides several function for opening a storage based on its
-configuration.
-
-- ZODB.config.storageFromString()
-- ZODB.config.storageFromFile()
-- ZODB.config.storageFromURL()
-
-The ZEO client configuration requires the server address be
-specified.  Everything else is optional.  An example configuration is::
-
-    <zeoclient>
-      server zeo.example.com:8090
-    </zeoclient>
-
-The other configuration options are listed below.
-
-cache-size
-        The maximum size of the client cache, in bytes.
-
-name
-        The storage name.  If unspecified, the address of the server
-        will be used as the name.
-
-client
-        Enables persistent cache files.  The string passed here is
-        used to construct the cache filenames.  If it is not
-        specified, the client creates a temporary cache that will
-        only be used by the current object.
-
-var
-        The directory where persistent cache files are stored.  By
-        default cache files, if they are persistent, are stored in 
-        the current directory.
-
-min-disconnect-poll
-        The minimum delay in seconds between attempts to connect to
-        the server, in seconds.  Defaults to 5 seconds.
-
-max-disconnect-poll
-        The maximum delay in seconds between attempts to connect to
-        the server, in seconds.  Defaults to 300 seconds.
-
-wait
-        A boolean indicating whether the constructor should wait
-        for the client to connect to the server and verify the cache
-        before returning.  The default is true.
-
-read-only
-        A flag indicating whether this should be a read-only storage,
-        defaulting to false (i.e. writing is allowed by default).
-
-read-only-fallback
-        A flag indicating whether a read-only remote storage should be
-        acceptable as a fallback when no writable storages are
-        available.  Defaults to false.  At most one of read_only and
-        read_only_fallback should be true.
-
-realm
-        The authentication realm of the server.  Some authentication
-        schemes use a realm to identify the logic set of usernames
-        that are accepted by this server.
-
-A ZEO client can also be created by calling the ClientStorage
-constructor explicitly.  For example::
-
-    from ZEO.ClientStorage import ClientStorage
-    storage = ClientStorage(("zeo.example.com", 8090))
-
-Running the ZEO server as a daemon
-----------------------------------
-
-In an operational setting, you will want to run the ZEO server a
-daemon process that is restarted when it dies.  The zdaemon package
-provides two tools for running daemons: zdrun.py and zdctl.py. You can
-find zdaemon and it's documentation at
-http://pypi.python.org/pypi/zdaemon.
-
-Rotating log files
-~~~~~~~~~~~~~~~~~~
-
-ZEO will re-initialize its logging subsystem when it receives a
-SIGUSR2 signal.  If you are using the standard event logger, you
-should first rename the log file and then send the signal to the
-server.  The server will continue writing to the renamed log file
-until it receives the signal.  After it receives the signal, the
-server will create a new file with the old name and write to it.
-
-Tools
------
-
-There are a few scripts that may help running a ZEO server.  The
-zeopack script connects to a server and packs the storage.  It can
-be run as a cron job.  The zeopasswd.py script
-manages a ZEO servers password database.
-
-Diagnosing problems
--------------------
-
-If an exception occurs on the server, the server will log a traceback
-and send an exception to the client.  The traceback on the client will
-show a ZEO protocol library as the source of the error.  If you need
-to diagnose the problem, you will have to look in the server log for
-the rest of the traceback.
-
-Compatibility
-=============
-
-ZEO 4.0.0 requires Python 2.6 or later.
-
-Note --
-   When using ZEO and upgrading from Python 2.4, you need to upgrade
-   clients and servers at the same time, or upgrade clients first and
-   then servers.  Clients running Python 2.5 or 2.6 will work with
-   servers running Python 2.4.  Clients running Python 2.4 won't work
-   properly with servers running Python 2.5 or later due to changes in
-   the way Python implements exceptions.
-
-For a long time ZEO has been distributes with ZODB.  ZEO 4 is
-is now maintained as a separate project.
-
-ZEO clients from ZODB 3.2 on can talk to ZEO 4.0 servers.
-ZEO 4.0 clients  talk to ZODB 3.8, 3.9, and 3.10 and ZEO 4.0 servers.
-
-Note --
-   ZEO 4.0 servers don't support undo for clients older than ZODB 3.10.
-
-Testing for downloaders
-=======================
-
-You can run the tests with::
-
-  python setup.py test
-
-however, there's an issue with getting the dependencies installed
-propely in a single run.  If the first run fails installing
-dependencies, try running the above command a second time.
-
-Testing for Developers
-======================
-
-The ZEO checkouts are `buildouts <http://www.python.org/pypi/zc.buildout>`_.
-When working from a ZODB checkout, first run the bootstrap.py script
-to initialize the buildout:
-
-    % python bootstrap.py
-
-and then use the buildout script to build ZODB and gather the dependencies:
-
-    % bin/buildout
-
-This creates a test script:
-
-    % bin/test -v
-
-This command will run all the tests, printing a single dot for each
-test.  When it finishes, it will print a test summary.  The exact
-number of tests can vary depending on platform and available
-third-party libraries.::
-
-    Ran 1182 tests in 241.269s
-
-    OK
-
-The test script has many more options.  Use the ``-h`` or ``--help``
-options to see a file list of options.  The default test suite omits
-several tests that depend on third-party software or that take a long
-time to run.  To run all the available tests use the ``--all`` option.
-Running all the tests takes much longer.::
-
-    Ran 1561 tests in 1461.557s
-
-    OK
-
-More information
-================
-
-For more information on ZEO, see http://zodb.org
-
-There is a Mailman mailing list in place to discuss all issues related
-to ZODB, including ZEO.  You can send questions to
-
-    zodb-dev at zope.org
-
-or subscribe at
-
-    http://lists.zope.org/mailman/listinfo/zodb-dev
-
-and view its archives at
-
-    http://lists.zope.org/pipermail/zodb-dev
-
-Note that Zope mailing lists have a subscriber-only posting policy.
-
-Bugs and Patches
-================
-
-Bug reports and patches should be added to the Launchpad:
-
-    https://launchpad.net/zodb
-
-
-..
-   Local Variables:
-   mode: indented-text
-   indent-tabs-mode: nil
-   sentence-end-double-space: t
-   fill-column: 70
-   End:

Deleted: ZEO/trunk/bootstrap.py
===================================================================
--- ZEO/trunk/bootstrap.py	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/bootstrap.py	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,66 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 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.
-#
-##############################################################################
-"""Bootstrap a buildout-based project
-
-Simply run this script in a directory containing a buildout.cfg.
-The script accepts buildout command-line options, so you can
-use the -c option to specify an alternate configuration file.
-"""
-
-import os, shutil, sys, tempfile, urllib2
-
-tmpeggs = tempfile.mkdtemp()
-
-ez = {}
-exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
-                     ).read() in ez
-ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
-
-import pkg_resources
-
-is_jython = sys.platform.startswith('java')
-
-if is_jython:
-    import subprocess
-
-cmd = 'from setuptools.command.easy_install import main; main()'
-if sys.platform == 'win32':
-    cmd = '"%s"' % cmd # work around spawn lamosity on windows
-
-ws = pkg_resources.working_set
-
-if is_jython:
-    assert subprocess.Popen(
-    [sys.executable] + ['-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout'],
-    env = dict(os.environ,
-          PYTHONPATH=
-          ws.find(pkg_resources.Requirement.parse('setuptools')).location
-          ),
-    ).wait() == 0
-
-else:
-    assert os.spawnle(
-        os.P_WAIT, sys.executable, sys.executable,
-        '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
-        dict(os.environ,
-            PYTHONPATH=
-            ws.find(pkg_resources.Requirement.parse('setuptools')).location
-            ),
-        ) == 0
-
-ws.add_entry(tmpeggs)
-ws.require('zc.buildout')
-import zc.buildout.buildout
-zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
-shutil.rmtree(tmpeggs)

Deleted: ZEO/trunk/buildout.cfg
===================================================================
--- ZEO/trunk/buildout.cfg	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/buildout.cfg	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,26 +0,0 @@
-[buildout]
-develop = .
-parts =
-    test
-    scripts
-versions = versions
-
-[versions]
-zc.recipe.testrunner = 1.3.0
-
-[test]
-recipe = zc.recipe.testrunner
-eggs =
-    ZEO [test]
-initialization =
-  import os, tempfile
-  try: os.mkdir('tmp')
-  except: pass
-  tempfile.tempdir = os.path.abspath('tmp')
-defaults = ['--all']
-
-[scripts]
-recipe = zc.recipe.egg
-eggs =
-    ZEO [test]
-interpreter = py

Deleted: ZEO/trunk/ez_setup.py
===================================================================
--- ZEO/trunk/ez_setup.py	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/ez_setup.py	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,284 +0,0 @@
-#!python
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from ez_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import sys
-DEFAULT_VERSION = "0.6c11"
-DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
-
-md5_data = {
-    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
-    'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
-    'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
-    'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
-    'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
-    'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
-    'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
-    'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
-    'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
-    'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
-    'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090',
-    'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4',
-    'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7',
-    'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5',
-    'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de',
-    'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b',
-    'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2',
-    'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086',
-    'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
-    'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
-    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
-    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
-    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
-    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
-    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
-    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
-    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
-    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
-    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
-    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
-    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
-    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
-    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
-    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
-    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
-    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
-    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
-    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
-    'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
-    'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
-    'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
-    'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
-}
-
-import sys, os
-try: from hashlib import md5
-except ImportError: from md5 import md5
-
-def _validate_md5(egg_name, data):
-    if egg_name in md5_data:
-        digest = md5(data).hexdigest()
-        if digest != md5_data[egg_name]:
-            print >>sys.stderr, (
-                "md5 validation of %s failed!  (Possible download problem?)"
-                % egg_name
-            )
-            sys.exit(2)
-    return data
-
-def use_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    download_delay=15
-):
-    """Automatically find/download setuptools and make it available on sys.path
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end with
-    a '/').  `to_dir` is the directory where setuptools will be downloaded, if
-    it is not already available.  If `download_delay` is specified, it should
-    be the number of seconds that will be paused before initiating a download,
-    should one be required.  If an older version of setuptools is installed,
-    this routine will print a message to ``sys.stderr`` and raise SystemExit in
-    an attempt to abort the calling script.
-    """
-    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
-    def do_download():
-        egg = download_setuptools(version, download_base, to_dir, download_delay)
-        sys.path.insert(0, egg)
-        import setuptools; setuptools.bootstrap_install_from = egg
-    try:
-        import pkg_resources
-    except ImportError:
-        return do_download()       
-    try:
-        pkg_resources.require("setuptools>="+version); return
-    except pkg_resources.VersionConflict, e:
-        if was_imported:
-            print >>sys.stderr, (
-            "The required version of setuptools (>=%s) is not available, and\n"
-            "can't be installed while this script is running. Please install\n"
-            " a more recent version first, using 'easy_install -U setuptools'."
-            "\n\n(Currently using %r)"
-            ) % (version, e.args[0])
-            sys.exit(2)
-    except pkg_resources.DistributionNotFound:
-        pass
-
-    del pkg_resources, sys.modules['pkg_resources']    # reload ok
-    return do_download()
-
-def download_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    delay = 15
-):
-    """Download setuptools from a specified location and return its filename
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end
-    with a '/'). `to_dir` is the directory where the egg will be downloaded.
-    `delay` is the number of seconds to pause before an actual download attempt.
-    """
-    import urllib2, shutil
-    egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
-    url = download_base + egg_name
-    saveto = os.path.join(to_dir, egg_name)
-    src = dst = None
-    if not os.path.exists(saveto):  # Avoid repeated downloads
-        try:
-            from distutils import log
-            if delay:
-                log.warn("""
----------------------------------------------------------------------------
-This script requires setuptools version %s to run (even to display
-help).  I will attempt to download it for you (from
-%s), but
-you may need to enable firewall access for this script first.
-I will start the download in %d seconds.
-
-(Note: if this machine does not have network access, please obtain the file
-
-   %s
-
-and place it in this directory before rerunning this script.)
----------------------------------------------------------------------------""",
-                    version, download_base, delay, url
-                ); from time import sleep; sleep(delay)
-            log.warn("Downloading %s", url)
-            src = urllib2.urlopen(url)
-            # Read/write all in one block, so we don't create a corrupt file
-            # if the download is interrupted.
-            data = _validate_md5(egg_name, src.read())
-            dst = open(saveto,"wb"); dst.write(data)
-        finally:
-            if src: src.close()
-            if dst: dst.close()
-    return os.path.realpath(saveto)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-def main(argv, version=DEFAULT_VERSION):
-    """Install or upgrade setuptools and EasyInstall"""
-    try:
-        import setuptools
-    except ImportError:
-        egg = None
-        try:
-            egg = download_setuptools(version, delay=0)
-            sys.path.insert(0,egg)
-            from setuptools.command.easy_install import main
-            return main(list(argv)+[egg])   # we're done here
-        finally:
-            if egg and os.path.exists(egg):
-                os.unlink(egg)
-    else:
-        if setuptools.__version__ == '0.0.1':
-            print >>sys.stderr, (
-            "You have an obsolete version of setuptools installed.  Please\n"
-            "remove it from your system entirely before rerunning this script."
-            )
-            sys.exit(2)
-
-    req = "setuptools>="+version
-    import pkg_resources
-    try:
-        pkg_resources.require(req)
-    except pkg_resources.VersionConflict:
-        try:
-            from setuptools.command.easy_install import main
-        except ImportError:
-            from easy_install import main
-        main(list(argv)+[download_setuptools(delay=0)])
-        sys.exit(0) # try to force an exit
-    else:
-        if argv:
-            from setuptools.command.easy_install import main
-            main(argv)
-        else:
-            print "Setuptools version",version,"or greater has been installed."
-            print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
-
-def update_md5(filenames):
-    """Update our built-in md5 registry"""
-
-    import re
-
-    for name in filenames:
-        base = os.path.basename(name)
-        f = open(name,'rb')
-        md5_data[base] = md5(f.read()).hexdigest()
-        f.close()
-
-    data = ["    %r: %r,\n" % it for it in md5_data.items()]
-    data.sort()
-    repl = "".join(data)
-
-    import inspect
-    srcfile = inspect.getsourcefile(sys.modules[__name__])
-    f = open(srcfile, 'rb'); src = f.read(); f.close()
-
-    match = re.search("\nmd5_data = {\n([^}]+)}", src)
-    if not match:
-        print >>sys.stderr, "Internal error!"
-        sys.exit(2)
-
-    src = src[:match.start(1)] + repl + src[match.end(1):]
-    f = open(srcfile,'w')
-    f.write(src)
-    f.close()
-
-
-if __name__=='__main__':
-    if len(sys.argv)>2 and sys.argv[1]=='--md5update':
-        update_md5(sys.argv[2:])
-    else:
-        main(sys.argv[1:])
-
-
-
-
-
-

Deleted: ZEO/trunk/log.ini
===================================================================
--- ZEO/trunk/log.ini	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/log.ini	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,32 +0,0 @@
-# This file configures the logging module for the test harness:
-# critical errors are logged to testing.log; everything else is
-# ignored.
-
-# Documentation for the file format is at
-# http://www.red-dove.com/python_logging.html#config
-
-[logger_root]
-level=CRITICAL
-handlers=normal
-
-[handler_normal]
-class=FileHandler
-level=NOTSET
-formatter=common
-args=('testing.log', 'a')
-filename=testing.log
-mode=a
-
-[formatter_common]
-format=------
-       %(asctime)s %(levelname)s %(name)s %(message)s
-datefmt=%Y-%m-%dT%H:%M:%S
-
-[loggers]
-keys=root
-
-[handlers]
-keys=normal
-
-[formatters]
-keys=common

Deleted: ZEO/trunk/release.py
===================================================================
--- ZEO/trunk/release.py	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/release.py	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,81 +0,0 @@
-#! /usr/bin/env python
-"""Update version numbers and release dates for the next release.
-
-usage: release.py version date
-
-version should be a string like "3.2.0c1"
-date should be a string like "23-Sep-2003"
-
-The following files are updated:
-    - setup.py
-    - NEWS.txt
-    - doc/guide/zodb.tex
-    - src/ZEO/__init__.py
-    - src/ZEO/version.txt
-    - src/ZODB/__init__.py
-"""
-
-import fileinput
-import os
-import re
-
-# In file filename, replace the first occurrence of regexp pat with
-# string repl.
-def replace(filename, pat, repl):
-    from sys import stderr as e # fileinput hijacks sys.stdout
-    foundone = False
-    for line in fileinput.input([filename], inplace=True, backup="~"):
-        if foundone:
-            print line,
-        else:
-            match = re.search(pat, line)
-            if match is not None:
-                foundone = True
-
-                new = re.sub(pat, repl, line)
-                print new,
-
-                print >> e, "In %s, replaced:" % filename
-                print >> e, "   ", repr(line)
-                print >> e, "   ", repr(new)
-
-            else:
-                print line,
-
-    if not foundone:
-        print >> e, "*" * 60, "Oops!"
-        print >> e, "    Failed to find %r in %r" % (pat, filename)
-
-# Nothing in our codebase cares about ZEO/version.txt.  Jeremy said
-# someone asked for it so that a shell script could read up the ZEO
-# version easily.
-# Before ZODB 3.4, the ZEO version was one smaller than the ZODB version;
-# e.g., ZEO 2.2.7 shipped with ZODB 3.2.7.  Now ZEO and ZODB share their
-# version number.
-def write_zeoversion(path, version):
-    f = open(path, "w")
-    print >> f, version
-    f.close()
-
-def main(args):
-    version, date = args
-
-    replace("setup.py",
-            r'^VERSION = "\S+"$',
-            'VERSION = "%s"' % version)
-    replace("src/ZODB/__init__.py",
-            r'__version__ = "\S+"',
-            '__version__ = "%s"' % version)
-    replace("src/ZEO/__init__.py",
-            r'version = "\S+"',
-            'version = "%s"' % version)
-    write_zeoversion("src/ZEO/version.txt", version)
-    replace("NEWS.txt",
-            r"^Release date: .*",
-            "Release date: %s" % date)
-    replace("doc/guide/zodb.tex",
-            r"release{\S+}",
-            "release{%s}" % version)
-if __name__ == "__main__":
-    import sys
-    main(sys.argv[1:])

Deleted: ZEO/trunk/setup.py
===================================================================
--- ZEO/trunk/setup.py	2013-03-01 15:44:05 UTC (rev 129969)
+++ ZEO/trunk/setup.py	2013-03-01 15:55:41 UTC (rev 129970)
@@ -1,117 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2002, 2003 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.
-#
-##############################################################################
-
-VERSION = "4.0.0dev"
-
-from ez_setup import use_setuptools
-use_setuptools()
-
-from setuptools import setup, find_packages
-from setuptools.extension import Extension
-import os
-import sys
-
-if sys.version_info < (2, 6):
-    print "This version of ZEO requires Python 2.6 or higher"
-    sys.exit(0)
-
-classifiers = """\
-Intended Audience :: Developers
-License :: OSI Approved :: Zope Public License
-Programming Language :: Python
-Programming Language :: Python :: 2.6
-Programming Language :: Python :: 2.7
-Topic :: Database
-Topic :: Software Development :: Libraries :: Python Modules
-Operating System :: Microsoft :: Windows
-Operating System :: Unix
-Framework :: ZODB
-"""
-
-def _modname(path, base, name=''):
-    if path == base:
-        return name
-    dirname, basename = os.path.split(path)
-    return _modname(dirname, base, basename + '.' + name)
-
-def alltests():
-    import logging
-    import pkg_resources
-    import unittest
-    import ZEO.ClientStorage
-
-    class NullHandler(logging.Handler):
-        level = 50
-
-        def emit(self, record):
-            pass
-
-    logging.getLogger().addHandler(NullHandler())
-
-    suite = unittest.TestSuite()
-    base = pkg_resources.working_set.find(
-        pkg_resources.Requirement.parse('ZEO')).location
-    for dirpath, dirnames, filenames in os.walk(base):
-        if os.path.basename(dirpath) == 'tests':
-            for filename in filenames:
-                if filename != 'testZEO.py': continue
-                if filename.endswith('.py') and filename.startswith('test'):
-                    mod = __import__(
-                        _modname(dirpath, base, os.path.splitext(filename)[0]),
-                        {}, {}, ['*'])
-                    suite.addTest(mod.test_suite())
-    return suite
-
-tests_require = ['zope.testing', 'manuel']
-
-long_description = (
-    open('README.txt').read()
-    + '\n' +
-    open('CHANGES.txt').read()
-    )
-setup(name="ZEO",
-      description = long_description.split('\n', 2)[1],
-      long_description = long_description,
-      version=VERSION,
-      maintainer="Zope Foundation and Contributors",
-      maintainer_email="zodb-dev at zope.org",
-      packages = find_packages('src'),
-      package_dir = {'': 'src'},
-      license = "ZPL 2.1",
-      platforms = ["any"],
-      # description = doclines[0],
-      classifiers = filter(None, classifiers.split("\n")),
-      # long_description = long_description,
-      test_suite="__main__.alltests", # to support "setup.py test"
-      tests_require = tests_require,
-      extras_require = dict(test=tests_require),
-      install_requires = [
-          'ZODB',
-          'transaction',
-          'persistent',
-          'zc.lockfile',
-          'ZConfig',
-          'zdaemon',
-          'zope.interface',
-          ],
-      zip_safe = False,
-      entry_points = """
-      [console_scripts]
-      zeopack = ZEO.scripts.zeopack:main
-      runzeo = ZEO.runzeo:main
-      zeopasswd = ZEO.zeopasswd:main
-      zeoctl = ZEO.zeoctl:main
-      """,
-      include_package_data = True,
-      )



More information about the checkins mailing list