Skip to content

Commit 697b076

Browse files
authored
Merge branch 'main' into wantsui/fix-should-skip
2 parents a9458c9 + 21d50d4 commit 697b076

File tree

932 files changed

+12029
-10005
lines changed

Some content is hidden

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

932 files changed

+12029
-10005
lines changed

.circleci/config.templ.yml

-13
Original file line numberDiff line numberDiff line change
@@ -404,19 +404,6 @@ jobs:
404404
paths:
405405
- "."
406406

407-
appsec_iast_packages:
408-
<<: *machine_executor
409-
parallelism: 5
410-
steps:
411-
- when:
412-
condition:
413-
matches: { pattern: "main", value: << pipeline.git.branch >> }
414-
steps:
415-
- run_test:
416-
pattern: 'appsec_iast_packages'
417-
snapshot: true
418-
- run: echo "This test is skipped outside of main branch"
419-
420407
appsec_integrations:
421408
<<: *machine_executor
422409
parallelism: 13

.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ benchmarks/base/aspects_benchmarks_generate.py @DataDog/asm-python
110110
ddtrace/appsec/ @DataDog/asm-python
111111
ddtrace/settings/asm.py @DataDog/asm-python
112112
ddtrace/contrib/subprocess/ @DataDog/asm-python
113+
ddtrace/contrib/internal/subprocess/ @DataDog/asm-python
113114
ddtrace/contrib/flask_login/ @DataDog/asm-python
114115
ddtrace/contrib/webbrowser @DataDog/asm-python
115116
ddtrace/contrib/urllib @DataDog/asm-python
File renamed without changes.

.github/workflows/build_python_3.yml

+4
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ jobs:
132132
CIBW_BEFORE_ALL_WINDOWS: rustup target add i686-pc-windows-msvc
133133
CIBW_BEFORE_ALL_MACOS: rustup target add aarch64-apple-darwin
134134
CIBW_ENVIRONMENT_LINUX: PATH=$HOME/.cargo/bin:$PATH CMAKE_BUILD_PARALLEL_LEVEL=24
135+
# SYSTEM_VERSION_COMPAT is a workaround for versioning issue, a.k.a.
136+
# `platform.mac_ver()` reports incorrect MacOS version at 11.0
137+
# See: https://stackoverflow.com/a/65402241
138+
CIBW_ENVIRONMENT_MACOS: CMAKE_BUILD_PARALLEL_LEVEL=24 SYSTEM_VERSION_COMPAT=0
135139
CIBW_REPAIR_WHEEL_COMMAND_LINUX: |
136140
mkdir ./tempwheelhouse &&
137141
unzip -l {wheel} | grep '\.so' &&

.github/workflows/system-tests.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
- weblog-variant: fastapi
4848
# runs django-poc for 3.12
4949
- weblog-variant: python3.12
50+
- weblog-variant: django-py3.13
5051
fail-fast: false
5152
env:
5253
TEST_LIBRARY: python
@@ -96,7 +97,7 @@ jobs:
9697
needs: [system-tests-build-agent, system-tests-build-weblog]
9798
strategy:
9899
matrix:
99-
weblog-variant: [flask-poc, uwsgi-poc , django-poc, fastapi, python3.12]
100+
weblog-variant: [flask-poc, uwsgi-poc , django-poc, fastapi, python3.12, django-py3.13]
100101
scenario: [remote-config, appsec, appsec-1, other, debugger-1, debugger-2]
101102

102103
fail-fast: false

.github/workflows/test_frameworks.yml

-117
Original file line numberDiff line numberDiff line change
@@ -111,68 +111,6 @@ jobs:
111111
if: needs.needs-run.outputs.outcome == 'success'
112112
run: cat debugger-expl.txt
113113

114-
sanic-testsuite:
115-
strategy:
116-
matrix:
117-
include:
118-
# TODO: profiling fails with a timeout error
119-
#- suffix: Profiling
120-
# profiling: 1
121-
# iast: 0
122-
# appsec: 0
123-
- suffix: IAST
124-
profiling: 0
125-
iast: 1
126-
appsec: 0
127-
- suffix: APPSEC
128-
profiling: 0
129-
iast: 0
130-
appsec: 1
131-
- suffix: Tracer only
132-
profiling: 0
133-
iast: 0
134-
appsec: 0
135-
name: Sanic 24.6 (with ${{ matrix.suffix }})
136-
runs-on: ubuntu-20.04
137-
needs: needs-run
138-
timeout-minutes: 15
139-
env:
140-
DD_PROFILING_ENABLED: ${{ matrix.profiling }}
141-
DD_IAST_ENABLED: ${{ matrix.iast }}
142-
DD_APPSEC_ENABLED: ${{ matrix.appsec }}
143-
DD_TESTING_RAISE: true
144-
CMAKE_BUILD_PARALLEL_LEVEL: 12
145-
DD_DEBUGGER_EXPL_OUTPUT_FILE: debugger-expl.txt
146-
defaults:
147-
run:
148-
working-directory: sanic
149-
steps:
150-
- uses: actions/checkout@v4
151-
if: needs.needs-run.outputs.outcome == 'success'
152-
with:
153-
persist-credentials: false
154-
path: ddtrace
155-
- uses: actions/checkout@v4
156-
if: needs.needs-run.outputs.outcome == 'success'
157-
with:
158-
persist-credentials: false
159-
repository: sanic-org/sanic
160-
ref: v24.6.0
161-
path: sanic
162-
- uses: actions/setup-python@v5
163-
if: needs.needs-run.outputs.outcome == 'success'
164-
with:
165-
python-version: "3.11"
166-
- name: Install sanic and dependencies required to run tests
167-
if: needs.needs-run.outputs.outcome == 'success'
168-
run: pip3 install '.[test]' aioquic
169-
- name: Install ddtrace
170-
if: needs.needs-run.outputs.outcome == 'success'
171-
run: pip3 install ../ddtrace
172-
- name: Run tests
173-
if: needs.needs-run.outputs.outcome == 'success'
174-
run: ddtrace-run pytest -k "not test_reloader and not test_reload_listeners and not test_no_exceptions_when_cancel_pending_request and not test_add_signal and not test_ode_removes and not test_skip_touchup and not test_dispatch_signal_triggers and not test_keep_alive_connection_context and not test_redirect_with_params and not test_keep_alive_client_timeout and not test_logger_vhosts and not test_ssl_in_multiprocess_mode"
175-
176114
django-testsuite:
177115
strategy:
178116
matrix:
@@ -963,58 +901,3 @@ jobs:
963901
- name: Debugger exploration results
964902
if: needs.needs-run.outputs.outcome == 'success'
965903
run: cat debugger-expl.txt
966-
967-
beautifulsoup-testsuite-4_12_3:
968-
strategy:
969-
matrix:
970-
include:
971-
# TODO: profiling is disabled due to a bug in the profiler paths
972-
# - suffix: Profiling
973-
# profiling: 1
974-
# iast: 0
975-
# appsec: 0
976-
- suffix: IAST
977-
profiling: 0
978-
iast: 1
979-
appsec: 0
980-
- suffix: APPSEC
981-
profiling: 0
982-
iast: 0
983-
appsec: 1
984-
- suffix: Tracer only
985-
profiling: 0
986-
iast: 0
987-
appsec: 0
988-
name: Beautifulsoup 4.12.3 (with ${{ matrix.suffix }})
989-
runs-on: "ubuntu-latest"
990-
needs: needs-run
991-
env:
992-
DD_TESTING_RAISE: true
993-
DD_PROFILING_ENABLED: ${{ matrix.profiling }}
994-
DD_IAST_ENABLED: ${{ matrix.iast }}
995-
DD_APPSEC_ENABLED: ${{ matrix.appsec }}
996-
CMAKE_BUILD_PARALLEL_LEVEL: 12
997-
DD_DEBUGGER_EXPL_OUTPUT_FILE: debugger-expl.txt
998-
steps:
999-
- uses: actions/setup-python@v5
1000-
if: needs.needs-run.outputs.outcome == 'success'
1001-
with:
1002-
python-version: '3.9'
1003-
- uses: actions/checkout@v4
1004-
if: needs.needs-run.outputs.outcome == 'success'
1005-
with:
1006-
persist-credentials: false
1007-
path: ddtrace
1008-
- name: Checkout beautifulsoup
1009-
if: needs.needs-run.outputs.outcome == 'success'
1010-
run: |
1011-
git clone -b 4.12.3 https://git.launchpad.net/beautifulsoup
1012-
- name: Install ddtrace
1013-
if: needs.needs-run.outputs.outcome == 'success'
1014-
run: pip3 install ./ddtrace
1015-
- name: Pytest fix
1016-
if: needs.needs-run.outputs.outcome == 'success'
1017-
run: pip install pytest==8.2.1
1018-
- name: Run tests
1019-
if: needs.needs-run.outputs.outcome == 'success'
1020-
run: cd beautifulsoup && ddtrace-run pytest

.riot/requirements/1053dce.txt

+9-9
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@
44
#
55
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1053dce.in
66
#
7-
attrs==24.2.0
8-
coverage[toml]==7.6.1
9-
gevent==24.2.1
7+
attrs==24.3.0
8+
coverage[toml]==7.6.10
9+
gevent==24.11.1
1010
greenlet==3.1.1
1111
hypothesis==6.45.0
1212
iniconfig==2.0.0
1313
mock==5.1.0
1414
opentracing==2.4.0
15-
packaging==24.1
15+
packaging==24.2
1616
pluggy==1.5.0
17-
pytest==8.3.3
18-
pytest-cov==5.0.0
17+
pytest==8.3.4
18+
pytest-cov==6.0.0
1919
pytest-mock==3.14.0
20-
pytest-randomly==3.15.0
20+
pytest-randomly==3.16.0
2121
sortedcontainers==2.4.0
2222
zope-event==5.0
23-
zope-interface==7.0.3
23+
zope-interface==7.2
2424

2525
# The following packages are considered to be unsafe in a requirements file:
26-
setuptools==75.1.0
26+
setuptools==75.7.0

.riot/requirements/105b4fa.txt

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
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/105b4fa.in
6+
#
7+
arrow==1.3.0
8+
asgiref==3.8.1
9+
attrs==24.3.0
10+
autobahn==24.4.2
11+
automat==24.8.1
12+
bcrypt==4.2.1
13+
blessed==1.20.0
14+
certifi==2024.12.14
15+
cffi==1.17.1
16+
channels==4.2.0
17+
charset-normalizer==3.4.0
18+
constantly==23.10.4
19+
coverage[toml]==7.6.9
20+
cryptography==44.0.0
21+
daphne==4.1.2
22+
django==4.2.17
23+
django-configurations==2.5.1
24+
django-picklefield==3.2
25+
django-pylibmc==0.6.1
26+
django-q==1.3.6
27+
django-redis==4.5.0
28+
hyperlink==21.0.0
29+
hypothesis==6.45.0
30+
idna==3.10
31+
incremental==24.7.2
32+
iniconfig==2.0.0
33+
isodate==0.7.2
34+
lxml==5.3.0
35+
mock==5.1.0
36+
opentracing==2.4.0
37+
packaging==24.2
38+
platformdirs==4.3.6
39+
pluggy==1.5.0
40+
psycopg==3.2.3
41+
psycopg2-binary==2.9.10
42+
pyasn1==0.6.1
43+
pyasn1-modules==0.4.1
44+
pycparser==2.22
45+
pylibmc==1.6.3
46+
pyopenssl==24.3.0
47+
pytest==8.3.4
48+
pytest-cov==6.0.0
49+
pytest-django[testing]==3.10.0
50+
pytest-mock==3.14.0
51+
pytest-randomly==3.16.0
52+
python-dateutil==2.9.0.post0
53+
python-memcached==1.62
54+
pytz==2024.2
55+
redis==2.10.6
56+
requests==2.32.3
57+
requests-file==2.1.0
58+
requests-toolbelt==1.0.0
59+
service-identity==24.2.0
60+
six==1.17.0
61+
sortedcontainers==2.4.0
62+
spyne==2.14.0
63+
sqlparse==0.5.3
64+
twisted[tls]==24.11.0
65+
txaio==23.1.1
66+
types-python-dateutil==2.9.0.20241206
67+
typing-extensions==4.12.2
68+
urllib3==2.3.0
69+
wcwidth==0.2.13
70+
zeep==4.3.1
71+
zope-interface==7.2
72+
73+
# The following packages are considered to be unsafe in a requirements file:
74+
setuptools==75.6.0

.riot/requirements/108f9cf.txt .riot/requirements/1069d71.txt

+13-13
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,37 @@
22
# This file is autogenerated by pip-compile with Python 3.10
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/108f9cf.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1069d71.in
66
#
77
aiofiles==24.1.0
8-
anyio==4.6.2.post1
9-
attrs==24.2.0
10-
certifi==2024.8.30
8+
anyio==4.7.0
9+
attrs==24.3.0
10+
certifi==2024.12.14
1111
charset-normalizer==3.4.0
12-
coverage[toml]==7.6.3
12+
coverage[toml]==7.6.9
1313
exceptiongroup==1.2.2
1414
fastapi==0.90.1
1515
h11==0.14.0
16-
httpcore==1.0.6
16+
httpcore==1.0.7
1717
httpx==0.27.2
1818
hypothesis==6.45.0
1919
idna==3.10
2020
iniconfig==2.0.0
2121
mock==5.1.0
2222
opentracing==2.4.0
23-
packaging==24.1
23+
packaging==24.2
2424
pluggy==1.5.0
25-
pydantic==1.10.18
26-
pytest==8.3.3
25+
pydantic==1.10.19
26+
pytest==8.3.4
2727
pytest-asyncio==0.21.1
28-
pytest-cov==5.0.0
28+
pytest-cov==6.0.0
2929
pytest-mock==3.14.0
30-
pytest-randomly==3.15.0
31-
python-multipart==0.0.12
30+
pytest-randomly==3.16.0
31+
python-multipart==0.0.20
3232
requests==2.32.3
3333
sniffio==1.3.1
3434
sortedcontainers==2.4.0
3535
starlette==0.23.1
36-
tomli==2.0.2
36+
tomli==2.2.1
3737
typing-extensions==4.12.2
3838
urllib3==2.2.3

.riot/requirements/1078c3b.txt

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.8
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1078c3b.in
6+
#
7+
attrs==24.3.0
8+
coverage[toml]==7.6.1
9+
exceptiongroup==1.2.2
10+
greenlet==3.0.3
11+
hypothesis==6.45.0
12+
importlib-metadata==8.5.0
13+
iniconfig==2.0.0
14+
mock==5.1.0
15+
mysql-connector-python==9.0.0
16+
opentracing==2.4.0
17+
packaging==24.2
18+
pluggy==1.5.0
19+
psycopg2-binary==2.9.10
20+
pytest==8.3.4
21+
pytest-cov==5.0.0
22+
pytest-mock==3.14.0
23+
pytest-randomly==3.15.0
24+
sortedcontainers==2.4.0
25+
sqlalchemy==1.3.24
26+
tomli==2.2.1
27+
zipp==3.20.2

0 commit comments

Comments
 (0)