Kazoo 1.2 has just been released. This release includes a number of changes to provide better debugging support and production logging, improves the retry support and simplifies and fixes the data watchers. A number of other changes are noted in the full changelog.
On behalf of the Kazoo team, Hanno Full changelog: 1.2 (2013-07-24) ---------------- Features ******** - KazooClient can now be stopped more reliably even if its in the middle of a long retry sleep. This utilizes the new interrupt feature of KazooRetry which lets the sleep be broken down into chunks and an interrupt function called to determine if the retry should fail early. - Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a max deadline, transition properly when connection fails to LOST, and setup separate connection retry behavior from client command retry behavior. Patches by Mike Lundy. - Issue #100: Make it easier to see exception context in threading and connection modules. - Issue #85: Increase information density of logs and don't prevent dynamic reconfiguration of log levels at runtime. - Data-watchers for the same node are no longer 'stacked'. That is, if a get and an exists call occur for the same node with the same watch function, then it will be registered only once. This change results in Kazoo behaving per Zookeeper client spec regarding repeat watch use. Bug Handling ************ - Issue #53: Throw a warning upon starting if the chroot path doesn't exist so that it's more obvious when the chroot should be created before performing more operations. - Kazoo previously would let the same function be registered as a data-watch or child-watch multiple times, and then call it multiple times upon being triggered. This was non-compliant Zookeeper client behavior, the same watch can now only be registered once for the same znode path per Zookeeper client documentation. - Issue #105: Avoid rare import lock problems by moving module imports in client.py to the module scope. - Issue #103: Allow prefix-less sequential znodes. - Issue #98: Extend testing ZK harness to work with different file locations on some versions of Debian/Ubuntu. - Issue #97: Update some docstrings to reflect current state of handlers. - Issue #62, #92, #89, #101, #102: Allow KazooRetry to have a max deadline, transition properly when connection fails to LOST, and setup separate connection retry behavior from client command retry behavior. Patches by Mike Lundy. API Changes *********** - The `kazoo.testing.harness.KazooTestHarness` class directly inherits from `unittest.TestCase` and you need to ensure to call its `__init__` method. - DataWatch no longer takes any parameters besides for the optional function during instantiation. The additional options are now implicitly True, with the user being left to ignore events as they choose. See the DataWatch API docs for more information. - Issue #99: Better exception raised when the writer fails to close. A WriterNotClosedException that inherits from KazooException is now raised when the writer fails to close in time.
