We are stoked to announce the release of:
tooz 9.0.0
The source is available from:
https://opendev.org/openstack/tooz
Download the package from:
https://pypi.org/project/tooz
For more details, please see below.
9.0.0
^^^^^
Upgrade Notes
*************
* The "CoordinationDriver.join_group" method has changed the default
value of the "capabilities" parameter from "b''" to "None". This
affects all drivers with capabilities support, however, it should
have no impact at runtime since both are false'y values.
* The consul driver has been removed. The library it depended on is
no longer maintained and did not support modern Python versions.
* The etcd driver has been removed. It only supported the v2 API,
which was removed in etcd 3.6. Use the etcd3gw driver instead, which
supports the v3 API.
* Support for Python 3.10 has been removed. Now the minimum python
version supported is 3.11.
Deprecation Notes
*****************
* The "kubernetes" driver is deprecated for removal, as the
underlying library it depends on is no longer maintained. Users are
encouraged to migrate to another driver.
* The PostgreSQL driver has been deprecated and will be removed in a
future release.
Changes in tooz 8.1.0..9.0.0
----------------------------
21fdc62 Remove consul driver
6bd6a28 Deprecate PostgreSQL driver
7501873 Deprecate Kubernetes driver
f5c8985 Improve get_coordinator annotations
ee5b142 Remove redundant type docstrings
13fba2f Remove unnecessary debtcollector dependency
1133aa2 zuul: Use openstack-python3-next-jobs template
b81c6d7 pre-commit: Bump versions
c3ba081 Add Python 3.14 support
32fc851 tests: Fix ProcessPoolExecutor race on Python 3.14+
12a1d49 Drop Python 3.10
12e22ef Fix mypy errors
d4820f6 trivial: Add explanation to test scripts
bc00eab typing: Enable strict checking
e8c498d typing: Add py.typed, Typed classifier
951ad95 tox: Use new constraints option
54fccdb typing: Add type hints to tooz.driver.redis
6ee1d99 redis: Flatten py3-only logic
bc1207d redis: Use bytes lock name
0c32d91 typing: Add type hints to tooz.driver.file
b557efa typing: Add type hints to tooz.driver.zookeeper
70d1370 zookeeper: Normalize path generation
bd4d768 zookeeper: Remove unnecessary staticmethod wrappers
a34ab20 typing: Add type hints to tooz.driver.kubernetes
c6404a9 typing: Add type hints to tooz.driver.memcached
440c9eb typing: Add type hints to tooz.driver.ipc
b1344cf typing: Add type hints to tooz.driver.pgsql
3f3cbb8 typing: Add type hints to tooz.driver.mysql
334ee42 typing: Add type hints to tooz.driver.etcd3gw
bf925b9 typing: Add type hints to tooz.coordination, tooz.partitioner
e711852 coordination: Change join_group capabilities default
abca4e9 typing: Add type hints to tooz.hashring
32c396e typing: Add type hints to tooz.locking
3d93c59 typing: Add type hints to tooz._retry
956ab01 typing: Add type hints to tooz.utils
abacd94 Remove etcd driver
032bb46 zookeeper: Inline handler methods
99419c5 zookeeper: Track joined groups to fix leave-on-stop race
413e9bb typing: Normalize instance and static methods
7df2cb5 gitignore: Ignore pifpaf artifacts
859343d Decode provided IDs for exceptions, event repr
d60124f typing: Add missing dependency
29be6b7 tests: Add test for str IDs
64f8547 tests: Validate behavior of file driver with str IDs
63981a8 Fix descriptions of Etcd3GW driver
de4e3ed typing: Add argument to tooz.NotImplementedError
3ee509f Add initial typing
42eb79c ruff: Configure hacking as external linter
Diffstat (except docs and test files)
-------------------------------------
.gitignore | 9 +-
.pre-commit-config.yaml | 4 +-
.zuul.yaml | 198 ++++----
pyproject.toml | 45 +-
...precate-kubernetes-driver-0179640eadb3c504.yaml | 6 +
.../deprecate-postgresql-1ed79808e4ad7ccc.yaml | 5 +
.../new-join_group-default-4b765e828bc2a7b8.yaml | 7 +
.../remove-consul-driver-c651f6bbb559839c.yaml | 5 +
.../notes/remove-etcd-driver-1855b82d7fba106f.yaml | 6 +
.../notes/remove-py310-7998496a30e56a82.yaml | 5 +
requirements.txt | 1 -
setup-consul-env.sh | 33 --
setup-etcd-env.sh | 3 +
stubs/sysv_ipc/__init__.pyi | 237 +++++++++
test-requirements.txt | 1 -
tools/compat-matrix.py | 8 -
tooz/__init__.py | 4 +-
tooz/_retry.py | 27 +-
tooz/coordination.py | 456 ++++++++++-------
tooz/drivers/consul.py | 524 --------------------
tooz/drivers/etcd.py | 300 -----------
tooz/drivers/etcd3gw.py | 157 +++---
tooz/drivers/file.py | 208 +++++---
tooz/drivers/ipc.py | 74 +--
tooz/drivers/kubernetes.py | 37 +-
tooz/drivers/memcached.py | 152 +++---
tooz/drivers/mysql.py | 125 +++--
tooz/drivers/pgsql.py | 139 ++++--
tooz/drivers/redis.py | 242 +++++----
tooz/drivers/zookeeper.py | 546 ++++++++++++---------
tooz/hashring.py | 70 ++-
tooz/locking.py | 66 ++-
tooz/partitioner.py | 59 ++-
tooz/py.typed | 0
tooz/utils.py | 89 +++-
tox.ini | 92 ++--
48 files changed, 2360 insertions(+), 2087 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 8c122c1..0c3b5c1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13 +12,0 @@ oslo.serialization>=1.10.0 # Apache-2.0
-debtcollector>=3.0.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 5218653..0983f51 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7 +6,0 @@ ddt>=1.2.1 # MIT
-python-consul2>=0.0.16 # MIT License