diff --git a/.github/workflows/application-signals-e2e-test.yml b/.github/workflows/application-signals-e2e-test.yml index 07bf170dd..9fbf3a5fe 100644 --- a/.github/workflows/application-signals-e2e-test.yml +++ b/.github/workflows/application-signals-e2e-test.yml @@ -90,6 +90,17 @@ jobs: cpu-architecture: 'x86_64' staging-wheel-name: ${{ inputs.staging-wheel-name }} + default-py313-amd64: + needs: [ upload-main-build ] + uses: aws-observability/aws-application-signals-test-framework/.github/workflows/python-ec2-default-test.yml@main + secrets: inherit + with: + aws-region: us-east-1 + caller-workflow-name: 'main-build' + python-version: '3.13' + cpu-architecture: 'x86_64' + staging-wheel-name: ${{ inputs.staging-wheel-name }} + # # DOCKER DISTRIBUTION LANGUAGE VERSION COVERAGE # DEFAULT SETTING: {Python Version}, EKS, AMD64, AL2 @@ -142,6 +153,18 @@ jobs: caller-workflow-name: 'main-build' python-version: '3.12' + eks-py313-amd64: + if: ${{ always() }} + needs: eks-py312-amd64 + uses: aws-observability/aws-application-signals-test-framework/.github/workflows/python-eks-test.yml@main + secrets: inherit + with: + aws-region: us-east-1 + test-cluster-name: 'e2e-python-adot-test' + adot-image-name: ${{ inputs.adot-image-name }} + caller-workflow-name: 'main-build' + python-version: '3.13' + # # PACKAGED DISTRIBUTION PLATFORM COVERAGE # DEFAULT SETTING: Python 3.9, {Platform}, AMD64, AL2 diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index e866dc86d..cea502df7 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false # ensures the entire test matrix is run, even if one permutation fails matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout Repo @ SHA - ${{ github.sha }} uses: actions/checkout@v4 diff --git a/README.md b/README.md index 581773b67..a5741d39c 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ This project is licensed under the Apache-2.0 License. ## Notices ### Python Version Support -This project ensures compatibility with the following supported Python versions: 3.9, 3.10, 3.11, 3.12 +This project ensures compatibility with the following supported Python versions: 3.9, 3.10, 3.11, 3.12, 3.13 ### Note on Amazon CloudWatch Application Signals [Amazon CloudWatch Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html) components are designed to seamlessly work with all library instrumentations offered by [OpenTelemetry Python auto-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/README.md). While upstream OpenTelemetry Python instrumentations are in beta, Application Signals components are stable, production ready and have also been tested for popular libraries/frameworks such as [Django, Boto3, and others](https://github.com/aws-observability/aws-otel-python-instrumentation/tree/main/contract-tests/images/applications). We will prioritize backward compatibility for Application Signals components, striving to ensure that they remain functional even in the face of potential breaking changes introduced by OpenTelemetry upstream libraries. Please [raise an issue](https://github.com/aws-observability/aws-otel-python-instrumentation/blob/main/CONTRIBUTING.md#reporting-bugsfeature-requests) if you notice Application Signals doesn't work for a particular OpenTelemetry supported library. diff --git a/contract-tests/images/applications/botocore/requirements.txt b/contract-tests/images/applications/botocore/requirements.txt index 9c92cb92f..25113e3f4 100644 --- a/contract-tests/images/applications/botocore/requirements.txt +++ b/contract-tests/images/applications/botocore/requirements.txt @@ -1,5 +1,5 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 +typing-extensions==4.12.2 botocore==1.34.143 -boto3==1.34.143 \ No newline at end of file +boto3==1.34.143 diff --git a/contract-tests/images/applications/django/requirements.txt b/contract-tests/images/applications/django/requirements.txt index acea2a85c..9b54a7736 100644 --- a/contract-tests/images/applications/django/requirements.txt +++ b/contract-tests/images/applications/django/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 -django==5.0.11 \ No newline at end of file +typing-extensions==4.12.2 +django==5.0.11 diff --git a/contract-tests/images/applications/mysql-connector/requirements.txt b/contract-tests/images/applications/mysql-connector/requirements.txt index 2910612dc..9ca44d2e4 100644 --- a/contract-tests/images/applications/mysql-connector/requirements.txt +++ b/contract-tests/images/applications/mysql-connector/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 -mysql-connector-python~=9.1.0 \ No newline at end of file +typing-extensions==4.12.2 +mysql-connector-python~=9.1.0 diff --git a/contract-tests/images/applications/mysqlclient/requirements.txt b/contract-tests/images/applications/mysqlclient/requirements.txt index 43d1e7867..49c6b70f3 100644 --- a/contract-tests/images/applications/mysqlclient/requirements.txt +++ b/contract-tests/images/applications/mysqlclient/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 +typing-extensions==4.12.2 mysqlclient==2.2.4 diff --git a/contract-tests/images/applications/psycopg2/requirements.txt b/contract-tests/images/applications/psycopg2/requirements.txt index 828f71c11..f2d278475 100644 --- a/contract-tests/images/applications/psycopg2/requirements.txt +++ b/contract-tests/images/applications/psycopg2/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 -psycopg2==2.9.9 \ No newline at end of file +typing-extensions==4.12.2 +psycopg2==2.9.9 diff --git a/contract-tests/images/applications/pymysql/requirements.txt b/contract-tests/images/applications/pymysql/requirements.txt index 9f9b1041d..ddda9b1fe 100644 --- a/contract-tests/images/applications/pymysql/requirements.txt +++ b/contract-tests/images/applications/pymysql/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 -pymysql==1.1.1 \ No newline at end of file +typing-extensions==4.12.2 +pymysql==1.1.1 diff --git a/contract-tests/images/applications/requests/requirements.txt b/contract-tests/images/applications/requests/requirements.txt index 26d8b1c8b..369049d22 100644 --- a/contract-tests/images/applications/requests/requirements.txt +++ b/contract-tests/images/applications/requests/requirements.txt @@ -1,4 +1,4 @@ opentelemetry-distro==0.46b0 opentelemetry-exporter-otlp-proto-grpc==1.25.0 -typing-extensions==4.9.0 +typing-extensions==4.12.2 requests~=2.0 diff --git a/contract-tests/images/mock-collector/pyproject.toml b/contract-tests/images/mock-collector/pyproject.toml index ec502d256..422e2a5b1 100644 --- a/contract-tests/images/mock-collector/pyproject.toml +++ b/contract-tests/images/mock-collector/pyproject.toml @@ -10,11 +10,11 @@ license = "Apache-2.0" requires-python = ">=3.9" dependencies = [ - "grpcio ~= 1.60.0", + "grpcio ~= 1.66.0", "opentelemetry-proto==1.25.0", "opentelemetry-sdk==1.25.0", "protobuf==4.25.2", - "typing-extensions==4.9.0" + "typing-extensions==4.12.2" ] [tool.hatch.build.targets.sdist] diff --git a/contract-tests/images/mock-collector/requirements.txt b/contract-tests/images/mock-collector/requirements.txt index e536e81f1..a0c5454cd 100644 --- a/contract-tests/images/mock-collector/requirements.txt +++ b/contract-tests/images/mock-collector/requirements.txt @@ -1,5 +1,5 @@ -grpcio==1.60.1 +grpcio==1.66.2 opentelemetry-proto==1.25.0 opentelemetry-sdk==1.25.0 protobuf==4.25.2 -typing-extensions==4.9.0 \ No newline at end of file +typing-extensions==4.12.2 diff --git a/contract-tests/tests/pyproject.toml b/contract-tests/tests/pyproject.toml index 48e2b3d7b..0df6f6a1c 100644 --- a/contract-tests/tests/pyproject.toml +++ b/contract-tests/tests/pyproject.toml @@ -13,7 +13,7 @@ dependencies = [ "opentelemetry-proto==1.25.0", "opentelemetry-sdk==1.25.0", "testcontainers==3.7.1", - "grpcio==1.60.0", + "grpcio==1.66.2", "docker==7.1.0", "mock-collector==1.0.0", "requests==2.32.2"