From f0a9f1100a2569ea8b4941845073a8ebb3aa859a Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 19 Jun 2023 11:58:03 +0930 Subject: [PATCH] poetry, CI: insist in protobuf v21.12 in both Python and CI. And re-ran poetry update which updated the lock file ofc. Signed-off-by: Rusty Russell --- .github/scripts/setup.sh | 22 ++++++++- poetry.lock | 101 +++++++++++++++++++++++++++++++-------- pyproject.toml | 2 + 3 files changed, 104 insertions(+), 21 deletions(-) diff --git a/.github/scripts/setup.sh b/.github/scripts/setup.sh index 146437a7f..46311db32 100755 --- a/.github/scripts/setup.sh +++ b/.github/scripts/setup.sh @@ -73,10 +73,28 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ # We also need a relatively recent protobuf-compiler, at least 3.12.0, # in order to support the experimental `optional` flag. -PROTOC_VERSION=3.15.8 + +# BUT WAIT! Gentoo wants this to match the version from the Python protobuf, +# which comes from the same tree. Makes sense! + +# And +# grpcio-tools-1.54.0` requires `protobuf = ">=4.21.6,<5.0dev"` + +# Now, protoc changed to date-based releases, BUT Python protobuf +# didn't, so Python protobuf 4.21.12 (in Ubuntu 23.04) corresponds to +# protoc 21.12 (which, FYI, is packaged in Ubuntu as version 3.21.12). + +# So we're going to nail these versions as 21.12, which is what recent +# Ubuntu has, and hopefully everyone else can get. And this means that +# When CI checks that no files have changed under regeneration, you won't +# get a fail just because the dev's protoc is a different version. + +# Honorable mention go to Matt Whitlock for spelunking this horror with me! + +PROTOC_VERSION=21.12 PB_REL="https://github.com/protocolbuffers/protobuf/releases" curl -LO $PB_REL/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip -sudo unzip protoc-3.15.8-linux-x86_64.zip -d /usr/local/ +sudo unzip protoc-${PROTOC_VERSION}-linux-x86_64.zip -d /usr/local/ sudo chmod a+x /usr/local/bin/protoc export PROTOC=/usr/local/bin/protoc export PATH=$PATH:/usr/local/bin diff --git a/poetry.lock b/poetry.lock index b888e484f..7dd354a03 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "asn1crypto" version = "1.5.1" description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP" +category = "main" optional = false python-versions = "*" files = [ @@ -15,6 +16,7 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -36,6 +38,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "base58" version = "2.1.1" description = "Base58 and Base58Check implementation." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -50,6 +53,7 @@ tests = ["PyHamcrest (>=2.0.2)", "mypy", "pytest (>=4.6)", "pytest-benchmark", " name = "bitstring" version = "3.1.9" description = "Simple construction, analysis and modification of binary data." +category = "main" optional = false python-versions = "*" files = [ @@ -62,6 +66,7 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -138,6 +143,7 @@ pycparser = "*" name = "cheroot" version = "8.6.0" description = "Highly-optimized, pure-python HTTP server" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -157,6 +163,7 @@ docs = ["furo", "jaraco.packaging (>=3.2)", "python-dateutil", "sphinx (>=1.8.2) name = "click" version = "8.1.3" description = "Composable command line interface toolkit" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -172,6 +179,7 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} name = "coincurve" version = "18.0.0" description = "Cross-platform Python CFFI bindings for libsecp256k1" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -227,6 +235,7 @@ cffi = ">=1.3.0" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -238,6 +247,7 @@ files = [ name = "crc32c" version = "2.3.post0" description = "A python package implementing the crc32c algorithm in hardware and software" +category = "dev" optional = false python-versions = "*" files = [ @@ -325,6 +335,7 @@ files = [ name = "cryptography" version = "41.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -366,6 +377,7 @@ test-randomorder = ["pytest-randomly"] name = "ephemeral-port-reserve" version = "1.1.4" description = "Bind to an ephemeral port, force it into the TIME_WAIT state, and unbind it." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -377,6 +389,7 @@ files = [ name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -391,6 +404,7 @@ test = ["pytest (>=6)"] name = "execnet" version = "1.9.0" description = "execnet: rapid multi-Python deployment" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -405,6 +419,7 @@ testing = ["pre-commit"] name = "flake8" version = "4.0.1" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -422,6 +437,7 @@ pyflakes = ">=2.4.0,<2.5.0" name = "flask" version = "2.2.5" description = "A simple framework for building complex web applications." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -444,6 +460,7 @@ dotenv = ["python-dotenv"] name = "grpcio" version = "1.54.2" description = "HTTP/2-based RPC framework" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -501,6 +518,7 @@ protobuf = ["grpcio-tools (>=1.54.2)"] name = "grpcio-tools" version = "1.54.2" description = "Protobuf code generator for gRPC" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -560,6 +578,7 @@ setuptools = "*" name = "importlib-metadata" version = "4.2.0" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -579,6 +598,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", name = "importlib-resources" version = "5.12.0" description = "Read resources from Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -597,6 +617,7 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -608,6 +629,7 @@ files = [ name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -619,6 +641,7 @@ files = [ name = "jaraco-functools" version = "3.7.0" description = "Functools like those found in stdlib" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -637,6 +660,7 @@ testing = ["jaraco.classes", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-c name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -654,6 +678,7 @@ i18n = ["Babel (>=2.7)"] name = "jsonschema" version = "4.17.3" description = "An implementation of JSON Schema validation for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -677,6 +702,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "mako" version = "1.2.4" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -697,6 +723,7 @@ testing = ["pytest"] name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -756,6 +783,7 @@ files = [ name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = "*" files = [ @@ -767,6 +795,7 @@ files = [ name = "more-itertools" version = "9.1.0" description = "More routines for operating on iterables, beyond itertools" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -778,6 +807,7 @@ files = [ name = "mypy" version = "0.931" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -817,6 +847,7 @@ python2 = ["typed-ast (>=1.4.0,<2)"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -828,6 +859,7 @@ files = [ name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -839,6 +871,7 @@ files = [ name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -850,6 +883,7 @@ files = [ name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -866,30 +900,33 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "protobuf" -version = "4.23.3" +version = "4.21.12" description = "" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "protobuf-4.23.3-cp310-abi3-win32.whl", hash = "sha256:514b6bbd54a41ca50c86dd5ad6488afe9505901b3557c5e0f7823a0cf67106fb"}, - {file = "protobuf-4.23.3-cp310-abi3-win_amd64.whl", hash = "sha256:cc14358a8742c4e06b1bfe4be1afbdf5c9f6bd094dff3e14edb78a1513893ff5"}, - {file = "protobuf-4.23.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:2991f5e7690dab569f8f81702e6700e7364cc3b5e572725098215d3da5ccc6ac"}, - {file = "protobuf-4.23.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:08fe19d267608d438aa37019236db02b306e33f6b9902c3163838b8e75970223"}, - {file = "protobuf-4.23.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:3b01a5274ac920feb75d0b372d901524f7e3ad39c63b1a2d55043f3887afe0c1"}, - {file = "protobuf-4.23.3-cp37-cp37m-win32.whl", hash = "sha256:aca6e86a08c5c5962f55eac9b5bd6fce6ed98645d77e8bfc2b952ecd4a8e4f6a"}, - {file = "protobuf-4.23.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0149053336a466e3e0b040e54d0b615fc71de86da66791c592cc3c8d18150bf8"}, - {file = "protobuf-4.23.3-cp38-cp38-win32.whl", hash = "sha256:84ea0bd90c2fdd70ddd9f3d3fc0197cc24ecec1345856c2b5ba70e4d99815359"}, - {file = "protobuf-4.23.3-cp38-cp38-win_amd64.whl", hash = "sha256:3bcbeb2bf4bb61fe960dd6e005801a23a43578200ea8ceb726d1f6bd0e562ba1"}, - {file = "protobuf-4.23.3-cp39-cp39-win32.whl", hash = "sha256:5cb9e41188737f321f4fce9a4337bf40a5414b8d03227e1d9fbc59bc3a216e35"}, - {file = "protobuf-4.23.3-cp39-cp39-win_amd64.whl", hash = "sha256:29660574cd769f2324a57fb78127cda59327eb6664381ecfe1c69731b83e8288"}, - {file = "protobuf-4.23.3-py3-none-any.whl", hash = "sha256:447b9786ac8e50ae72cae7a2eec5c5df6a9dbf9aa6f908f1b8bda6032644ea62"}, - {file = "protobuf-4.23.3.tar.gz", hash = "sha256:7a92beb30600332a52cdadbedb40d33fd7c8a0d7f549c440347bc606fb3fe34b"}, + {file = "protobuf-4.21.12-cp310-abi3-win32.whl", hash = "sha256:b135410244ebe777db80298297a97fbb4c862c881b4403b71bac9d4107d61fd1"}, + {file = "protobuf-4.21.12-cp310-abi3-win_amd64.whl", hash = "sha256:89f9149e4a0169cddfc44c74f230d7743002e3aa0b9472d8c28f0388102fc4c2"}, + {file = "protobuf-4.21.12-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:299ea899484ee6f44604deb71f424234f654606b983cb496ea2a53e3c63ab791"}, + {file = "protobuf-4.21.12-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:d1736130bce8cf131ac7957fa26880ca19227d4ad68b4888b3be0dea1f95df97"}, + {file = "protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:78a28c9fa223998472886c77042e9b9afb6fe4242bd2a2a5aced88e3f4422aa7"}, + {file = "protobuf-4.21.12-cp37-cp37m-win32.whl", hash = "sha256:3d164928ff0727d97022957c2b849250ca0e64777ee31efd7d6de2e07c494717"}, + {file = "protobuf-4.21.12-cp37-cp37m-win_amd64.whl", hash = "sha256:f45460f9ee70a0ec1b6694c6e4e348ad2019275680bd68a1d9314b8c7e01e574"}, + {file = "protobuf-4.21.12-cp38-cp38-win32.whl", hash = "sha256:6ab80df09e3208f742c98443b6166bcb70d65f52cfeb67357d52032ea1ae9bec"}, + {file = "protobuf-4.21.12-cp38-cp38-win_amd64.whl", hash = "sha256:1f22ac0ca65bb70a876060d96d914dae09ac98d114294f77584b0d2644fa9c30"}, + {file = "protobuf-4.21.12-cp39-cp39-win32.whl", hash = "sha256:27f4d15021da6d2b706ddc3860fac0a5ddaba34ab679dc182b60a8bb4e1121cc"}, + {file = "protobuf-4.21.12-cp39-cp39-win_amd64.whl", hash = "sha256:237216c3326d46808a9f7c26fd1bd4b20015fb6867dc5d263a493ef9a539293b"}, + {file = "protobuf-4.21.12-py2.py3-none-any.whl", hash = "sha256:a53fd3f03e578553623272dc46ac2f189de23862e68565e83dde203d41b76fc5"}, + {file = "protobuf-4.21.12-py3-none-any.whl", hash = "sha256:b98d0148f84e3a3c569e19f52103ca1feacdac0d2df8d6533cf983d1fda28462"}, + {file = "protobuf-4.21.12.tar.gz", hash = "sha256:7cd532c4566d0e6feafecc1059d04c7915aec8e182d1cf7adee8b24ef1e2e6ab"}, ] [[package]] name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -916,6 +953,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "psycopg2-binary" version = "2.9.6" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -987,6 +1025,7 @@ files = [ name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -998,6 +1037,7 @@ files = [ name = "pycodestyle" version = "2.8.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1009,6 +1049,7 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1020,6 +1061,7 @@ files = [ name = "pyflakes" version = "2.4.0" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1031,6 +1073,7 @@ files = [ name = "pyln-bolt7" version = "1.0.246" description = "BOLT7" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1042,6 +1085,7 @@ files = [ name = "pyln-client" version = "23.05" description = "Client library and plugin library for Core Lightning" +category = "main" optional = false python-versions = "^3.7" files = [] @@ -1059,6 +1103,7 @@ url = "contrib/pyln-client" name = "pyln-proto" version = "23.05" description = "This package implements some of the Lightning Network protocol in pure python. It is intended for protocol testing and some minor tooling only. It is not deemed secure enough to handle any amount of real funds (you have been warned!)." +category = "main" optional = false python-versions = "^3.7" files = [] @@ -1079,6 +1124,7 @@ url = "contrib/pyln-proto" name = "pyln-testing" version = "23.05" description = "Test your Core Lightning integration, plugins or whatever you want" +category = "dev" optional = false python-versions = "^3.7" files = [] @@ -1105,6 +1151,7 @@ url = "contrib/pyln-testing" name = "pyrsistent" version = "0.19.3" description = "Persistent/Functional/Immutable data structures" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1141,6 +1188,7 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1153,6 +1201,7 @@ files = [ name = "pytest" version = "7.3.2" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1176,6 +1225,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-custom-exit-code" version = "0.3.0" description = "Exit pytest test session with custom exit code in different scenarios" +category = "dev" optional = false python-versions = ">2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1190,6 +1240,7 @@ pytest = ">=4.0.2" name = "pytest-forked" version = "1.6.0" description = "run tests in isolated forked subprocesses" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1205,6 +1256,7 @@ pytest = ">=3.10" name = "pytest-test-groups" version = "1.0.3" description = "A Pytest plugin for running a subset of your tests by splitting them in to equally sized groups." +category = "dev" optional = false python-versions = "*" files = [ @@ -1218,6 +1270,7 @@ pytest = ">=2.5" name = "pytest-timeout" version = "2.1.0" description = "pytest plugin to abort hanging tests" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1232,6 +1285,7 @@ pytest = ">=5.0.0" name = "pytest-xdist" version = "2.5.0" description = "pytest xdist plugin for distributed testing and loop-on-failing modes" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1253,6 +1307,7 @@ testing = ["filelock"] name = "python-bitcoinlib" version = "0.11.2" description = "The Swiss Army Knife of the Bitcoin protocol." +category = "dev" optional = false python-versions = "*" files = [ @@ -1264,6 +1319,7 @@ files = [ name = "setuptools" version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1280,6 +1336,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1291,6 +1348,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1302,6 +1360,7 @@ files = [ name = "typed-ast" version = "1.5.4" description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1335,6 +1394,7 @@ files = [ name = "typing-extensions" version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1344,13 +1404,14 @@ files = [ [[package]] name = "websocket-client" -version = "1.5.3" +version = "1.6.0" description = "WebSocket client for Python with low level API options" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "websocket-client-1.5.3.tar.gz", hash = "sha256:b96f3bce3e54e3486ebe6504bc22bd4c140392bd2eb71764db29be8f2639aa65"}, - {file = "websocket_client-1.5.3-py3-none-any.whl", hash = "sha256:3566f8467cd350874c4913816355642a4942f6c1ed1e9406e3d42fae6d6c072a"}, + {file = "websocket-client-1.6.0.tar.gz", hash = "sha256:e84c7eafc66aade6d1967a51dfd219aabdf81d15b9705196e11fd81f48666b78"}, + {file = "websocket_client-1.6.0-py3-none-any.whl", hash = "sha256:72d7802608745b0a212f79b478642473bd825777d8637b6c8c421bf167790d4f"}, ] [package.extras] @@ -1362,6 +1423,7 @@ test = ["websockets"] name = "werkzeug" version = "2.2.3" description = "The comprehensive WSGI web application library." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1379,6 +1441,7 @@ watchdog = ["watchdog"] name = "zipp" version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1393,4 +1456,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "f19bc41366e5cb0f024e517657b17049deec858dc2d70f6dffb9ada85e6933f3" +content-hash = "5d7da91af628ec89f5bc330ac0b7bd5d402d88b1a17e3174eec73a22e1b00c40" diff --git a/pyproject.toml b/pyproject.toml index 7478d3238..0287ee618 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,8 @@ Mako = "^1.1.6" websocket-client = "^1.2.3" grpcio-tools = "^1" grpcio = "^1" +# We want a specific version of protobuf to match CI's .github/scripts/setup.sh +protobuf = "4.21.12" cryptography = "^41.0.1" [tool.poetry.dev-dependencies]