Commit 70dfce11 authored by Tim Peters's avatar Tim Peters

By-hand merging of 3.4 changes to make the ZODB and

ZEO version numbers the same (an auto-merge could do
very little of this correctly!).
parent 20a0a0fc
...@@ -5,14 +5,22 @@ Release date: DD-MMM-YYYY ...@@ -5,14 +5,22 @@ Release date: DD-MMM-YYYY
What's new in ZODB3 3.4a4? What's new in ZODB3 3.4a4?
========================== ==========================
Release date: DD-MMM-YYYY Release date: 23-Apr-2005
ZEO ZEO
--- ---
The default logging setup in ``runzeo.py`` was broken. It was changed - The ZODB and ZEO version numbers are now the same. Concretely::
so that running ``runzeo.py`` from a command line now, and without using
a config file, prints output to the console much as ZODB 3.2 did. import ZODB, ZEO
assert ZODB.__version__ == ZEO.version
no longer fails. If interested, see the README file for details about
earlier version numbering schemes.
- The default logging setup in ``runzeo.py`` was broken. It was changed
so that running ``runzeo.py`` from a command line now, and without using
a config file, prints output to the console much as ZODB 3.2 did.
ZEO on Windows ZEO on Windows
-------------- --------------
......
...@@ -124,10 +124,13 @@ Running all the tests takes much longer.:: ...@@ -124,10 +124,13 @@ Running all the tests takes much longer.::
History History
------- -------
The version numbering scheme for ZODB is complicated. Starting with The historical version numbering schemes for ZODB and ZEO are complicated.
the ZODB 3.1 release, we tried to make it simpler. Versions prior to Starting with ZODB 3.4, the ZODB and ZEO version numbers are the same.
3.1 had different names and different numbers. This section describes
the gory details. In the ZODB 3.1 through 3.3 lines, the ZEO version number was "one smaller"
than the ZODB version number; e.g., ZODB 3.2.7 included ZEO 2.2.7. ZODB and
ZEO were distinct releases prior to ZODB 3.1, and had independent version
numbers.
Historically, ZODB was distributed as a part of the Zope application Historically, ZODB was distributed as a part of the Zope application
server. Jim Fulton's paper at the Python conference in 2000 described server. Jim Fulton's paper at the Python conference in 2000 described
...@@ -155,9 +158,11 @@ release "ZODB". ...@@ -155,9 +158,11 @@ release "ZODB".
To make matters worse, we worked on a ZODB4 package for a while and To make matters worse, we worked on a ZODB4 package for a while and
made a couple of alpha releases. We've now abandoned that effort, made a couple of alpha releases. We've now abandoned that effort,
because we didn't have the resources to pursue while also maintaining because we didn't have the resources to pursue ot while also maintaining
ZODB(3). ZODB(3).
License License
------- -------
......
...@@ -46,13 +46,11 @@ def replace(filename, pat, repl): ...@@ -46,13 +46,11 @@ def replace(filename, pat, repl):
print >> e, "*" * 60, "Oops!" print >> e, "*" * 60, "Oops!"
print >> e, " Failed to find %r in %r" % (pat, filename) print >> e, " Failed to find %r in %r" % (pat, filename)
def compute_zeoversion(version): # Nothing in our codebase cares about ZEO/version.txt. Jeremy said
# ZEO version's trail ZODB versions by one full revision. # someone asked for it so that a shell script could read up the ZEO
# ZODB 3.2c1 corresponds to ZEO 2.2c1 # version easily.
major, rest = version.split(".", 1) # Before ZODB 3.4, the ZEO version was one smaller than the ZODB version;
major = int(major) - 1 # e.g., ZEO 2.2.7 shipped with ZODB 3.2.7.
return "%s.%s" % (major, rest)
def write_zeoversion(path, version): def write_zeoversion(path, version):
f = file(path, "w") f = file(path, "w")
print >> f, version print >> f, version
...@@ -60,7 +58,6 @@ def write_zeoversion(path, version): ...@@ -60,7 +58,6 @@ def write_zeoversion(path, version):
def main(args): def main(args):
version, date = args version, date = args
zeoversion = compute_zeoversion(version)
replace("setup.py", replace("setup.py",
r'version="\S+"', r'version="\S+"',
...@@ -70,8 +67,8 @@ def main(args): ...@@ -70,8 +67,8 @@ def main(args):
'__version__ = "%s"' % version) '__version__ = "%s"' % version)
replace("src/ZEO/__init__.py", replace("src/ZEO/__init__.py",
r'version = "\S+"', r'version = "\S+"',
'version = "%s"' % zeoversion) 'version = "%s"' % version)
write_zeoversion("src/ZEO/version.txt", zeoversion) write_zeoversion("src/ZEO/version.txt", version)
replace("NEWS.txt", replace("NEWS.txt",
r"^Release date: .*", r"^Release date: .*",
"Release date: %s" % date) "Release date: %s" % date)
......
...@@ -22,4 +22,4 @@ ZEO is now part of ZODB; ZODB's home on the web is ...@@ -22,4 +22,4 @@ ZEO is now part of ZODB; ZODB's home on the web is
""" """
# The next line must use double quotes, so release.py recognizes it. # The next line must use double quotes, so release.py recognizes it.
version = "2.5a0" version = "3.5a0"
...@@ -42,6 +42,13 @@ class DummyDB: ...@@ -42,6 +42,13 @@ class DummyDB:
def invalidate(self, *args): def invalidate(self, *args):
pass pass
class OneTimeTests(unittest.TestCase):
def checkZEOVersionNumber(self):
import ZEO
# Starting with ZODB 3.4, the ZODB and ZEO version numbers should
# be identical.
self.assertEqual(ZODB.__version__, ZEO.version)
class MiscZEOTests: class MiscZEOTests:
"""ZEO tests that don't fit in elsewhere.""" """ZEO tests that don't fit in elsewhere."""
...@@ -183,25 +190,15 @@ class FileStorageTests(FullGenericTests): ...@@ -183,25 +190,15 @@ class FileStorageTests(FullGenericTests):
</filestorage> </filestorage>
""" % filename """ % filename
class BDBTests(FullGenericTests):
"""ZEO backed by a Berkeley full storage."""
level = 2
def getConfig(self):
self._envdir = tempfile.mktemp()
return """\
<fullstorage 1>
envdir %s
</fullstorage>
""" % self._envdir
class MappingStorageTests(GenericTests): class MappingStorageTests(GenericTests):
"""ZEO backed by a Mapping storage.""" """ZEO backed by a Mapping storage."""
def getConfig(self): def getConfig(self):
return """<mappingstorage 1/>""" return """<mappingstorage 1/>"""
test_classes = [FileStorageTests, MappingStorageTests] test_classes = [OneTimeTests,
FileStorageTests,
MappingStorageTests]
def test_suite(): def test_suite():
suite = unittest.TestSuite() suite = unittest.TestSuite()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment