From 591b3bc6f50d26f4fa7d9cc352f55fce1f793371 Mon Sep 17 00:00:00 2001 From: Douglas Heriot Date: Fri, 4 Aug 2023 04:57:43 +1000 Subject: [PATCH 1/4] Update snapshots for opentelemetry 1.19.0 (#269) --- dev-constraints.txt | 4 ++-- .../tests/__snapshots__/test_detector.ambr | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dev-constraints.txt b/dev-constraints.txt index 5b44a65a..9019e17a 100644 --- a/dev-constraints.txt +++ b/dev-constraints.txt @@ -16,5 +16,5 @@ types-urllib3==1.26.25.1 # pinned for snapshot tests. this should be bumped regularly and snapshots updated by running # tox -f py311-test -- --snapshot-update -opentelemetry-api==1.18.0 -opentelemetry-sdk==1.18.0 +opentelemetry-api==1.19.0 +opentelemetry-sdk==1.19.0 diff --git a/opentelemetry-resourcedetector-gcp/tests/__snapshots__/test_detector.ambr b/opentelemetry-resourcedetector-gcp/tests/__snapshots__/test_detector.ambr index 2e07929a..ee4adc9b 100644 --- a/opentelemetry-resourcedetector-gcp/tests/__snapshots__/test_detector.ambr +++ b/opentelemetry-resourcedetector-gcp/tests/__snapshots__/test_detector.ambr @@ -19,7 +19,7 @@ 'service.name': 'unknown_service', 'telemetry.sdk.language': 'python', 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '1.18.0', + 'telemetry.sdk.version': '1.19.0', }) # --- # name: test_detects_gke[regional] @@ -33,7 +33,7 @@ 'service.name': 'unknown_service', 'telemetry.sdk.language': 'python', 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '1.18.0', + 'telemetry.sdk.version': '1.19.0', }) # --- # name: test_detects_gke[zonal] @@ -47,6 +47,6 @@ 'service.name': 'unknown_service', 'telemetry.sdk.language': 'python', 'telemetry.sdk.name': 'opentelemetry', - 'telemetry.sdk.version': '1.18.0', + 'telemetry.sdk.version': '1.19.0', }) # --- From 9e1d393b9dc40b980e5be451fda8910eb20c430a Mon Sep 17 00:00:00 2001 From: Douglas Heriot Date: Fri, 4 Aug 2023 05:03:43 +1000 Subject: [PATCH 2/4] Pin upstream version of opentelemetry when running tests (#270) Fix in #254 didn't apply to tox environments that run `pip install .` `test_detects_gce` was failing with opentelemetry-sdk version 1.19.0 instead of 1.18.0 Co-authored-by: Aaron Abbott --- tox.ini | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tox.ini b/tox.ini index 0d9dd93d..3205b081 100644 --- a/tox.ini +++ b/tox.ini @@ -65,12 +65,14 @@ passenv = SKIP_GET_MOCK_SERVER changedir = {env:PACKAGE_NAME} commands_pre = - pip install . + pip install -c {toxinidir}/dev-constraints.txt . {toxinidir}/get_mock_server.sh {envbindir} commands = pytest --junitxml={[constants]test_results_dir}/{envname}/junit.xml {posargs} -whitelist_externals = bash +allowlist_externals = + bash + {toxinidir}/get_mock_server.sh [testenv:{lint,mypy}-ci-{cloudtrace,cloudmonitoring,propagator,resourcedetector}] basepython = {[constants]dev_basepython} @@ -80,7 +82,7 @@ deps = changedir = {env:PACKAGE_NAME} commands_pre = - pip install . + pip install -c {toxinidir}/dev-constraints.txt . commands = lint: black . --diff --check @@ -98,7 +100,7 @@ deps = commands = make -C docs/ clean html -whitelist_externals = +allowlist_externals = make bash From c487ff7aec8eebee41ffb6b4fa23f477826f8487 Mon Sep 17 00:00:00 2001 From: Douglas Heriot Date: Fri, 4 Aug 2023 06:34:36 +1000 Subject: [PATCH 3/4] Don't use `pkg_resources.get_distribution(..).version` (#256) * Pin upstream version of opentelemetry when running tests Fix in #254 didn't apply to tox environments that run `pip install .` `test_detects_gce` was failing with opentelemetry-sdk version 1.19.0 instead of 1.18.0 * Don't use `pkg_resources.get_distribution(..).version` Similar to discussion at googleapis/python-api-core#27 I am using opentelemetry in an environment where modules are vendored without pip. So, pkg_resources can not be used to search for a module at runtime to get its version. --------- Co-authored-by: Aaron Abbott --- .../opentelemetry/exporter/cloud_monitoring/__init__.py | 4 ++-- .../src/opentelemetry/exporter/cloud_trace/__init__.py | 8 +++----- .../tests/test_cloud_trace_exporter.py | 6 ++---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/__init__.py b/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/__init__.py index e2de5298..1ecc65df 100644 --- a/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/__init__.py +++ b/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/__init__.py @@ -19,7 +19,6 @@ from typing import Dict, List, NoReturn, Optional, Set, Union import google.auth -import pkg_resources from google.api.distribution_pb2 import Distribution from google.api.label_pb2 import LabelDescriptor from google.api.metric_pb2 import Metric as GMetric @@ -44,6 +43,7 @@ from opentelemetry.resourcedetector.gcp_resource_detector._mapping import ( get_monitored_resource, ) +from opentelemetry.sdk import version as opentelemetry_sdk_version from opentelemetry.sdk.metrics.export import ( Gauge, Histogram, @@ -62,7 +62,7 @@ UNIQUE_IDENTIFIER_KEY = "opentelemetry_id" NANOS_PER_SECOND = 10**9 -_OTEL_SDK_VERSION = pkg_resources.get_distribution("opentelemetry-sdk").version +_OTEL_SDK_VERSION = opentelemetry_sdk_version.__version__ _USER_AGENT = f"opentelemetry-python {_OTEL_SDK_VERSION}; google-cloud-metric-exporter {__version__}" # Set user-agent metadata, see https://github.com/grpc/grpc/issues/23644 and default options diff --git a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py index 0d1e0ff9..6b837b91 100644 --- a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py +++ b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py @@ -87,7 +87,6 @@ import google.auth import opentelemetry.trace as trace_api -import pkg_resources from google.cloud.trace_v2 import BatchWriteSpansRequest, TraceServiceClient from google.cloud.trace_v2 import types as trace_types from google.cloud.trace_v2.services.trace_service.transports import ( @@ -108,6 +107,7 @@ from opentelemetry.resourcedetector.gcp_resource_detector._mapping import ( get_monitored_resource, ) +from opentelemetry.sdk import version as opentelemetry_sdk_version from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import Event from opentelemetry.sdk.trace.export import ( @@ -122,7 +122,7 @@ logger = logging.getLogger(__name__) -_OTEL_SDK_VERSION = pkg_resources.get_distribution("opentelemetry-sdk").version +_OTEL_SDK_VERSION = opentelemetry_sdk_version.__version__ _USER_AGENT = f"opentelemetry-python {_OTEL_SDK_VERSION}; google-cloud-trace-exporter {__version__}" # Set user-agent metadata, see https://github.com/grpc/grpc/issues/23644 and default options @@ -493,9 +493,7 @@ def _extract_attributes( if add_agent_attr: attributes_dict["g.co/agent"] = _format_attribute_value( "opentelemetry-python {}; google-cloud-trace-exporter {}".format( - _strip_characters( - pkg_resources.get_distribution("opentelemetry-sdk").version - ), + _strip_characters(_OTEL_SDK_VERSION), _strip_characters(__version__), ) ) diff --git a/opentelemetry-exporter-gcp-trace/tests/test_cloud_trace_exporter.py b/opentelemetry-exporter-gcp-trace/tests/test_cloud_trace_exporter.py index 923d758f..b0125cbc 100644 --- a/opentelemetry-exporter-gcp-trace/tests/test_cloud_trace_exporter.py +++ b/opentelemetry-exporter-gcp-trace/tests/test_cloud_trace_exporter.py @@ -16,7 +16,6 @@ import unittest from unittest import mock -import pkg_resources from google.cloud.trace_v2.services.trace_service.transports import ( TraceServiceGrpcTransport, ) @@ -43,6 +42,7 @@ _truncate_str, ) from opentelemetry.exporter.cloud_trace.version import __version__ +from opentelemetry.sdk import version as opentelemetry_sdk_version from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import Event from opentelemetry.sdk.trace import _Span as Span @@ -94,9 +94,7 @@ def setUpClass(cls): ) cls.agent_code = _format_attribute_value( "opentelemetry-python {}; google-cloud-trace-exporter {}".format( - _strip_characters( - pkg_resources.get_distribution("opentelemetry-sdk").version - ), + _strip_characters(opentelemetry_sdk_version.__version__), _strip_characters(__version__), ) ) From e115e337601afd47245924b43779420e0aba6874 Mon Sep 17 00:00:00 2001 From: Douglas Heriot Date: Fri, 4 Aug 2023 06:40:04 +1000 Subject: [PATCH 4/4] Remove tox pin to version 3, as tox-factor is no longer required in 4 (#268) https://github.com/rpkilby/tox-factor/issues/18 Co-authored-by: Aaron Abbott --- .github/workflows/ci.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3cc89dd9..7b271b25 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -35,8 +35,7 @@ jobs: restore-keys: | ${{ env.cache-version }}-${{ env.run-matrix-combo }}-pip - name: Install tox - # Pin tox 3 because of https://github.com/rpkilby/tox-factor/issues/18 - run: pip install -U tox==3.27.1 tox-factor + run: pip install -U tox - name: Run tox test factors for python ${{ matrix.py.version }} run: > tox @@ -68,7 +67,6 @@ jobs: restore-keys: | ${{ env.cache-version }}-${{ env.run-matrix-combo }}-pip - name: Install tox - # Pin tox 3 because of https://github.com/rpkilby/tox-factor/issues/18 - run: pip install -U tox==3.27.1 tox-factor + run: pip install -U tox - name: Run tox factors ${{ matrix.target }} run: tox -f ${{ matrix.target }}