Skip to content

Commit

Permalink
fix cmake: pin Python protobuf version
Browse files Browse the repository at this point in the history
protobuf 5.26.0 contains backwards-incompatible changes, we need to keep Python protobuf 4.x for C++ protobuf 4.x.

grpcio has still not been updated to support protobuf 5.x:
grpc/grpc#36142
d8ff602d21fdc9769e6c8dc501f0177e554028e5
  • Loading branch information
Anton3 committed Mar 27, 2024
1 parent 6225ad0 commit d163975
Show file tree
Hide file tree
Showing 15 changed files with 39 additions and 21 deletions.
10 changes: 6 additions & 4 deletions .mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -2894,8 +2894,9 @@
"scripts/grpc/__init__.py":"taxi/uservices/userver/scripts/grpc/__init__.py",
"scripts/grpc/generator.py":"taxi/uservices/userver/scripts/grpc/generator.py",
"scripts/grpc/protoc_usrv_plugin.sh":"taxi/uservices/userver/scripts/grpc/protoc_usrv_plugin.sh",
"scripts/grpc/requirements-old.txt":"taxi/uservices/userver/scripts/grpc/requirements-old.txt",
"scripts/grpc/requirements.txt":"taxi/uservices/userver/scripts/grpc/requirements.txt",
"scripts/grpc/requirements-3.txt":"taxi/uservices/userver/scripts/grpc/requirements-3.txt",
"scripts/grpc/requirements-4.txt":"taxi/uservices/userver/scripts/grpc/requirements-4.txt",
"scripts/grpc/requirements-5.txt":"taxi/uservices/userver/scripts/grpc/requirements-5.txt",
"scripts/grpc/templates/client.usrv.cpp.jinja":"taxi/uservices/userver/scripts/grpc/templates/client.usrv.cpp.jinja",
"scripts/grpc/templates/client.usrv.hpp.jinja":"taxi/uservices/userver/scripts/grpc/templates/client.usrv.hpp.jinja",
"scripts/grpc/templates/service.usrv.cpp.jinja":"taxi/uservices/userver/scripts/grpc/templates/service.usrv.cpp.jinja",
Expand Down Expand Up @@ -2949,8 +2950,9 @@
"testsuite/pytest_plugins/pytest_userver/utils/colorize.py":"taxi/uservices/userver/testsuite/pytest_plugins/pytest_userver/utils/colorize.py",
"testsuite/pytest_plugins/pytest_userver/utils/net.py":"taxi/uservices/userver/testsuite/pytest_plugins/pytest_userver/utils/net.py",
"testsuite/pytest_plugins/pytest_userver/utils/tskv.py":"taxi/uservices/userver/testsuite/pytest_plugins/pytest_userver/utils/tskv.py",
"testsuite/requirements-grpc-old.txt":"taxi/uservices/userver/testsuite/requirements-grpc-old.txt",
"testsuite/requirements-grpc.txt":"taxi/uservices/userver/testsuite/requirements-grpc.txt",
"testsuite/requirements-grpc-3.txt":"taxi/uservices/userver/testsuite/requirements-grpc-3.txt",
"testsuite/requirements-grpc-4.txt":"taxi/uservices/userver/testsuite/requirements-grpc-4.txt",
"testsuite/requirements-grpc-5.txt":"taxi/uservices/userver/testsuite/requirements-grpc-5.txt",
"testsuite/requirements-mongo.txt":"taxi/uservices/userver/testsuite/requirements-mongo.txt",
"testsuite/requirements-net.txt":"taxi/uservices/userver/testsuite/requirements-net.txt",
"testsuite/requirements-postgres.txt":"taxi/uservices/userver/testsuite/requirements-postgres.txt",
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ endif()
set(CMAKE_POLICY_DEFAULT_CMP0048 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)

project(userver)

Expand Down
9 changes: 6 additions & 3 deletions cmake/GrpcTargets.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,12 @@ if(NOT USERVER_CONAN)
include(UserverTestsuite)
endif()

set(file_requirements_protobuf "requirements.txt")
if(Protobuf_VERSION VERSION_LESS 3.20.0)
set(file_requirements_protobuf "requirements-old.txt")
if(Protobuf_VERSION VERSION_GREATER_EQUAL 5.26.0)
set(file_requirements_protobuf "requirements-5.txt")
elseif(Protobuf_VERSION VERSION_GREATER_EQUAL 4.20.0)
set(file_requirements_protobuf "requirements-4.txt")
else()
set(file_requirements_protobuf "requirements-3.txt")
endif()

userver_venv_setup(
Expand Down
9 changes: 6 additions & 3 deletions cmake/UserverTestsuite.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -199,12 +199,15 @@ function(userver_testsuite_requirements)
"SetupProtobuf should be run before setting up testsuite")
endif()

if(Protobuf_VERSION VERSION_GREATER 3.20.0)
if(Protobuf_VERSION VERSION_GREATER_EQUAL 5.26.0)
list(APPEND requirements_files
"${USERVER_TESTSUITE_DIR}/requirements-grpc.txt")
"${USERVER_TESTSUITE_DIR}/requirements-grpc-5.txt")
elseif(Protobuf_VERSION VERSION_GREATER_EQUAL 4.20.0)
list(APPEND requirements_files
"${USERVER_TESTSUITE_DIR}/requirements-grpc-4.txt")
else()
list(APPEND requirements_files
"${USERVER_TESTSUITE_DIR}/requirements-grpc-old.txt")
"${USERVER_TESTSUITE_DIR}/requirements-grpc-3.txt")
message(STATUS "Forcing old protobuf version for testsuite")
endif()
endif()
Expand Down
4 changes: 2 additions & 2 deletions scripts/docker/base-ubuntu-22.04.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ COPY scripts/docs/en/deps/ubuntu-22.04.md /userver_tmp/
COPY scripts/docker/setup-base-ubuntu-22.04-env.sh /userver_tmp/

COPY scripts/external_deps/requirements.txt /userver_tmp/requirements/external-deps.txt
COPY scripts/grpc/requirements-old.txt /userver_tmp/requirements/grpc-userver.txt
COPY scripts/grpc/requirements-3.txt /userver_tmp/requirements/grpc-userver.txt
#COPY scripts/chaotic/requirements.txt /userver_tmp/requirements/chaotic.txt
#COPY testsuite/requirements-ydb.txt /userver_tmp/requirements/ydb.txt
COPY testsuite/requirements-grpc-old.txt /userver_tmp/requirements/grpc.txt
COPY testsuite/requirements-grpc-3.txt /userver_tmp/requirements/grpc.txt
COPY testsuite/requirements-mongo.txt /userver_tmp/requirements/mongo.txt
COPY testsuite/requirements-postgres.txt /userver_tmp/requirements/postgres.txt
COPY testsuite/requirements-redis.txt /userver_tmp/requirements/redis.txt
Expand Down
2 changes: 2 additions & 0 deletions scripts/grpc/requirements-3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Jinja2 >= 2.10
protobuf >= 3.12.0, < 4.0dev
2 changes: 2 additions & 0 deletions scripts/grpc/requirements-4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Jinja2 >= 2.10
protobuf >= 4.21.12, < 5.0dev
2 changes: 2 additions & 0 deletions scripts/grpc/requirements-5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Jinja2 >= 2.10
protobuf >= 5.26.0, < 6.0dev
2 changes: 0 additions & 2 deletions scripts/grpc/requirements-old.txt

This file was deleted.

2 changes: 0 additions & 2 deletions scripts/grpc/requirements.txt

This file was deleted.

3 changes: 3 additions & 0 deletions testsuite/requirements-grpc-3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
grpcio <= 1.49.0
grpcio-tools <= 1.49.0
protobuf >= 3.12.0, < 4.0dev
3 changes: 3 additions & 0 deletions testsuite/requirements-grpc-4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
grpcio >= 1.50.0
grpcio-tools >= 1.50.0
protobuf >= 4.21.12, < 5.0dev
6 changes: 6 additions & 0 deletions testsuite/requirements-grpc-5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# grpcio has still not been updated to support protobuf 5.x:
# https://github.com/grpc/grpc/issues/36142
# When the issue is closed, we should update this version to version with fix.
grpcio >= 1.99.0
grpcio-tools >= 1.99.0
protobuf >= 5.26.0, < 6.0dev
3 changes: 0 additions & 3 deletions testsuite/requirements-grpc-old.txt

This file was deleted.

2 changes: 0 additions & 2 deletions testsuite/requirements-grpc.txt

This file was deleted.

0 comments on commit d163975

Please sign in to comment.