From 7ec868c164219635c376bb34b046b76b774055d8 Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Tue, 28 May 2024 18:37:49 +0000 Subject: [PATCH 1/6] merge conflcits Signed-off-by: Jason Parraga --- .github/workflows/test.yml | 2 +- CHANGELOG.md | 2 ++ opentelemetry-proto/pyproject.toml | 2 +- opentelemetry-proto/test-requirements-2.txt | 18 ++++++++++++++++++ tox.ini | 18 ++++++++++++------ 5 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 opentelemetry-proto/test-requirements-2.txt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fe5f4104c9e..7e53f74f235 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -98,7 +98,7 @@ jobs: strategy: fail-fast: false matrix: - tox-environment: ["docker-tests-proto3", "docker-tests-proto4", "lint", "spellcheck", + tox-environment: ["docker-tests-proto3", "docker-tests-proto4", "docker-tests-proto5", "lint", "spellcheck", "docs", "mypy", "mypyinstalled", "tracecontext"] name: ${{ matrix.tox-environment }} runs-on: ubuntu-20.04 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a4e061bb62..b6b14fad56d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - unit annotations (enclosed in curly braces like `{requests}`) are stripped away - units with slash are converted e.g. `m/s` -> `meters_per_second`. - The exporter's API is not changed +- Update proto dependencies to allow protobuf 5 + ([#3931](https://github.com/open-telemetry/opentelemetry-python/pull/3931)) ## Version 1.24.0/0.45b0 (2024-03-28) diff --git a/opentelemetry-proto/pyproject.toml b/opentelemetry-proto/pyproject.toml index 0e0c1331196..b93b6e39efc 100644 --- a/opentelemetry-proto/pyproject.toml +++ b/opentelemetry-proto/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", ] dependencies = [ - "protobuf>=3.19, < 5.0", + "protobuf>=3.19, < 6.0", ] [project.urls] diff --git a/opentelemetry-proto/test-requirements-2.txt b/opentelemetry-proto/test-requirements-2.txt new file mode 100644 index 00000000000..60df43f1408 --- /dev/null +++ b/opentelemetry-proto/test-requirements-2.txt @@ -0,0 +1,18 @@ +asgiref==3.7.2 +attrs==23.2.0 +Deprecated==1.2.14 +flaky==3.7.0 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +packaging==23.2 +pluggy==1.4.0 +protobuf==5.27.0 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-benchmark==4.0.0 +tomli==2.0.1 +typing_extensions==4.10.0 +wrapt==1.16.0 +zipp==3.17.0 +-e opentelemetry-proto diff --git a/tox.ini b/tox.ini index 7c18460b19a..e0860b3c98a 100644 --- a/tox.ini +++ b/tox.ini @@ -12,8 +12,9 @@ envlist = ; below mean these dependencies are being used: ; 0: protobuf==3.20.3 ; 1: protobuf==4.25.3 - py3{8,9,10,11}-opentelemetry-protobuf-{0,1} - pypy3-opentelemetry-protobuf-{0,1} + ; 2: protobuf==5.27.0 + py3{8,9,10,11}-opentelemetry-protobuf-{0,1,2} + pypy3-opentelemetry-protobuf-{0,1,2} py3{8,9,10,11}-opentelemetry-sdk pypy3-opentelemetry-sdk @@ -86,7 +87,7 @@ envlist = tracecontext mypy,mypyinstalled docs - docker-tests-proto{3,4} + docker-tests-proto{3,4,5} public-symbols-check [testenv] @@ -99,9 +100,10 @@ deps = coverage: pytest-cov mypy,mypyinstalled: mypy - ; proto 3 and 4 tests install the respective version of protobuf + ; proto 3,4, and 5 tests install the respective version of protobuf proto3: protobuf~=3.19.0 proto4: protobuf~=4.0 + proto5: protobuf~=5.26.0 setenv = @@ -123,6 +125,7 @@ commands_pre = protobuf-0: pip install -r {toxinidir}/opentelemetry-proto/test-requirements-0.txt protobuf-1: pip install -r {toxinidir}/opentelemetry-proto/test-requirements-1.txt + protobuf-2: pip install -r {toxinidir}/opentelemetry-proto/test-requirements-2.txt getting-started: pip install -r {toxinidir}/docs/getting_started/tests/requirements.txt getting-started: pip install -e {env:CONTRIB_REPO}\#egg=opentelemetry-util-http&subdirectory=util/opentelemetry-util-http @@ -275,7 +278,7 @@ commands_pre = commands = {toxinidir}/scripts/tracecontext-integration-test.sh -[testenv:docker-tests-proto{3,4}] +[testenv:docker-tests-proto{3,4,5}] deps = pytest==7.1.3 # Pinning PyYAML for issue: https://github.com/yaml/pyyaml/issues/724 @@ -285,9 +288,10 @@ deps = docker-compose==1.29.2 requests==2.28.2 - ; proto 3 and 4 tests install the respective version of protobuf + ; proto 3, 4 and 5 tests install the respective version of protobuf proto3: protobuf~=3.19.0 proto4: protobuf~=4.0 + proto5: protobuf~=5.26.0 changedir = tests/opentelemetry-docker-tests/tests @@ -310,6 +314,8 @@ commands = proto3: pytest {posargs} ; opencensus exporter does not work with protobuf 4 proto4: pytest --ignore opencensus {posargs} + ; opencensus exporter does not work with protobuf 5 + proto5: pytest --ignore opencensus {posargs} commands_post = docker-compose down -v From beaf0ee8825a401b4b30fda45d55e098143e7d2f Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Tue, 28 May 2024 16:30:21 +0000 Subject: [PATCH 2/6] fix comment Signed-off-by: Jason Parraga --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index e0860b3c98a..3f066584ffe 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ envlist = ; below mean these dependencies are being used: ; 0: protobuf==3.20.3 ; 1: protobuf==4.25.3 - ; 2: protobuf==5.27.0 + ; 2: protobuf==5.26.0 py3{8,9,10,11}-opentelemetry-protobuf-{0,1,2} pypy3-opentelemetry-protobuf-{0,1,2} From ada20c31efc48a016a9eeaa1e936337ce7bb3192 Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Tue, 28 May 2024 16:34:48 +0000 Subject: [PATCH 3/6] Add coverage for exporters Signed-off-by: Jason Parraga --- .../test-requirements-2.txt | 23 +++++++++++++ .../test-requirements-2.txt | 26 +++++++++++++++ .../test-requirements-2.txt | 32 +++++++++++++++++++ tox.ini | 13 +++++--- 4 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-2.txt create mode 100644 exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt create mode 100644 exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt diff --git a/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-2.txt new file mode 100644 index 00000000000..cf83b175b8b --- /dev/null +++ b/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-2.txt @@ -0,0 +1,23 @@ +asgiref==3.7.2 +attrs==23.2.0 +Deprecated==1.2.14 +flaky==3.7.0 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +packaging==23.2 +pluggy==1.4.0 +protobuf==5.26.0 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-benchmark==4.0.0 +tomli==2.0.1 +typing_extensions==4.10.0 +wrapt==1.16.0 +zipp==3.17.0 +-e opentelemetry-api +-e opentelemetry-sdk +-e opentelemetry-semantic-conventions +-e tests/opentelemetry-test-utils +-e opentelemetry-proto +-e exporter/opentelemetry-exporter-otlp-proto-common diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt new file mode 100644 index 00000000000..30b89c65b5e --- /dev/null +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt @@ -0,0 +1,26 @@ +asgiref==3.7.2 +attrs==23.2.0 +Deprecated==1.2.14 +flaky==3.7.0 +googleapis-common-protos==1.62.0 +grpcio==1.62.0 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +packaging==23.2 +pluggy==1.4.0 +protobuf==5.26.0 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-benchmark==4.0.0 +tomli==2.0.1 +typing_extensions==4.10.0 +wrapt==1.16.0 +zipp==3.17.0 +-e opentelemetry-api +-e tests/opentelemetry-test-utils +-e exporter/opentelemetry-exporter-otlp-proto-common +-e opentelemetry-proto +-e opentelemetry-sdk +-e opentelemetry-semantic-conventions +-e exporter/opentelemetry-exporter-otlp-proto-grpc diff --git a/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt new file mode 100644 index 00000000000..03d2c5391aa --- /dev/null +++ b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt @@ -0,0 +1,32 @@ +asgiref==3.7.2 +attrs==23.2.0 +certifi==2024.2.2 +charset-normalizer==3.3.2 +Deprecated==1.2.14 +flaky==3.7.0 +googleapis-common-protos==1.62.0 +idna==3.6 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +packaging==23.2 +pluggy==1.4.0 +protobuf==5.26.0 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-benchmark==4.0.0 +PyYAML==6.0.1 +requests==2.31.0 +responses==0.24.1 +tomli==2.0.1 +typing_extensions==4.10.0 +urllib3==2.2.1 +wrapt==1.16.0 +zipp==3.17.0 +-e opentelemetry-api +-e tests/opentelemetry-test-utils +-e exporter/opentelemetry-exporter-otlp-proto-common +-e opentelemetry-proto +-e opentelemetry-sdk +-e opentelemetry-semantic-conventions +-e exporter/opentelemetry-exporter-otlp-proto-http diff --git a/tox.ini b/tox.ini index 3f066584ffe..81173e46984 100644 --- a/tox.ini +++ b/tox.ini @@ -39,8 +39,9 @@ envlist = ; below mean these dependencies are being used: ; 0: protobuf==3.20.3 ; 1: protobuf==4.25.3 - py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-common-{0,1} - pypy3-opentelemetry-exporter-otlp-proto-common-{0,1} + ; 2: protobuf==5.26.0 + py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-common-{0,1,2} + pypy3-opentelemetry-exporter-otlp-proto-common-{0,1,2} ; opentelemetry-exporter-otlp py3{8,9,10,11}-opentelemetry-exporter-otlp-combined @@ -50,15 +51,17 @@ envlist = ; below mean these dependencies are being used: ; 0: protobuf==3.20.3 ; 1: protobuf==4.25.3 - py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-grpc-{0,1} + ; 2: protobuf==5.26.0 + py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-grpc-{0,1,2} ; intentionally excluded from pypy3 ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: protobuf==3.20.3 ; 1: protobuf==4.25.3 - py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-http-{0,1} - pypy3-opentelemetry-exporter-otlp-proto-http-{0,1} + ; 2: protobuf==5.26.0 + py3{8,9,10,11}-opentelemetry-exporter-otlp-proto-http-{0,1,2} + pypy3-opentelemetry-exporter-otlp-proto-http-{0,1,2} py3{8,9,10,11}-opentelemetry-exporter-prometheus pypy3-opentelemetry-exporter-prometheus From e3b7e1b6a8663d432c9a6fd4e6f3168b790f00d5 Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Tue, 28 May 2024 18:33:00 +0000 Subject: [PATCH 4/6] fix test requirements Signed-off-by: Jason Parraga --- .../test-requirements-2.txt | 2 +- .../test-requirements-2.txt | 2 +- tox.ini | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt index 30b89c65b5e..093b2bfa5bc 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt @@ -2,7 +2,7 @@ asgiref==3.7.2 attrs==23.2.0 Deprecated==1.2.14 flaky==3.7.0 -googleapis-common-protos==1.62.0 +googleapis-common-protos==1.63.0 grpcio==1.62.0 importlib-metadata==6.11.0 iniconfig==2.0.0 diff --git a/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt index 03d2c5391aa..cc4b901f683 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt +++ b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt @@ -4,7 +4,7 @@ certifi==2024.2.2 charset-normalizer==3.3.2 Deprecated==1.2.14 flaky==3.7.0 -googleapis-common-protos==1.62.0 +googleapis-common-protos==1.63.0 idna==3.6 importlib-metadata==6.11.0 iniconfig==2.0.0 diff --git a/tox.ini b/tox.ini index 81173e46984..9a36c21781f 100644 --- a/tox.ini +++ b/tox.ini @@ -141,14 +141,17 @@ commands_pre = exporter-otlp-proto-common-0: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-0.txt exporter-otlp-proto-common-1: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-1.txt + exporter-otlp-proto-common-2: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common/test-requirements-2.txt exporter-otlp-combined: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp/test-requirements.txt opentelemetry-exporter-otlp-proto-grpc-0: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-0.txt opentelemetry-exporter-otlp-proto-grpc-1: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-1.txt + opentelemetry-exporter-otlp-proto-grpc-2: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt opentelemetry-exporter-otlp-proto-http-0: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-0.txt opentelemetry-exporter-otlp-proto-http-1: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-1.txt + opentelemetry-exporter-otlp-proto-http-2: pip install -r {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt opentracing-shim: pip install -r {toxinidir}/shim/opentelemetry-opentracing-shim/test-requirements.txt From 5aadd7d5f4cbf23bdc1ebe0493a32441663e1fce Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Tue, 28 May 2024 18:34:17 +0000 Subject: [PATCH 5/6] Update comment Signed-off-by: Jason Parraga --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 9a36c21781f..7775ce83e09 100644 --- a/tox.ini +++ b/tox.ini @@ -308,7 +308,7 @@ commands_pre = -e {toxinidir}/opentelemetry-semantic-conventions \ -e {toxinidir}/opentelemetry-sdk \ -e {toxinidir}/tests/opentelemetry-test-utils \ - ; opencensus exporter does not work with protobuf 4 + ; opencensus exporter does not work with protobuf 4 and protobuf 5 proto3: -e {toxinidir}/exporter/opentelemetry-exporter-opencensus \ -e {toxinidir}/opentelemetry-proto \ -e {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common \ From e5f6680294ee9141e279358b9c4277ee5f8cdd6d Mon Sep 17 00:00:00 2001 From: Jason Parraga Date: Mon, 3 Jun 2024 23:51:12 +0000 Subject: [PATCH 6/6] Update googleapis-common-protos to version that supports proto5 Signed-off-by: Jason Parraga --- .../test-requirements-2.txt | 2 +- .../test-requirements-2.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt index 093b2bfa5bc..c7ce6ddc074 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/test-requirements-2.txt @@ -2,7 +2,7 @@ asgiref==3.7.2 attrs==23.2.0 Deprecated==1.2.14 flaky==3.7.0 -googleapis-common-protos==1.63.0 +googleapis-common-protos==1.63.1 grpcio==1.62.0 importlib-metadata==6.11.0 iniconfig==2.0.0 diff --git a/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt index cc4b901f683..c23d50a1dfb 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt +++ b/exporter/opentelemetry-exporter-otlp-proto-http/test-requirements-2.txt @@ -4,7 +4,7 @@ certifi==2024.2.2 charset-normalizer==3.3.2 Deprecated==1.2.14 flaky==3.7.0 -googleapis-common-protos==1.63.0 +googleapis-common-protos==1.63.1 idna==3.6 importlib-metadata==6.11.0 iniconfig==2.0.0