Coordinate distributed systems.
Go to file
Stephen Finucane e3de0e634a Cap protobuf < 4.x
tooz doesn't use upper-constraints so we get the newest version of all
dependencies. It seems one of these, etcd3, is incompatible with recent
versions of protobuf.

  Failed to import test module: tooz.tests.drivers.test_etcd3
  Traceback (most recent call last):
    File "/usr/lib/python3.7/unittest/loader.py", line 436, in _find_test_path
      module = self._get_module_from_name(name)
    File "/usr/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
      __import__(name)
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/tests/drivers/test_etcd3.py", line 22, in <module>
      import tooz.drivers.etcd3 as etcd3_driver
    File "/home/zuul/src/opendev.org/openstack/tooz/tooz/drivers/etcd3.py", line 18, in <module>
      import etcd3
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/__init__.py", line 3, in <module>
      import etcd3.etcdrpc as etcdrpc
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/__init__.py", line 1, in <module>
      from .rpc_pb2 import *
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/rpc_pb2.py", line 16, in <module>
      from etcd3.etcdrpc import kv_pb2 as kv__pb2
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/etcd3/etcdrpc/kv_pb2.py", line 36, in <module>
      type=None),
    File "/home/zuul/src/opendev.org/openstack/tooz/.tox/py37/lib/python3.7/site-packages/google/protobuf/descriptor.py", line 755, in __new__
      _message.Message._CheckCalledFromGeneratedFile()
  TypeError: Descriptors cannot not be created directly.
  If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
  If you cannot immediately regenerate your protos, some other possible workarounds are:
   1. Downgrade the protobuf package to 3.20.x or lower.
   2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

The etcd3 dependency is only used for the etcd3 driver which was
deprecated in change Iff0cd3b51cfc45ecbddc831c55267e80e9c79cac. The
protobuf dependency is only used for etcd3. We can't outright remove the
etcd3 driver yet as it hasn't been long enough since we deprecated it.
That will happen soon enough though and until then we can simply cap
protobuf to an older version that is compatible with the most recent
etcd3 release.

While we're here, we also sync the lower boundaries in the docs
requirments and add some comments indicating where they come from/what
they're for.

Change-Id: I8d6647118be22b0ce55e01b7e5451612ebe30e73
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-06-28 15:11:35 +01:00
doc Cap protobuf < 4.x 2022-06-28 15:11:35 +01:00
examples Adding pre-commit 2020-10-09 15:35:34 +00:00
playbooks Unblock tooz gate 2019-05-10 20:02:04 +00:00
releasenotes Deprecate the etcd3 driver 2022-03-15 10:35:09 +00:00
tools Implements Group API for the Consul driver 2020-06-15 11:24:49 -05:00
tooz Fix getting group with prefix in etcd3gw driver 2022-04-01 13:55:50 +03:00
.coveragerc Fix coverage tests 2018-09-18 00:37:30 +00:00
.gitignore ignore reno generated artifacts 2020-03-25 13:17:59 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:27:52 +00:00
.pre-commit-config.yaml Move flake8 as a pre-commit local target. 2021-04-06 11:01:50 +02:00
.stestr.conf Migrate to stestr 2018-09-18 00:37:30 +00:00
.zuul.yaml Drop python3.6/3.7 support in testing runtime 2022-05-05 16:01:30 +02:00
CONTRIBUTING.rst Add CONTRIBUTING.rst 2016-11-18 16:44:36 +08:00
LICENSE First commit of Tooz 2013-12-19 12:18:35 +01:00
README.rst Replace git.openstack.org URLs with opendev.org URLs 2019-05-22 14:58:13 +08:00
bindep.txt Install only needed packages 2016-09-22 10:20:50 +02:00
requirements.txt Bump tenacity dependency to >= 5.0.0 2022-03-29 09:06:40 +00:00
run-examples.sh Have examples run in the py27 environment and make them work 2014-09-19 11:57:56 -07:00
run-tests.sh Simplify env list and test running 2017-06-09 18:09:31 +02:00
setup-consul-env.sh Implements Group API for the Consul driver 2020-06-15 11:24:49 -05:00
setup-etcd-env.sh Switch tests to use latest etcd - 3.1.3 2017-03-14 15:17:42 +00:00
setup.cfg Cap protobuf < 4.x 2022-06-28 15:11:35 +01:00
setup.py Updated from global requirements 2015-09-17 12:17:45 +00:00
test-requirements.txt Adding pre-commit 2020-10-09 15:35:34 +00:00
tox.ini Move flake8 as a pre-commit local target. 2021-04-06 11:01:50 +02:00

README.rst

Tooz

Latest Version

Downloads

The Tooz project aims at centralizing the most common distributed primitives like group membership protocol, lock service and leader election by providing a coordination API helping developers to build distributed applications.

Join us