Skip to content

Commit 38aa18d

Browse files
authored
ci(iast): fix and enable python3.14 tests (#15340)
This PR enables Python 3.14 compatibility for the IAST (Interactive Application Security Testing) test suite. The primary change involves migrating from pycryptodome to the cryptography library for cipher operations, as pycryptodome doesn't yet publish Python 3.14 wheels. Tests that require pycryptodome-specific functionality are now skipped on Python 3.14 with appropriate markers. Additionally, the PR updates riot test configurations to include Python 3.14 in IAST test venvs, fixes reference counting tests to accommodate Python 3.14's JIT behavior, and adjusts test parallelism settings to improve CI performance. The changes maintain backward compatibility with earlier Python versions while unblocking IAST testing on the latest Python release.
1 parent c8859ce commit 38aa18d

Some content is hidden

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

41 files changed

+682
-572
lines changed

.claude/settings.local.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
"mcp__github__pull_request_read",
2626
"WebFetch(domain:github.com)",
2727
"Skill(run-tests)",
28-
"Bash(scripts/run-tests:*)"
28+
"Bash(scripts/run-tests:*)",
29+
"Bash(gh pr list:*)",
30+
"Bash(git remote:*)"
2931
],
3032
"deny": []
3133
}

.riot/requirements/1036e18.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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/1036e18.in
6+
#
7+
aiosqlite==0.21.0
8+
attrs==25.4.0
9+
blinker==1.9.0
10+
certifi==2025.11.12
11+
cffi==2.0.0
12+
charset-normalizer==3.4.4
13+
click==8.3.1
14+
coverage[toml]==7.12.0
15+
cryptography==46.0.3
16+
flask==3.1.2
17+
greenlet==3.2.4
18+
hypothesis==6.45.0
19+
idna==3.11
20+
iniconfig==2.3.0
21+
iso8601==2.1.0
22+
itsdangerous==2.2.0
23+
jinja2==3.1.6
24+
markupsafe==3.0.3
25+
mock==5.2.0
26+
opentracing==2.4.0
27+
packaging==25.0
28+
peewee==3.18.3
29+
pluggy==1.6.0
30+
pony==0.7.19
31+
pycparser==2.23
32+
pygments==2.19.2
33+
pypika-tortoise==0.6.2
34+
pytest==9.0.1
35+
pytest-cov==7.0.0
36+
pytest-mock==3.15.1
37+
pytz==2025.2
38+
requests==2.32.5
39+
sortedcontainers==2.4.0
40+
sqlalchemy==2.0.44
41+
tortoise-orm==0.25.1
42+
typing-extensions==4.15.0
43+
urllib3==2.5.0
44+
werkzeug==3.1.3

.riot/requirements/115915a.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.10
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/115915a.in
6+
#
7+
aiosqlite==0.21.0
8+
attrs==25.4.0
9+
blinker==1.9.0
10+
certifi==2025.11.12
11+
cffi==2.0.0
12+
charset-normalizer==3.4.4
13+
click==8.3.1
14+
coverage[toml]==7.12.0
15+
cryptography==46.0.3
16+
exceptiongroup==1.3.0
17+
flask==3.1.2
18+
greenlet==3.2.4
19+
hypothesis==6.45.0
20+
idna==3.11
21+
iniconfig==2.3.0
22+
iso8601==2.1.0
23+
itsdangerous==2.2.0
24+
jinja2==3.1.6
25+
markupsafe==3.0.3
26+
mock==5.2.0
27+
opentracing==2.4.0
28+
packaging==25.0
29+
peewee==3.18.3
30+
pluggy==1.6.0
31+
pony==0.7.19
32+
pycparser==2.23
33+
pygments==2.19.2
34+
pypika-tortoise==0.6.2
35+
pytest==9.0.1
36+
pytest-cov==7.0.0
37+
pytest-mock==3.15.1
38+
pytz==2025.2
39+
requests==2.32.5
40+
sortedcontainers==2.4.0
41+
sqlalchemy==2.0.44
42+
tomli==2.3.0
43+
tortoise-orm==0.25.1
44+
typing-extensions==4.15.0
45+
urllib3==2.5.0
46+
werkzeug==3.1.3

.riot/requirements/12afd63.txt

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

.riot/requirements/1338eea.txt

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

.riot/requirements/13a379a.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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/13a379a.in
6+
#
7+
attrs==25.4.0
8+
certifi==2025.11.12
9+
cffi==2.0.0
10+
charset-normalizer==3.4.4
11+
coverage[toml]==7.12.0
12+
cryptography==46.0.3
13+
hypothesis==6.45.0
14+
idna==3.11
15+
iniconfig==2.3.0
16+
jinja2==3.1.6
17+
linkify-it-py==2.0.3
18+
markdown-it-py[linkify]==4.0.0
19+
markupsafe==3.0.3
20+
mdit-py-plugins==0.5.0
21+
mdurl==0.1.2
22+
memray==1.19.1
23+
mock==5.2.0
24+
opentracing==2.4.0
25+
packaging==25.0
26+
platformdirs==4.5.0
27+
pluggy==1.6.0
28+
psycopg2-binary==2.9.11
29+
pycparser==2.23
30+
pygments==2.19.2
31+
pytest==9.0.1
32+
pytest-asyncio==1.3.0
33+
pytest-cov==7.0.0
34+
pytest-memray==1.8.0
35+
pytest-mock==3.15.1
36+
pytest-randomly==4.0.1
37+
requests==2.32.5
38+
rich==14.2.0
39+
sortedcontainers==2.4.0
40+
textual==6.6.0
41+
typing-extensions==4.15.0
42+
uc-micro-py==1.0.3
43+
urllib3==2.5.0

.riot/requirements/1474c97.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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/1474c97.in
6+
#
7+
astunparse==1.6.3
8+
attrs==25.4.0
9+
certifi==2025.11.12
10+
cffi==2.0.0
11+
charset-normalizer==3.4.4
12+
coverage[toml]==7.12.0
13+
cryptography==46.0.3
14+
grpcio==1.76.0
15+
hypothesis==6.45.0
16+
idna==3.11
17+
iniconfig==2.3.0
18+
mock==5.2.0
19+
opentracing==2.4.0
20+
packaging==25.0
21+
pluggy==1.6.0
22+
protobuf==6.33.1
23+
pycparser==2.23
24+
pygments==2.19.2
25+
pytest==9.0.1
26+
pytest-asyncio==1.3.0
27+
pytest-cov==7.0.0
28+
pytest-mock==3.15.1
29+
requests==2.32.5
30+
simplejson==3.20.2
31+
six==1.17.0
32+
sortedcontainers==2.4.0
33+
typing-extensions==4.15.0
34+
urllib3==2.5.0
35+
wheel==0.45.1

.riot/requirements/14a5b18.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.10
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/14a5b18.in
6+
#
7+
attrs==25.4.0
8+
backports-asyncio-runner==1.2.0
9+
certifi==2025.11.12
10+
cffi==2.0.0
11+
charset-normalizer==3.4.4
12+
coverage[toml]==7.12.0
13+
cryptography==46.0.3
14+
exceptiongroup==1.3.0
15+
hypothesis==6.45.0
16+
idna==3.11
17+
iniconfig==2.3.0
18+
jinja2==3.1.6
19+
linkify-it-py==2.0.3
20+
markdown-it-py[linkify]==4.0.0
21+
markupsafe==3.0.3
22+
mdit-py-plugins==0.5.0
23+
mdurl==0.1.2
24+
memray==1.19.1
25+
mock==5.2.0
26+
opentracing==2.4.0
27+
packaging==25.0
28+
platformdirs==4.5.0
29+
pluggy==1.6.0
30+
psycopg2-binary==2.9.11
31+
pycparser==2.23
32+
pygments==2.19.2
33+
pytest==9.0.1
34+
pytest-asyncio==1.3.0
35+
pytest-cov==7.0.0
36+
pytest-memray==1.8.0
37+
pytest-mock==3.15.1
38+
pytest-randomly==4.0.1
39+
requests==2.32.5
40+
rich==14.2.0
41+
sortedcontainers==2.4.0
42+
textual==6.6.0
43+
tomli==2.3.0
44+
typing-extensions==4.15.0
45+
uc-micro-py==1.0.3
46+
urllib3==2.5.0

.riot/requirements/15eae35.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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/15eae35.in
6+
#
7+
aiosqlite==0.21.0
8+
attrs==25.4.0
9+
blinker==1.9.0
10+
certifi==2025.11.12
11+
cffi==2.0.0
12+
charset-normalizer==3.4.4
13+
click==8.3.1
14+
coverage[toml]==7.12.0
15+
cryptography==46.0.3
16+
flask==3.1.2
17+
greenlet==3.2.4
18+
hypothesis==6.45.0
19+
idna==3.11
20+
iniconfig==2.3.0
21+
iso8601==2.1.0
22+
itsdangerous==2.2.0
23+
jinja2==3.1.6
24+
markupsafe==3.0.3
25+
mock==5.2.0
26+
opentracing==2.4.0
27+
packaging==25.0
28+
peewee==3.18.3
29+
pluggy==1.6.0
30+
pony==0.7.19
31+
pycparser==2.23
32+
pygments==2.19.2
33+
pypika-tortoise==0.6.2
34+
pytest==9.0.1
35+
pytest-cov==7.0.0
36+
pytest-mock==3.15.1
37+
pytz==2025.2
38+
requests==2.32.5
39+
sortedcontainers==2.4.0
40+
sqlalchemy==2.0.44
41+
tortoise-orm==0.25.1
42+
typing-extensions==4.15.0
43+
urllib3==2.5.0
44+
werkzeug==3.1.3

0 commit comments

Comments
 (0)