@@ -6,6 +6,13 @@ requires = [
66 " setuptools == 68.1.0" ,
77 " setuptools_scm[toml] == 7.1.0" ,
88 " frequenz-repo-config[api] == 0.10.0" ,
9+ # We need to pin the protobuf, grpcio and grpcio-tools dependencies to make
10+ # sure the code is generated using the minimum supported versions, as older
11+ # versions can't work with code that was generated with newer versions.
12+ # https://protobuf.dev/support/cross-version-runtime-guarantee/#backwards
13+ " protobuf == 5.28.0" ,
14+ " grpcio-tools == 1.66.1" ,
15+ " grpcio == 1.66.1" ,
916]
1017build-backend = " setuptools.build_meta"
1118
@@ -27,8 +34,15 @@ classifiers = [
2734requires-python = " >= 3.11, < 4"
2835dependencies = [
2936 " frequenz-api-common >= 0.5.4, < 0.7" ,
30- " googleapis-common-protos >= 1.56.4, < 2" ,
31- " grpcio >= 1.54.2, < 2" ,
37+ " googleapis-common-protos >= 1.65.0, < 2" ,
38+ # We can't widen beyond the current value unless we bump the minimum
39+ # requirements too because of protobuf cross-version runtime guarantees:
40+ # https://protobuf.dev/support/cross-version-runtime-guarantee/#major
41+ " protobuf >= 5.28.0, < 7" , # Do not widen beyond 7!
42+ # We couldn't find any document with a spec about the cross-version runtime
43+ # guarantee for grpcio, so unless we find one in the future, we'll assume
44+ # major version jumps are not compatible
45+ " grpcio >= 1.66.1, < 2" , # Do not widen beyond 2!
3246]
3347dynamic = [" version" ]
3448
@@ -54,7 +68,7 @@ dev-mkdocs = [
5468 " mkdocs-macros-plugin == 1.0.5" ,
5569 " mkdocs-material == 9.5.30" ,
5670 " mkdocstrings[python] == 0.25.2" ,
57- " mkdocstrings-python == 1.9.2 " ,
71+ " mkdocstrings-python == 1.10.8 " ,
5872 " frequenz-repo-config[api] == 0.10.0" ,
5973]
6074dev-mypy = [
0 commit comments