Skip to content

Commit 2b27c76

Browse files
authored
Merge branch 'main' into tyler.finethy/repro-retry-failure
2 parents 80b92e2 + 2cc3c8b commit 2b27c76

File tree

163 files changed

+5074
-2731
lines changed

Some content is hidden

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

163 files changed

+5074
-2731
lines changed

.github/workflows/build_deploy.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ jobs:
9393
- name: Build sdist
9494
run: |
9595
pip install "setuptools_scm[toml]>=4" "cython" "cmake>=3.24.2,<3.28" "setuptools-rust"
96-
python setup.py sdist
96+
# Disable cython extensions to avoid compiling .pyx files
97+
DD_CYTHONIZE=0 python setup.py sdist
9798
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
9899
with:
99100
name: source-dist
@@ -110,6 +111,17 @@ jobs:
110111
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
111112
with:
112113
persist-credentials: false
114+
115+
- name: Enable sccache
116+
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # 0.0.9
117+
118+
- name: Add addtional GHA cache-related env vars
119+
uses: actions/github-script@v7
120+
with:
121+
script: |
122+
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
123+
core.exportVariable('ACTIONS_RUNTIME_URL', process.env['ACTIONS_RUNTIME_URL'])
124+
113125
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
114126
with:
115127
name: source-dist
@@ -127,6 +139,10 @@ jobs:
127139
- name: Install source package
128140
env:
129141
CMAKE_BUILD_PARALLEL_LEVEL: 12
142+
CARGO_BUILD_JOBS: 12
143+
SCCACHE_GHA_ENABLED: true
144+
SCCACHE_CACHE_SIZE: 1G
145+
DD_USE_SCCACHE: 1
130146
run: pip install dist/*.tar.gz
131147

132148
- name: Test the source package

.github/workflows/build_python_3.yml

Lines changed: 84 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -83,52 +83,26 @@ jobs:
8383
fail-fast: false
8484
matrix:
8585
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}
86-
env:
87-
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE: ${{ needs.compute_version.outputs.library_version }}
88-
CIBW_SKIP: ${{ inputs.cibw_skip }}
89-
CIBW_PRERELEASE_PYTHONS: ${{ inputs.cibw_prerelease_pythons }}
90-
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
91-
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
92-
CIBW_MUSLLINUX_I686_IMAGE: ghcr.io/datadog/dd-trace-py/pypa_musllinux_1_2_i686:latest
93-
CIBW_BEFORE_ALL_WINDOWS: ${{ matrix.os == 'windows-latest' && 'rustup target add i686-pc-windows-msvc' || (matrix.os == 'windows-11-arm' && 'rustup target add aarch64-pc-windows-msvc') }}
94-
CIBW_BEFORE_ALL_MACOS: rustup target add aarch64-apple-darwin
95-
CIBW_BEFORE_ALL_LINUX: |
96-
if [[ "$(uname -m)-$(uname -i)-$(uname -o | tr '[:upper:]' '[:lower:]')-$(ldd --version 2>&1 | head -n 1 | awk '{print $1}')" != "i686-unknown-linux-musl" ]]; then
97-
curl -sSf https://sh.rustup.rs | sh -s -- -y;
98-
fi
99-
CIBW_ENVIRONMENT_LINUX: PATH=$HOME/.cargo/bin:$PATH CMAKE_BUILD_PARALLEL_LEVEL=24 CMAKE_ARGS="-DNATIVE_TESTING=OFF" SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
100-
# SYSTEM_VERSION_COMPAT is a workaround for versioning issue, a.k.a.
101-
# `platform.mac_ver()` reports incorrect MacOS version at 11.0
102-
# See: https://stackoverflow.com/a/65402241
103-
CIBW_ENVIRONMENT_MACOS: CMAKE_BUILD_PARALLEL_LEVEL=24 SYSTEM_VERSION_COMPAT=0 CMAKE_ARGS="-DNATIVE_TESTING=OFF" SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
104-
CIBW_ENVIRONMENT_WINDOWS: SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
105-
# cibuildwheel repair will copy anything's under /output directory from the
106-
# build container to the host machine. This is a bit hacky way, but seems
107-
# to be the only way getting debug symbols out from the container while
108-
# we don't mess up with RECORD file.
109-
CIBW_REPAIR_WHEEL_COMMAND_LINUX: |
110-
mkdir -p /output/debugwheelhouse &&
111-
python scripts/extract_debug_symbols.py {wheel} --output-dir /output/debugwheelhouse &&
112-
python scripts/zip_filter.py {wheel} \*.c \*.cpp \*.cc \*.h \*.hpp \*.pyx \*.md &&
113-
mkdir ./tempwheelhouse &&
114-
unzip -l {wheel} | grep '\.so' &&
115-
auditwheel repair -w ./tempwheelhouse {wheel} &&
116-
mv ./tempwheelhouse/*.whl {dest_dir} &&
117-
rm -rf ./tempwheelhouse
118-
CIBW_REPAIR_WHEEL_COMMAND_MACOS: |
119-
mkdir -p ./debugwheelhouse &&
120-
python scripts/extract_debug_symbols.py {wheel} --output-dir ./debugwheelhouse &&
121-
python scripts/zip_filter.py {wheel} \*.c \*.cpp \*.cc \*.h \*.hpp \*.pyx \*.md &&
122-
MACOSX_DEPLOYMENT_TARGET=12.7 delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
123-
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: python scripts/zip_filter.py "{wheel}" "*.c" "*.cpp" "*.cc" "*.h" "*.hpp" "*.pyx" "*.md" && mv "{wheel}" "{dest_dir}"
124-
CIBW_TEST_COMMAND: "python {project}/tests/smoke_test.py"
125-
12686
steps:
12787
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
12888
with:
12989
persist-credentials: false
13090
fetch-depth: 0
13191

92+
- name: Enable sccache
93+
if: runner.os != 'Windows'
94+
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # 0.0.9
95+
with:
96+
disable_annotations: true
97+
98+
- name: Add addtional GHA cache-related env vars
99+
uses: actions/github-script@v7
100+
if: runner.os != 'Windows'
101+
with:
102+
script: |
103+
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
104+
core.exportVariable('ACTIONS_RUNTIME_URL', process.env['ACTIONS_RUNTIME_URL'])
105+
132106
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
133107
name: Install Python
134108
with:
@@ -144,7 +118,76 @@ jobs:
144118
uses: pypa/cibuildwheel@c923d83ad9c1bc00211c5041d0c3f73294ff88f6 # v3.1.4
145119
with:
146120
only: ${{ matrix.only }}
147-
121+
env:
122+
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE: ${{ needs.compute_version.outputs.library_version }}
123+
CIBW_SKIP: ${{ inputs.cibw_skip }}
124+
CIBW_PRERELEASE_PYTHONS: ${{ inputs.cibw_prerelease_pythons }}
125+
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
126+
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
127+
CIBW_MUSLLINUX_I686_IMAGE: ghcr.io/datadog/dd-trace-py/pypa_musllinux_1_2_i686:latest
128+
CIBW_BEFORE_ALL_WINDOWS: ${{ matrix.os == 'windows-latest' && 'rustup target add i686-pc-windows-msvc' || (matrix.os == 'windows-11-arm' && 'rustup target add aarch64-pc-windows-msvc') }}
129+
CIBW_BEFORE_ALL_MACOS: rustup target add aarch64-apple-darwin
130+
CIBW_BEFORE_ALL_LINUX: |
131+
if [[ "$(uname -m)-$(uname -i)-$(uname -o | tr '[:upper:]' '[:lower:]')-$(ldd --version 2>&1 | head -n 1 | awk '{print $1}')" != "i686-unknown-linux-musl" ]]; then
132+
curl -sSf https://sh.rustup.rs | sh -s -- -y;
133+
fi
134+
CIBW_ENVIRONMENT_LINUX: >
135+
PATH=$HOME/.cargo/bin:$PATH
136+
CARGO_BUILD_JOBS=24
137+
CMAKE_BUILD_PARALLEL_LEVEL=24
138+
CMAKE_ARGS="-DNATIVE_TESTING=OFF"
139+
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
140+
SCCACHE_GHA_ENABLED=true
141+
SCCACHE_DIR=/host/${{ env.SCCACHE_DIR }}
142+
SCCACHE_PATH=/host/${{ env.SCCACHE_PATH }}
143+
SCCACHE_CACHE_SIZE=1G
144+
ACTIONS_RUNTIME_TOKEN=${{ env.ACTIONS_RUNTIME_TOKEN }}
145+
ACTIONS_RUNTIME_URL=${{ env.ACTIONS_RUNTIME_URL }}
146+
ACTIONS_RESULTS_URL=${{ env.ACTIONS_RESULTS_URL }}
147+
ACTIONS_CACHE_URL=${{ env.ACTIONS_CACHE_URL }}
148+
ACTIONS_CACHE_SERVICE_V2=${{ env.ACTIONS_CACHE_SERVICE_V2 }}
149+
DD_USE_SCCACHE=1
150+
# SYSTEM_VERSION_COMPAT is a workaround for versioning issue, a.k.a.
151+
# `platform.mac_ver()` reports incorrect MacOS version at 11.0
152+
# See: https://stackoverflow.com/a/65402241
153+
CIBW_ENVIRONMENT_MACOS: >
154+
CMAKE_BUILD_PARALLEL_LEVEL=24
155+
CARGO_BUILD_JOBS=24
156+
SYSTEM_VERSION_COMPAT=0
157+
CMAKE_ARGS="-DNATIVE_TESTING=OFF"
158+
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
159+
SCCACHE_GHA_ENABLED=true
160+
SCCACHE_CACHE_SIZE=1G
161+
ACTIONS_RUNTIME_TOKEN=${{ env.ACTIONS_RUNTIME_TOKEN }}
162+
ACTIONS_RUNTIME_URL=${{ env.ACTIONS_RUNTIME_URL }}
163+
ACTIONS_RESULTS_URL=${{ env.ACTIONS_RESULTS_URL }}
164+
ACTIONS_CACHE_URL=${{ env.ACTIONS_CACHE_URL }}
165+
ACTIONS_CACHE_SERVICE_V2=${{ env.ACTIONS_CACHE_SERVICE_V2 }}
166+
DD_USE_SCCACHE=1
167+
CIBW_ENVIRONMENT_WINDOWS: >
168+
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DDTRACE=${{ needs.compute_version.outputs.library_version }}
169+
# cibuildwheel repair will copy anything's under /output directory from the
170+
# build container to the host machine. This is a bit hacky way, but seems
171+
# to be the only way getting debug symbols out from the container while
172+
# we don't mess up with RECORD file.
173+
CIBW_REPAIR_WHEEL_COMMAND_LINUX: |
174+
mkdir -p /output/debugwheelhouse &&
175+
python scripts/extract_debug_symbols.py {wheel} --output-dir /output/debugwheelhouse &&
176+
python scripts/zip_filter.py {wheel} \*.c \*.cpp \*.cc \*.h \*.hpp \*.pyx \*.md &&
177+
mkdir ./tempwheelhouse &&
178+
unzip -l {wheel} | grep '\.so' &&
179+
auditwheel repair -w ./tempwheelhouse {wheel} &&
180+
mv ./tempwheelhouse/*.whl {dest_dir} &&
181+
rm -rf ./tempwheelhouse
182+
CIBW_REPAIR_WHEEL_COMMAND_MACOS: |
183+
mkdir -p ./debugwheelhouse &&
184+
python scripts/extract_debug_symbols.py {wheel} --output-dir ./debugwheelhouse &&
185+
python scripts/zip_filter.py {wheel} \*.c \*.cpp \*.cc \*.h \*.hpp \*.pyx \*.md &&
186+
MACOSX_DEPLOYMENT_TARGET=12.7 delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
187+
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: python scripts/zip_filter.py "{wheel}" "*.c" "*.cpp" "*.cc" "*.h" "*.hpp" "*.pyx" "*.md" && mv "{wheel}" "{dest_dir}"
188+
CIBW_BEFORE_TEST_LINUX: /host/${{ env.SCCACHE_PATH }} --show-stats
189+
CIBW_BEFORE_TEST_MACOS: ${{ env.SCCACHE_PATH }} --show-stats
190+
CIBW_TEST_COMMAND: "python {project}/tests/smoke_test.py"
148191
- name: Validate wheel RECORD files
149192
shell: bash
150193
run: |

.gitlab/benchmarks/macrobenchmarks.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ candidate:
1717
image: $PACKAGE_IMAGE
1818
stage: build
1919
tags: [ "arch:amd64" ]
20+
rules:
21+
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+$/
22+
interruptible: false
23+
- interruptible: true
2024
needs:
2125
- pipeline: $PARENT_PIPELINE_ID
2226
job: download_ddtrace_artifacts
@@ -33,6 +37,10 @@ candidate:
3337
stage: test
3438
needs: [ "candidate" ]
3539
tags: ["runner:apm-k8s-same-cpu"]
40+
rules:
41+
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+$/
42+
interruptible: false
43+
- interruptible: true
3644
timeout: 1h
3745
retry:
3846
max: 2

.gitlab/benchmarks/microbenchmarks.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ variables:
1616
when: on_success
1717
tags: ["runner:apm-k8s-tweaked-metal"]
1818
image: $MICROBENCHMARKS_CI_IMAGE
19-
interruptible: true
19+
rules:
20+
- if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH =~ /^[0-9]+\.[0-9]+$/
21+
interruptible: false
22+
- interruptible: true
2023
timeout: 30m
2124
dependencies: [ "baseline:build", "candidate" ]
2225
script: |

.riot/requirements/13e0d21.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.13
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/13e0d21.in
6+
#
7+
aiokafka==0.9.0
8+
async-timeout==5.0.1
9+
attrs==25.4.0
10+
coverage[toml]==7.11.0
11+
hypothesis==6.45.0
12+
iniconfig==2.3.0
13+
mock==5.2.0
14+
opentracing==2.4.0
15+
packaging==25.0
16+
pluggy==1.6.0
17+
pygments==2.19.2
18+
pytest==8.4.2
19+
pytest-asyncio==1.2.0
20+
pytest-cov==7.0.0
21+
pytest-mock==3.15.1
22+
pytest-randomly==4.0.1
23+
sortedcontainers==2.4.0

.riot/requirements/16ebde6.txt

Lines changed: 0 additions & 24 deletions
This file was deleted.

.riot/requirements/1c72bfb.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.13
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1c72bfb.in
6+
#
7+
aiokafka==0.12.0
8+
async-timeout==5.0.1
9+
attrs==25.4.0
10+
coverage[toml]==7.11.0
11+
hypothesis==6.45.0
12+
iniconfig==2.3.0
13+
mock==5.2.0
14+
opentracing==2.4.0
15+
packaging==25.0
16+
pluggy==1.6.0
17+
pygments==2.19.2
18+
pytest==8.4.2
19+
pytest-asyncio==1.2.0
20+
pytest-cov==7.0.0
21+
pytest-mock==3.15.1
22+
pytest-randomly==4.0.1
23+
sortedcontainers==2.4.0
24+
typing-extensions==4.15.0

.riot/requirements/1ded764.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.14
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1ded764.in
6+
#
7+
aiokafka==0.9.0
8+
async-timeout==5.0.1
9+
attrs==25.4.0
10+
coverage[toml]==7.11.0
11+
hypothesis==6.45.0
12+
iniconfig==2.3.0
13+
mock==5.2.0
14+
opentracing==2.4.0
15+
packaging==25.0
16+
pluggy==1.6.0
17+
pygments==2.19.2
18+
pytest==8.4.2
19+
pytest-asyncio==1.2.0
20+
pytest-cov==7.0.0
21+
pytest-mock==3.15.1
22+
pytest-randomly==4.0.1
23+
sortedcontainers==2.4.0

.riot/requirements/329b0ed.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.12
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/329b0ed.in
6+
#
7+
aiokafka==0.9.0
8+
async-timeout==5.0.1
9+
attrs==25.4.0
10+
coverage[toml]==7.11.0
11+
hypothesis==6.45.0
12+
iniconfig==2.3.0
13+
mock==5.2.0
14+
opentracing==2.4.0
15+
packaging==25.0
16+
pluggy==1.6.0
17+
pygments==2.19.2
18+
pytest==8.4.2
19+
pytest-asyncio==1.2.0
20+
pytest-cov==7.0.0
21+
pytest-mock==3.15.1
22+
pytest-randomly==4.0.1
23+
sortedcontainers==2.4.0
24+
typing-extensions==4.15.0

.riot/requirements/4532043.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.11
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/4532043.in
6+
#
7+
aiokafka==0.12.0
8+
async-timeout==5.0.1
9+
attrs==25.4.0
10+
coverage[toml]==7.11.0
11+
hypothesis==6.45.0
12+
iniconfig==2.3.0
13+
mock==5.2.0
14+
opentracing==2.4.0
15+
packaging==25.0
16+
pluggy==1.6.0
17+
pygments==2.19.2
18+
pytest==8.4.2
19+
pytest-asyncio==1.2.0
20+
pytest-cov==7.0.0
21+
pytest-mock==3.15.1
22+
pytest-randomly==4.0.1
23+
sortedcontainers==2.4.0
24+
typing-extensions==4.15.0

0 commit comments

Comments
 (0)