Skip to content

Commit 88aa593

Browse files
authored
Merge branch 'main' into avara1986/APPSEC-60135_iast_potencial_error
2 parents 2f0a97a + 21b25aa commit 88aa593

File tree

112 files changed

+4235
-1059
lines changed

Some content is hidden

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

112 files changed

+4235
-1059
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
3+
name: releasenote
4+
description: >
5+
Create or update release notes for changes in the current branch using Reno,
6+
following dd-trace-py's conventions and the guidelines in docs/releasenotes.rst.
7+
allowed-tools:
8+
- Bash
9+
- Read
10+
- Grep
11+
- Glob
12+
- TodoWrite
13+
14+
---
15+
16+
## When to Use This Skill
17+
18+
Use this skill whenever:
19+
20+
* The user asks to create a new release note.
21+
* The user asks to update or modify an existing release note.
22+
* The user wants a summary of changes that is intended to be inserted into a release note file.
23+
24+
---
25+
26+
## Key Principles
27+
28+
* Follow strictly the conventions described in `docs/releasenotes.rst` and any Reno-related docs in the repo.
29+
* ALWAYS use `riot` (not `reno` directly) to generate the new release note skeleton.
30+
* If the user does not specify the release-note category (`feature`, `bugfix`, `deprecation`, `breaking-change`, `misc`, etc.), ask first.
31+
* Release notes must:
32+
* Be one Reno fragment per change / PR, unless the change explicitly belongs inside an existing release note.
33+
* Use a slug that is short, clear, and uses hyphens.
34+
* Appear under `releasenotes/notes/` with a `.yaml` suffix.
35+
* If updating an existing fragment, search for a fragment that matches the topic or ticket before creating a new one.
36+
* Ensure the wording is:
37+
* Clear, concise, and user-facing.
38+
* Describes *what changed* and *why users should care*.
39+
* Avoids internal-only terminology unless necessary.
40+
41+
## Interaction Rules
42+
43+
* Before creating anything:
44+
45+
1. Confirm the category.
46+
2. Confirm the title-slug if the user hasn't provided one.
47+
3. Confirm whether the release note is for a new fragment or an update.
48+
49+
* If the user wants to modify a note:
50+
* Search for the matching fragment using `ls releasenotes/notes/` or grep keywords.
51+
* Open the file and update only the content the user mentions.
52+
53+
54+
## Quick Start
55+
56+
### Create a new release note
57+
58+
```bash
59+
riot run reno new <title-slug>
60+
```
61+
62+
After creation, modify the generated YAML fragment to include the content under the correct section:
63+
64+
```yaml
65+
features:
66+
- |
67+
<description of the new feature>
68+
69+
# or
70+
71+
fixes:
72+
- |
73+
<description of the bug fix>
74+
```
75+
76+
### List existing release notes
77+
78+
```bash
79+
ls releasenotes/notes/
80+
```
81+
82+
### Find a release note containing a keyword
83+
84+
```bash
85+
grep -R "<keyword>" releasenotes/notes/
86+
```
87+
88+
---
89+
90+
## Best Practices for Note Content
91+
92+
* Start with an action verb: *Add…*, *Fix…*, *Improve…*, *Deprecate…*
93+
* Reference PR or issue numbers only if relevant (e.g., "(#12345)").
94+
* If the change requires user action, highlight it clearly.
95+
* Avoid long paragraphs; prefer concise bullet-style explanations.
96+
97+
---
98+
99+
## Optional Enhancements
100+
101+
If you want, you can add:
102+
103+
### Validation checks
104+
105+
* Ensure the repo is clean (`git status`).
106+
* Confirm that the working directory is at the repo root.
107+
* Warn if a release note already exists for the same issue/PR.
108+
109+
### Automation scaffolding
110+
111+
* Automatically propose a slug from the branch name.
112+
* Suggest the best category based on commit diff keywords.
113+
114+
---
115+
116+
If you'd like, I can also:
117+
118+
✔ generate a stricter version (more guardrails)
119+
✔ generate a shorter version (minimal skill spec)
120+
✔ help you convert this to Anthropic’s new "Tool Use Skills" format
121+
✔ help you create automated tests or examples for this skill
122+
123+
Just tell me!
124+
125+
126+
## When to Use This Skill
127+
128+
Use this skill when:
129+
- You are asked to create a new release note
130+
- You are asked to update an existing release note
131+
132+
## Key Principles
133+
134+
- Strictly follow what is described in docs/releasenotes.rst
135+
- ALWAYS use riot to generate the new release note
136+
- If the user does not specify it, ask whether it is a fix, a feature, etc.
137+
138+
## Quick Start
139+
140+
Create the release note:
141+
```bash
142+
riot run reno new <title-slug>
143+
```

.claude/skills/run-tests/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ When you modify files like:
8484
#### For Test-Only Changes
8585
When you modify `tests/` files (but not test infrastructure):
8686
- Run only the specific test files/functions modified
87-
- Use pytest args: `-- -k test_name` or direct test file paths
87+
- Use pytest args: `-- -- -k test_name` or direct test file paths
8888

8989
#### For Test Infrastructure Changes
9090
When you modify:
@@ -121,7 +121,7 @@ This will:
121121

122122
For re-running specific tests:
123123
```bash
124-
scripts/run-tests --venv <hash> -- -vv -k test_name
124+
scripts/run-tests --venv <hash> -- -- -vv -k test_name
125125
```
126126

127127
## When Tests Fail
@@ -243,15 +243,15 @@ scripts/run-tests --list tests/contrib/flask/test_views.py
243243
# Output shows: contrib::flask suite
244244

245245
# Run just the specific test:
246-
scripts/run-tests --venv flask_py311 -- -vv tests/contrib/flask/test_views.py
246+
scripts/run-tests --venv flask_py311 -- -- -vv tests/contrib/flask/test_views.py
247247
```
248248

249249
### Example 4: Iterating on a Failing Test
250250

251251
First run shows one test failing:
252252

253253
```bash
254-
scripts/run-tests --venv flask_py311 -- -vv -k test_view_called_twice
254+
scripts/run-tests --venv flask_py311 -- -- -vv -k test_view_called_twice
255255
# Focused on the specific failing test with verbose output
256256
```
257257

@@ -330,7 +330,7 @@ The `scripts/run-tests` system:
330330
- Uses `riot` to manage multiple Python/package combinations as venvs
331331
- Each venv is a self-contained environment
332332
- Docker services are managed per suite lifecycle
333-
- Tests can pass optional pytest arguments with `--`
333+
- Tests can pass optional pytest arguments with `-- --`
334334

335335
### Supported Suite Types
336336

.github/workflows/system-tests.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
persist-credentials: false
4646
repository: 'DataDog/system-tests'
4747
# Automatically managed, use scripts/update-system-tests-version to update
48-
ref: '31bc180ce87184c996400361ddb17c8743eec18f'
48+
ref: '94529f681dcaf74382ed47c3b0c85acdb775b6c9'
4949

5050
- name: Download wheels to binaries directory
5151
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
@@ -90,7 +90,7 @@ jobs:
9090
persist-credentials: false
9191
repository: 'DataDog/system-tests'
9292
# Automatically managed, use scripts/update-system-tests-version to update
93-
ref: '31bc180ce87184c996400361ddb17c8743eec18f'
93+
ref: '94529f681dcaf74382ed47c3b0c85acdb775b6c9'
9494

9595
- name: Build runner
9696
uses: ./.github/actions/install_runner
@@ -217,6 +217,10 @@ jobs:
217217
if: always() && steps.docker_load.outcome == 'success' && matrix.scenario == 'appsec-1'
218218
run: ./run.sh APPSEC_RASP
219219

220+
- name: Run APPSEC_RASP_NON_BLOCKING
221+
if: always() && steps.docker_load.outcome == 'success' && matrix.scenario == 'appsec-1'
222+
run: ./run.sh APPSEC_RASP_NON_BLOCKING
223+
220224
- name: Run APPSEC_RASP_WITHOUT_DOWNSTREAM_BODY_ANALYSIS_USING_MAX
221225
if: always() && steps.docker_load.outcome == 'success' && matrix.scenario == 'appsec-1'
222226
run: ./run.sh APPSEC_RASP_WITHOUT_DOWNSTREAM_BODY_ANALYSIS_USING_MAX
@@ -283,7 +287,7 @@ jobs:
283287
persist-credentials: false
284288
repository: 'DataDog/system-tests'
285289
# Automatically managed, use scripts/update-system-tests-version to update
286-
ref: '31bc180ce87184c996400361ddb17c8743eec18f'
290+
ref: '94529f681dcaf74382ed47c3b0c85acdb775b6c9'
287291
- name: Download wheels to binaries directory
288292
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
289293
with:

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ variables:
1414
DD_VPA_TEMPLATE: "vpa-template-cpu-p70-10percent-2x-oom-min-cap"
1515
# CI_DEBUG_SERVICES: "true"
1616
# Automatically managed, use scripts/update-system-tests-version to update
17-
SYSTEM_TESTS_REF: "31bc180ce87184c996400361ddb17c8743eec18f"
17+
SYSTEM_TESTS_REF: "94529f681dcaf74382ed47c3b0c85acdb775b6c9"
1818

1919
default:
2020
interruptible: true
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
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/1832cc1.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/12131e2.in
66
#
7-
anyio==4.11.0
7+
anyio==4.12.0
88
asynctest==0.13.0
99
attrs==25.4.0
1010
certifi==2025.11.12
@@ -23,8 +23,10 @@ msgpack==1.1.2
2323
opentracing==2.4.0
2424
packaging==25.0
2525
pluggy==1.6.0
26+
py-cpuinfo==9.0.0
2627
pygments==2.19.2
2728
pytest==9.0.1
29+
pytest-benchmark==5.2.3
2830
pytest-cov==7.0.0
2931
pytest-mock==3.15.1
3032
pytest-randomly==4.0.1
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# This file is autogenerated by pip-compile with Python 3.13
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1e35505.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/13ee570.in
66
#
7-
anyio==4.11.0
7+
anyio==4.12.0
88
asynctest==0.13.0
99
attrs==25.4.0
1010
certifi==2025.11.12
@@ -22,8 +22,10 @@ msgpack==1.1.2
2222
opentracing==2.4.0
2323
packaging==25.0
2424
pluggy==1.6.0
25+
py-cpuinfo==9.0.0
2526
pygments==2.19.2
2627
pytest==8.4.2
28+
pytest-benchmark==5.2.3
2729
pytest-cov==7.0.0
2830
pytest-mock==3.15.1
2931
pytest-randomly==4.0.1
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.14
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1aa84d6.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1700bc6.in
66
#
77
anyio==4.12.0
88
asynctest==0.13.0
@@ -22,7 +22,9 @@ msgpack==1.1.2
2222
opentracing==2.4.0
2323
packaging==25.0
2424
pluggy==1.6.0
25+
py-cpuinfo==9.0.0
2526
pytest==7.4.4
27+
pytest-benchmark==5.0.1
2628
pytest-cov==7.0.0
2729
pytest-mock==3.15.1
2830
pytest-randomly==4.0.1
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.14
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/d46b12e.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1a4cb4d.in
66
#
77
anyio==4.12.0
88
asynctest==0.13.0
@@ -22,8 +22,10 @@ msgpack==1.1.2
2222
opentracing==2.4.0
2323
packaging==25.0
2424
pluggy==1.6.0
25+
py-cpuinfo==9.0.0
2526
pygments==2.19.2
2627
pytest==9.0.1
28+
pytest-benchmark==5.2.3
2729
pytest-cov==7.0.0
2830
pytest-mock==3.15.1
2931
pytest-randomly==4.0.1
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# This file is autogenerated by pip-compile with Python 3.9
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/bb5bc08.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1c574f2.in
66
#
7-
anyio==4.11.0
7+
anyio==4.12.0
88
attrs==25.4.0
99
certifi==2025.11.12
1010
coverage[toml]==7.10.7
@@ -23,8 +23,10 @@ msgpack==1.1.2
2323
opentracing==2.4.0
2424
packaging==25.0
2525
pluggy==1.6.0
26+
py-cpuinfo==9.0.0
2627
pygments==2.19.2
2728
pytest==8.4.2
29+
pytest-benchmark==5.2.3
2830
pytest-cov==7.0.0
2931
pytest-mock==3.15.1
3032
pytest-randomly==4.0.1
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# This file is autogenerated by pip-compile with Python 3.12
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --no-annotate .riot/requirements/195fa4e.in
5+
# pip-compile --allow-unsafe --no-annotate .riot/requirements/1c92f27.in
66
#
7-
anyio==4.11.0
7+
anyio==4.12.0
88
asynctest==0.13.0
99
attrs==25.4.0
1010
certifi==2025.11.12
@@ -22,8 +22,10 @@ msgpack==1.1.2
2222
opentracing==2.4.0
2323
packaging==25.0
2424
pluggy==1.6.0
25+
py-cpuinfo==9.0.0
2526
pygments==2.19.2
2627
pytest==8.4.2
28+
pytest-benchmark==5.2.3
2729
pytest-cov==7.0.0
2830
pytest-mock==3.15.1
2931
pytest-randomly==4.0.1

0 commit comments

Comments
 (0)