I'm happy to announce the release of Python 2.2.3 (final). This is a
bug fix release for the stable Python 2.2 code line. It contains more
than 40 bug fixes and memory leak patches since Python 2.2.2, and all
Python 2.2 users are encouraged to upgrade.
The new release is available here:
For full details, see the release notes at
There are a small number of minor incompatibilities with Python 2.2.2;
for details see:
Perhaps the most important is that the Bastion.py and rexec.py modules
have been disabled, since we do not deem them to be safe.
As usual, a Windows installer and a Unix/Linux source tarball are made
available. The documentation has been updated as well, and is available
both on-line and in many different formats. At the moment, no Mac
version or Linux RPMs are available, although I expect them to appear
On behalf of Guido, I'd like to thank everyone who contributed to this
release, and who continue to ensure Python's success.
AsciiDoc is an uncomplicated text document format for writing
articles, manuals and UNIX man pages.
AsciiDoc files can be translated to HTML: (with or without
stylesheets); DocBook (articles, books and refentry documents); and
LinuxDoc using the asciidoc(1) command. AsciiDoc can also be used to
build and maintain websites.
AsciiDoc is highly configurable: both the AsciiDoc source file syntax
and the backend output markups (which can be almost any type of
SGML/XML markup) can be customized and extended by user.
Python 1.5.2 or higher.
The latest AsciiDoc version and online documentation can be found at
the AsciiDoc website http://www.methods.co.nz/asciidoc/
AsciiDoc is also hosted at the SourceForge at
Stuart Rackham <srackham(a)methods.co.nz>
I'm pleased to announce the release of ZODB 3.2 beta 1. We have
completed all the new features planned for ZODB 3.2 and have wrung out a
number of bugs. I expect this release is still a bit rough, so I expect
to do another beta release.
ZODB 3.2 has a number of new features and improvements over ZODB 3.1:
- improve performance and stability of ZEO
- new ZEO authentication protocol
- new configuration language, ZConfig, for databases, storages,
and ZEO servers
- many bug fixes
This release of ZODB has been tested with Python 2.1.3, 2.2.3, and
2.3b1. It should also be compatible with Zope 2.6; Zope users should be
able to install the new ZODB code on top of an existing Zope 2.6
You can download the source release and Windows installers for 2.1 and
2.2 from http://www.zope.org/Products/ZODB3.2.
I've included the most recent entries from NEWS.txt below.
What's new in ZODB3 3.2 beta 1
Release date: 30-May-2003
Invalidations are now processed atomically. Each transaction will see
all the changes caused by an earlier transaction or none of them.
Before this patch, it was possible for a transaction to see invalid
data because it saw only a subset of the invalidations. This is the
most likely cause of reported BTrees corruption, where keys were
stored in the wrong bucket. When a BTree bucket splits, the bucket
and the bucket's parent are both modified. If a transaction sees the
invalidation for the bucket but not the parent, the BTree in memory
will be internally inconsistent and keys can be put in the wrong
bucket. The atomic invalidation fix prevents this problem.
A number of minor reference count fixes in the object cache were
fixed. That's the cPickleCache.c file.
It was possible for a transaction that failed in tpc_finish() to lose
the traceback that caused the failure. The transaction code was fixed
to report the original error as well as any errors that occur while
trying to recover from the original error.
The "other" argument to copyTransactionsFrom() only needs to have an
.iterator() method. For convenience, change FileStorage's and
BDBFullStorage's iterator to have this method, which just returns
Mount points are now visible from mounted objects.
Fixed memory leak involving database connections and caches. When a
connection or database was closed, the cache and database leaked,
because of a circular reference involving the cache. Fixed the cache
to explicitly clear out its contents when its connection is closed.
The ZODB cache has fewer methods. It used to expose methods that
could mutate the dictionary, which allowed users to violate internal
It is now possible to configure ZODB databases and storages and ZEO
servers using ZConfig.
ZEO & zdaemon
ZEO now supports authenticated client connections. The default
authentication protocol uses a hash-based challenge-response protocol
to prove identity and establish a session key for message
authentication. The architecture is pluggable to allow third-parties
to developer better authentication protocols.
There is a new HOWTO for running a ZEO server. The draft in this
release is incomplete, but provides more guidance than previous
releases. See the file Doc/ZEO/howto.txt.
The ZEO storage server's transaction timeout feature was refactored
and made slightly more rebust.
A new ZEO utility script, ZEO/mkzeoinst.py, was added. This creates a
standard directory structure and writes a configuration file with
mostly default values, and a bootstrap script that can be used to
manage and monitor the server using zdctl.py (see below).
Much work was done to improve zdaemon's zdctl.py and zdrun.py scripts.
(In the alpha 1 release, zdrun.py was called zdaemon.py, but
installing it in <prefix>/bin caused much breakage due to the name
conflict with the zdaemon package.) Together with the new
mkzeoinst.py script, this makes controlling a ZEO server a breeze.
A ZEO client will not read from its cache during cache verification.
This fix was necessary to prevent the client from reading inconsistent
The isReadOnly() method of a ZEO client was fixed to return the false
when the client is connected to a read-only fallback server.
The sync() method of ClientStorage and the pending() method of a zrpc
connection now do both input and output.
The short_repr() function used to generate log messages was fixed so
that it does not blow up creating a repr of very long tuples.
FileStorage has a new pack() implementation that fixes several
reported problems that could lead to data loss.
Two small bugs were fixed in DemoStorage. undoLog() did not handle
its arguments correctly and pack() could accidentally delete objects
created in versions.
Fixed trivial bug in fsrecover that prevented it from working at all.
FileStorage will use fsync() on Windows starting with Python 2.2.3.
FileStorage's commit version was fixed. It used to stop after the
first object, leaving all the other objects in the version.
Trying to store an object of a non-integer type into an IIBTree
or OIBTree could leave the bucket in a variety of insane states. For
b[obj] = "I'm a string, not an integer"
where b is an OIBTree. This manifested as a refcount leak in the test
suite, but could have been much worse (most likely in real life is that
a seemingly arbitrary existing key would "go missing").
When deleting the first child of a BTree node with more than one
child, a reference to the second child leaked. This could cause
the entire bucket chain to leak (not be collected as garbage
despite not being referenced anymore).
Other minor BTree leak scenarios were also fixed.
New tool zeoqueue.py for parsing ZEO log files, looking for blocked
New tool repozo.py (originally by Anthony Baxter) for performing
incremental backups of Data.fs files.
The fsrecover.py script now does a better job of recovering from
errors the occur in the middle of a transaction record. Fixed several
bugs that caused partial or total failures in earlier versions.
For the third year, ActiveState is running the ActiveAwards -- a way to
recognize some of the most influential, helpful, or important people in
the world of open source languages.
Nominate your favorites in the Programmers' Choice Active Awards. Until
June 1, 2003, you can select the one programmer that you think has done
the most for Python (and other languages if you so choose).
We'll tally up the nominees and present five finalists in each category.
Voting for the winner will take place from June 3 to June 30, 2003.
See the details and enter your favorites at:
-- David Ascher
PS: Winners for previous years were:
2002 Programmers' Choice: Robin Dunn
2002 Activators' Choice: Alex Martelli
2001 Programmers' Choice: Christian Tismer
2001 Activators' Choice: Greg Ward
I'm pleased to announce the initial release of dnspython!
dnspython is a DNS toolkit for Python. It supports all of the common
record types, and will support all types. It can be used for queries,
zone transfers, and dynamic updates. It supports TSIG authenticated
messages and EDNS0.
dnspython provides both high and low level access to DNS. The high
level classes perform queries for data of a given name, type, and
class, and return an answer set. The low level classes allow direct
manipulation of DNS zones, messages, names, and records.
To see a few of the ways dnspython can be used, look at
dnspython originated at Nominum where it was developed to facilitate
the testing of DNS software. Nominum has generously allowed it to be
open sourced under a BSD-style license, and helps support its future
development by continuing to employ the author :).
ABOUT THIS RELEASE
This is dnspython 1.0.0a1, the first release of dnspython. Although
the software is already useful, there are a number of things to do
before the first stable release, including: implementing the rest of
the DNS rdata types, improving the documentation, and thorough testing.
Python 2.2 or later.
To build and install dnspython, type
python setup.py install
For the latest in releases, documentation, and information, visit the
dnspython home page at
Documentation is sparse at the moment. Use pydoc or read the HTML
documentation at the dnspython home page.
Bug reports may be sent to bugs(a)dnspython.org
A number of mailing lists are available. Visit the dnspython home
page to subscribe or unsubscribe.
Version 0.1 of the Dulcinea package is available from
Dulcinea is a collection of modules useful for developing applications
with Quixote and the ZODB, including:
* A set of modules that simplify using the ZODB.
* Some useful classes for use with Quixote.
* Various miscellaneous modules that we've found to be useful.
Neil Schemenauer <nas(a)mems-exchange.org> http://www.mems-exchange.org/
Announcing Python OpenSceneGraph bindings version 0.4.0 alpha
PyOSG is a wrapper library for the the OpenSceneGraph real-time
visualisation library and Python. It is available at
The Open Scene Graph is a cross-platform C++/OpenGL library for the
real-time visualization. Uses range from visual simulation, scientific
modeling, virtual reality through to games.
OpenSceneGraph is available at http://www.openscenegraph.org/
PyOSG uses the Boost.Python library, which enables a very powerful set
of features like subclassing C++ classes in Python, default arguments,
Boost.Python is available at http://www.boost.org/
PyOSG has been tested on Windows 2000/NT using the MSVC.Net 7.0 compiler
and Linux 2.4.X using the gcc 3.2 C++ compiler.
A bug fix release (5b5_3) is available here:
The major fix is to Windows onefile support which is
completely broken in earlier 5b5 releases. Another
fix (UPX binaries caching code) applies to both Linux
Unix (relying on volunteers)
Python 1.5 to 2.3
What is it:
The Installer package is any easy way to deploy
Python apps to systems without Python installed
(or with incompatible Pythons installed).
Installer support single-file and single-directory
deployments. On Windows, Installer supports
COM, including in-process COM servers.
Release 5b5_3/A>Easy Python app deployment. (29-May-