Skip to content

Commit ae9070c

Browse files
authored
Merge branch 'main' into fix_py314a5_grpcio
2 parents 644aae9 + 06b545a commit ae9070c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2045
-703
lines changed

.circleci/config.yml

+30-64
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ commands:
5252
gevent:
5353
default: ""
5454
type: string
55+
kafka:
56+
default: ""
57+
type: string
5558
tests:
5659
default: "tests"
5760
type: string
@@ -61,6 +64,7 @@ commands:
6164
environment:
6265
CASSANDRA_TEST: "<<parameters.cassandra>>"
6366
GEVENT_STARLETTE_TEST: "<<parameters.gevent>>"
67+
KAFKA_TEST: "<<parameters.kafka>>"
6468
command: |
6569
. venv/bin/activate
6670
coverage run --source=instana -m pytest -v --junitxml=test-results <<parameters.tests>>
@@ -136,15 +140,6 @@ jobs:
136140
environment:
137141
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
138142
PUBSUB_PROJECT1: test-project,test-topic
139-
- image: public.ecr.aws/bitnami/kafka:3.9.0
140-
environment:
141-
KAFKA_CFG_NODE_ID: 0
142-
KAFKA_CFG_PROCESS_ROLES: controller,broker
143-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
144-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
145-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
146-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
147-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
148143
working_directory: ~/repo
149144
steps:
150145
- checkout
@@ -173,15 +168,6 @@ jobs:
173168
environment:
174169
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
175170
PUBSUB_PROJECT1: test-project,test-topic
176-
- image: public.ecr.aws/bitnami/kafka:3.9.0
177-
environment:
178-
KAFKA_CFG_NODE_ID: 0
179-
KAFKA_CFG_PROCESS_ROLES: controller,broker
180-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
181-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
182-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
183-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
184-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
185171
working_directory: ~/repo
186172
steps:
187173
- checkout
@@ -210,15 +196,6 @@ jobs:
210196
environment:
211197
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
212198
PUBSUB_PROJECT1: test-project,test-topic
213-
- image: public.ecr.aws/bitnami/kafka:3.9.0
214-
environment:
215-
KAFKA_CFG_NODE_ID: 0
216-
KAFKA_CFG_PROCESS_ROLES: controller,broker
217-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
218-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
219-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
220-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
221-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
222199
working_directory: ~/repo
223200
steps:
224201
- checkout
@@ -248,15 +225,6 @@ jobs:
248225
environment:
249226
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
250227
PUBSUB_PROJECT1: test-project,test-topic
251-
- image: public.ecr.aws/bitnami/kafka:3.9.0
252-
environment:
253-
KAFKA_CFG_NODE_ID: 0
254-
KAFKA_CFG_PROCESS_ROLES: controller,broker
255-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
256-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
257-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
258-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
259-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
260228
working_directory: ~/repo
261229
steps:
262230
- checkout
@@ -286,15 +254,6 @@ jobs:
286254
environment:
287255
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
288256
PUBSUB_PROJECT1: test-project,test-topic
289-
- image: public.ecr.aws/bitnami/kafka:3.9.0
290-
environment:
291-
KAFKA_CFG_NODE_ID: 0
292-
KAFKA_CFG_PROCESS_ROLES: controller,broker
293-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
294-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
295-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
296-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
297-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
298257
working_directory: ~/repo
299258
steps:
300259
- checkout
@@ -338,15 +297,6 @@ jobs:
338297
environment:
339298
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
340299
PUBSUB_PROJECT1: test-project,test-topic
341-
- image: public.ecr.aws/bitnami/kafka:3.9.0
342-
environment:
343-
KAFKA_CFG_NODE_ID: 0
344-
KAFKA_CFG_PROCESS_ROLES: controller,broker
345-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
346-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
347-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
348-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
349-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
350300
working_directory: ~/repo
351301
steps:
352302
- checkout
@@ -359,7 +309,7 @@ jobs:
359309

360310
python314:
361311
docker:
362-
- image: public.ecr.aws/docker/library/python:3.14.0a5
312+
- image: public.ecr.aws/docker/library/python:3.14.0a6
363313
- image: public.ecr.aws/docker/library/postgres:16.2-bookworm
364314
environment:
365315
POSTGRES_USER: root
@@ -376,15 +326,6 @@ jobs:
376326
environment:
377327
PUBSUB_EMULATOR_HOST: 0.0.0.0:8681
378328
PUBSUB_PROJECT1: test-project,test-topic
379-
- image: public.ecr.aws/bitnami/kafka:3.9.0
380-
environment:
381-
KAFKA_CFG_NODE_ID: 0
382-
KAFKA_CFG_PROCESS_ROLES: controller,broker
383-
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
384-
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
385-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
386-
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
387-
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
388329
working_directory: ~/repo
389330
steps:
390331
- checkout
@@ -443,6 +384,30 @@ jobs:
443384
- store-pytest-results
444385
- store-coverage-report
445386

387+
py312kafka:
388+
docker:
389+
- image: public.ecr.aws/docker/library/python:3.12
390+
- image: public.ecr.aws/bitnami/kafka:3.9.0
391+
environment:
392+
KAFKA_CFG_NODE_ID: 0
393+
KAFKA_CFG_PROCESS_ROLES: controller,broker
394+
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
395+
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
396+
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@localhost:9093
397+
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
398+
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
399+
working_directory: ~/repo
400+
steps:
401+
- checkout
402+
- check-if-tests-needed
403+
- pip-install-deps:
404+
requirements: "tests/requirements-kafka.txt"
405+
- run-tests-with-coverage-report:
406+
kafka: "true"
407+
tests: "tests/clients/kafka/test*.py"
408+
- store-pytest-results
409+
- store-coverage-report
410+
446411
workflows:
447412
version: 2
448413
build:
@@ -457,6 +422,7 @@ workflows:
457422
- py39cassandra
458423
- py39gevent_starlette
459424
- py312aws
425+
- py312kafka
460426
- final_job:
461427
requires:
462428
- python38

.tekton/.currency/docs/report.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,27 @@
44
|:---------------------|:-----------------|:---------------|:-------------------------|:-----------------|:-------------|:---------------|:------------------------------|:--------------|:---------------|
55
| ASGI | 45-days | No | 3.0 | 3.0 | Yes | 2019-03-04 | 2019-03-04 | 0 day/s | No |
66
| Celery | 45-days | No | 5.4.0 | 5.4.0 | Yes | 2024-04-17 | 2024-04-17 | 0 day/s | No |
7-
| Django | 45-days | No | 5.1.6 | 5.1.6 | Yes | 2025-02-05 | 2025-02-05 | 0 day/s | No |
7+
| Django | 45-days | No | 5.1.7 | 5.1.7 | Yes | 2025-03-06 | 2025-03-06 | 0 day/s | No |
88
| FastAPI | 45-days | No | 0.115.11 | 0.115.11 | Yes | 2025-03-01 | 2025-03-01 | 0 day/s | No |
99
| Flask | 45-days | No | 3.1.0 | 3.1.0 | Yes | 2024-11-13 | 2024-11-13 | 0 day/s | No |
1010
| Pyramid | 45-days | No | 2.0.2 | 2.0.2 | Yes | 2023-08-25 | 2023-08-25 | 0 day/s | No |
1111
| Sanic | On demand | No | 24.12.0 | 24.12.0 | Yes | 2024-12-31 | 2024-12-31 | 0 day/s | No |
12-
| Starlette | 45-days | No | 0.46.0 | 0.46.0 | Yes | 2025-02-22 | 2025-02-22 | 0 day/s | No |
12+
| Starlette | 45-days | No | 0.46.1 | 0.46.1 | Yes | 2025-03-08 | 2025-03-08 | 0 day/s | No |
1313
| Tornado | 45-days | No | 6.4.2 | 6.4.2 | Yes | 2024-11-22 | 2024-11-22 | 0 day/s | No |
1414
| Webapp2 | On demand | No | 2.5.2 | 2.5.2 | Yes | 2012-09-28 | 2012-09-28 | 0 day/s | No |
1515
| WSGI | 0-day | Yes | 1.0.1 | 1.0.1 | Yes | 2010-09-26 | 2010-09-26 | 0 day/s | No |
1616
| Aiohttp | 45-days | No | 3.11.13 | 3.11.13 | Yes | 2025-02-24 | 2025-02-24 | 0 day/s | No |
1717
| Asynqp | Deprecated | No | 0.6 | 0.6 | Yes | 2019-01-20 | 2019-01-20 | 0 day/s | No |
18-
| Boto3 | 45-days | No | 1.37.5 | 1.37.5 | Yes | 2025-03-03 | 2025-03-03 | 0 day/s | Yes |
18+
| Boto3 | 45-days | No | 1.37.11 | 1.37.11 | Yes | 2025-03-11 | 2025-03-11 | 0 day/s | Yes |
1919
| Google-cloud-pubsub | 45-days | No | 2.28.0 | 2.28.0 | Yes | 2025-01-30 | 2025-01-30 | 0 day/s | Yes |
2020
| Google-cloud-storage | 45-days | No | 3.1.0 | 3.1.0 | Yes | 2025-02-28 | 2025-02-28 | 0 day/s | Yes |
21-
| Grpcio | 45-days | No | 1.71.0rc2 | 1.70.0 | Yes | 2025-01-23 | 2025-02-24 | 0 day/s | Yes |
21+
| Grpcio | 45-days | No | 1.71.0 | 1.71.0 | Yes | 2025-03-10 | 2025-03-10 | 0 day/s | Yes |
2222
| Mysqlclient | 45-days | No | 2.2.7 | 2.2.7 | Yes | 2025-01-10 | 2025-01-10 | 0 day/s | Yes |
2323
| Pika | 45-days | No | 1.3.2 | 1.3.2 | Yes | 2023-05-05 | 2023-05-05 | 0 day/s | No |
2424
| PyMySQL | 45-days | No | 1.1.1 | 1.1.1 | Yes | 2024-05-21 | 2024-05-21 | 0 day/s | Yes |
2525
| Pymongo | 45-days | No | 4.11.2 | 4.11.2 | Yes | 2025-03-03 | 2025-03-03 | 0 day/s | Yes |
2626
| Psycopg2 | 45-days | No | 2.9.10 | 2.9.10 | Yes | 2024-10-16 | 2024-10-16 | 0 day/s | No |
2727
| Redis | 45-days | No | 5.2.1 | 5.2.1 | Yes | 2024-12-06 | 2024-12-06 | 0 day/s | Yes |
2828
| Requests | 45-days | No | 2.32.3 | 2.32.3 | Yes | 2024-05-29 | 2024-05-29 | 0 day/s | Yes |
29-
| SQLAlchemy | 45-days | No | 2.0.38 | 2.0.38 | Yes | 2025-02-06 | 2025-02-06 | 0 day/s | Yes |
29+
| SQLAlchemy | 45-days | No | 2.0.39 | 2.0.39 | Yes | 2025-03-11 | 2025-03-11 | 0 day/s | Yes |
3030
| Urllib3 | 45-days | No | 2.3.0 | 2.3.0 | Yes | 2024-12-22 | 2024-12-22 | 0 day/s | No |

.tekton/.currency/scripts/generate_report.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,17 @@ def get_upstream_version(dependency, last_supported_version):
100100
release_time = response_json["releases"][latest_version][-1][
101101
"upload_time_iso_8601"
102102
]
103-
latest_version_release_date = datetime.fromisoformat(release_time)
103+
latest_version_release_date = datetime.strptime(
104+
release_time, "%Y-%m-%dT%H:%M:%S.%fZ"
105+
)
104106
formatted_release_date = latest_version_release_date.strftime("%Y-%m-%d")
105107
for version, release_info in response_json["releases"].items():
106108
if version == last_supported_version:
107109
release_time = release_info[-1]["upload_time_iso_8601"]
108-
release_date = datetime.fromisoformat(release_time)
109-
last_supported_version_release_date = release_date.strftime("%Y-%m-%d")
110+
last_supported_version_release_date = datetime.strptime(
111+
release_time, "%Y-%m-%dT%H:%M:%S.%fZ"
112+
).strftime("%Y-%m-%d")
113+
110114
return (
111115
latest_version,
112116
formatted_release_date,

.tekton/pipeline.yaml

+16-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ spec:
3838
- "sha256:ae24158f83adcb3ec1dead14356e6debc9f3125167624408d95338faacc5cce3"
3939
# public.ecr.aws/docker/library/python:3.13.2-bookworm
4040
- "sha256:90a15cf04e17111d514958f3b17186f2e239546f75530b1e301059f0b70de41f"
41-
# public.ecr.aws/docker/library/python:3.14.0a5-bookworm
42-
- "sha256:c00e5b4b511a77e0b11c52b88cb195c0dcc371e71d2f7ebb3ba1173387d71f92"
41+
# public.ecr.aws/docker/library/python:3.14.0a6-bookworm
42+
- "sha256:cc1702492859ae14ce2c417060215a94153a51f42954eb7fd5f275b5b3039926"
4343
taskRef:
4444
name: python-tracer-unittest-default-task
4545
workspaces:
@@ -87,3 +87,17 @@ spec:
8787
workspaces:
8888
- name: task-pvc
8989
workspace: python-tracer-ci-pipeline-pvc
90+
- name: unittest-kafka
91+
runAfter:
92+
- clone
93+
matrix:
94+
params:
95+
- name: imageDigest
96+
value:
97+
# public.ecr.aws/docker/library/python:3.12.9-bookworm
98+
- "sha256:ae24158f83adcb3ec1dead14356e6debc9f3125167624408d95338faacc5cce3"
99+
taskRef:
100+
name: python-tracer-unittest-kafka-task
101+
workspaces:
102+
- name: task-pvc
103+
workspace: python-tracer-ci-pipeline-pvc

.tekton/python-tracer-prepuller.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ spec:
7474
image: public.ecr.aws/docker/library/python@sha256:90a15cf04e17111d514958f3b17186f2e239546f75530b1e301059f0b70de41f
7575
command: ["sh", "-c", "'true'"]
7676
- name: prepuller-314
77-
# public.ecr.aws/docker/library/python:3.14.0a5-bookworm
78-
image: public.ecr.aws/docker/library/python@sha256:c00e5b4b511a77e0b11c52b88cb195c0dcc371e71d2f7ebb3ba1173387d71f92
77+
# public.ecr.aws/docker/library/python:3.14.0a6-bookworm
78+
image: public.ecr.aws/docker/library/python@sha256:cc1702492859ae14ce2c417060215a94153a51f42954eb7fd5f275b5b3039926
7979
command: ["sh", "-c", "'true'"]
8080

8181
# Use the pause container to ensure the Pod goes into a `Running` phase

.tekton/run_unittests.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ gevent_starlette)
3232
aws)
3333
export REQUIREMENTS='requirements.txt'
3434
export TESTS=('tests_aws') ;;
35+
kafka)
36+
export REQUIREMENTS='requirements-kafka.txt'
37+
export TESTS=('tests/clients/kafka')
38+
export KAFKA_TEST='true' ;;
3539
*)
3640
echo "ERROR \$TEST_CONFIGURATION='${TEST_CONFIGURATION}' is unsupported " \
37-
"not in (default|cassandra|gevent_starlette|aws)" >&2
41+
"not in (default|cassandra|gevent_starlette|aws|kafka)" >&2
3842
exit 3 ;;
3943
esac
4044

0 commit comments

Comments
 (0)