Skip to content

Commit a601263

Browse files
authored
Merge branch 'main' into Anuj7411/register-anyscale-scaleway-ovhcloud
2 parents b8bae06 + 4ef186c commit a601263

185 files changed

Lines changed: 10116 additions & 674 deletions

File tree

Some content is hidden

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

.agents/commands/comet/_pr-description-sync.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Clean up `$TMP` on exit.
5151
Apply the same logic as `/comet:create-pr` Step 6 (Extract Change Information) and Step 7 (Pre-fill PR Template). In particular:
5252

5353
- Fill every `##` section defined in `.github/pull_request_template.md`. Sections not applicable to this PR get `N/A`, never get removed.
54-
- Re-derive the **Details** summary from the diff and commit messages.
54+
- Re-derive the **Details** section from the diff and commit messages in the style set by `/comet:create-pr` Step 7 — what changes for a user, short, bulleted, authoritative, no summary of the diff. Keep the shape the section already uses (Before / After, flat list, or a couple of lines) unless the change no longer fits it.
5555
- Re-derive the **Change checklist** from the file types changed (e.g., user-facing checked when UI files changed; documentation checked when `*.md` / `*.mdx` changed).
5656
- Keep the existing **Issues** ticket reference if present (e.g., `OPIK-6296`); if missing, infer from branch name.
5757
- Keep the existing **AI-WATERMARK** answers verbatim — never silently flip `yes``no`.

.agents/commands/comet/create-pr.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,20 @@ This workflow will:
181181
- **Fill every `##` section** in the template — the PR linter requires all sections to be present
182182
- If a section is not applicable, write "N/A" rather than removing it
183183
- **Section guidance**:
184-
- **Details**: Implementation summary from git analysis (replace the HTML comment placeholder)
184+
- **Details**: Replace the HTML comment placeholder with what changes for a user. A reviewer reads the diff for the code; this section tells them what is different when they use the product. Style:
185+
186+
- **Short.** Most PRs need 3–10 bullets. If it runs longer, the section is doing the diff's job — cut it.
187+
- **Bullets, not prose paragraphs.** One behavior per bullet. Nest one level for sub-cases.
188+
- **Authoritative.** State what happens: "The run is scored once." Not "This should now mean that the run will be scored once."
189+
- **No fluff.** No motivation paragraph, no "this PR …", no approach summary, no benefits list, no restating the diff.
190+
- **Observable behavior first.** What the UI shows, what the API returns, what gets scored, stored or logged. Name a class, method or file only when the behavior makes no sense without it.
191+
192+
Pick the shape that fits the change — do not force one:
193+
194+
- **Before / After bullet lists** when a behavior changed and the contrast is the point.
195+
- **A flat bullet list** for a new capability, where there is no "before".
196+
- **One or two lines** when users cannot see the change (refactor, dependency bump) — say what is unchanged and what improved, then stop.
197+
185198
- **Change checklist**: Auto-check based on file types changed (user-facing for UI changes, documentation for docs)
186199
- **Issues**: Link to Jira ticket (e.g., `OPIK-2180`) or GitHub issue, or "NA" for hotfixes. List every ticket this PR **resolves** here with a normal hyphenated key.
187200
- **Jira key convention across the whole body** (see git-workflow rule): the GitHub for Jira app links any `OPIK-<digits>` it finds in the PR body to that ticket's Development panel, and the link can't be removed. So in **all** sections (Details, Testing, etc.) and in commit messages: tickets this PR **resolves** keep the hyphen (`OPIK-1234`) — links/URLs fine and wanted. Tickets **related but not resolved** here (escalations, references to older tickets — anything not in the title/branch) must be written with an underscore (`OPIK_7000`) and with **no** Jira URL (the URL contains the hyphenated key and links anyway). Apply this when generating every section below.

.agents/rules/git-workflow.mdc

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,36 @@ Follow-up commits (preferred):
2828
## PR Title
2929
`[<TICKET-KEY>] [COMPONENT] <type>: description`
3030

31+
## PR Body
32+
Follow `.github/pull_request_template.md` — read the FULL template file before drafting.
33+
CI (`pr-lint`) fails the PR if any of these exact headings is missing:
34+
`## Details`, `## Change checklist`, `## Issues`, `## Testing`, `## Documentation`.
35+
Fill in `## AI-WATERMARK` too (Tools, Model(s), Scope, Human verification).
36+
Never substitute your own structure (e.g. `## Summary` / `## Test Plan`).
37+
A section that does not apply gets `N/A` — never delete a heading.
38+
39+
### `## Details` — style
40+
Write what changes for a user. A reviewer reads the diff for the code; this section
41+
tells them what is different when they use the product.
42+
43+
- **Short.** Most PRs need 3–10 bullets. If it runs longer, the section is doing the
44+
diff's job — cut it.
45+
- **Bullets, not prose paragraphs.** One behavior per bullet. Nest one level for sub-cases.
46+
- **Authoritative.** State what happens: "The run is scored once." Not "This should now
47+
mean that the run will be scored once."
48+
- **No fluff.** No motivation paragraph, no "this PR …", no approach summary, no
49+
benefits list, no restating the diff.
50+
- **Observable behavior first.** What the UI shows, what the API returns, what gets
51+
scored, stored or logged. Name a class, method or file only when the behavior makes
52+
no sense without it.
53+
54+
Pick the shape that fits the change — do not force one:
55+
56+
- **Before / After bullet lists** when a behavior changed and the contrast is the point.
57+
- **A flat bullet list** for a new capability, where there is no "before".
58+
- **One or two lines** when users cannot see the change (refactor, dependency bump) —
59+
say what is unchanged and what improved, then stop.
60+
3161
## Jira Key References (commit messages & PR body)
3262
The GitHub for Jira app links a PR to a ticket's Development panel whenever it finds an issue key matching `[A-Z][A-Z0-9]+-\d+` (project key, literal hyphen, digits) in the branch name, PR title, PR body, or any commit message. It matches on the regex alone — it cannot tell "this PR resolves the ticket" from "this just mentions it" — and the resulting link cannot be removed afterward. So free text must only contain hyphenated keys for tickets the PR actually resolves.
3363

.agents/skills/documentation/SKILL.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,24 @@ Use the repository template at `.github/pull_request_template.md` — read the F
1717

1818
Also fill in the template's `## AI-WATERMARK` section (yes/no; if yes: Tools, Model(s), Scope, Human verification). Never invent a different structure such as `## Summary` / `## Test Plan`.
1919

20+
A section that does not apply gets `N/A` — never delete a heading.
21+
22+
### `## Details` — style
23+
24+
Write what changes for a user. A reviewer reads the diff for the code; this section tells them what is different when they use the product.
25+
26+
- **Short.** Most PRs need 3–10 bullets. If it runs longer, the section is doing the diff's job — cut it.
27+
- **Bullets, not prose paragraphs.** One behavior per bullet. Nest one level for sub-cases.
28+
- **Authoritative.** State what happens: "The run is scored once." Not "This should now mean that the run will be scored once."
29+
- **No fluff.** No motivation paragraph, no "this PR …", no approach summary, no benefits list, no restating the diff.
30+
- **Observable behavior first.** What the UI shows, what the API returns, what gets scored, stored or logged. Name a class, method or file only when the behavior makes no sense without it.
31+
32+
Pick the shape that fits the change — do not force one:
33+
34+
- **Before / After bullet lists** when a behavior changed and the contrast is the point.
35+
- **A flat bullet list** for a new capability, where there is no "before".
36+
- **One or two lines** when users cannot see the change (refactor, dependency bump) — say what is unchanged and what improved, then stop.
37+
2038
## Changelog Entry
2139

2240
```markdown

.agents/skills/opik-backend/testing.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,31 @@ assertThat(actual)
284284
`containsExactly` asserts size and content together — `hasSize` plus per-index checks does not,
285285
and lets an extra element through.
286286

287+
`hasSize` **on its own** is weaker still: it asserts a count and nothing about identity, so any
288+
bug that preserves the count passes. This bites hardest on de-duplication, merge, and upsert
289+
tests, where the count is exactly the thing a bug is most likely to keep right:
290+
291+
```java
292+
// ❌ BAD - passes if the wrong revision survived, or if the duplicate was kept
293+
// and the distinct row dropped. Both keep the size at 2.
294+
assertThat(stored).hasSize(2);
295+
assertThat(version.itemsTotal()).isEqualTo(stored.size());
296+
297+
// ✅ GOOD - names the rows that must survive, so a wrong-winner bug fails
298+
assertThat(stored)
299+
.usingRecursiveFieldByFieldElementComparatorIgnoringFields(IGNORED_FIELDS_DATA_ITEM)
300+
.containsExactlyInAnyOrder(winningDuplicate, distinctItem);
301+
assertThat(version.itemsTotal()).isEqualTo(stored.size());
302+
```
303+
304+
Asserting a derived counter against `stored.size()` is good — it ties the counter to reality
305+
rather than to a literal — but it is only as strong as the assertion on `stored` itself. Pin the
306+
contents first, then tie the counter to them.
307+
308+
Reuse the shared ignore-field constants (`IGNORED_FIELDS_DATA_ITEM` and friends) rather than
309+
declaring a local list: they already encode which server-generated fields are not part of the
310+
contract, and a local copy silently drifts from them.
311+
287312
These `containsExactly*` variants compare elements with the element type's own `equals`, which is
288313
what you want for exact-valued models. When the elements carry `BigDecimal` or `double`, the same
289314
exception that justifies a comparator on a single object applies per element — otherwise a

.agents/skills/write-docs/SKILL.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,24 @@ Use the repository template at `.github/pull_request_template.md` — read the F
263263

264264
Also fill in the template's `## AI-WATERMARK` section (yes/no; if yes: Tools, Model(s), Scope, Human verification). Never invent a different structure such as `## Summary` / `## Test Plan`.
265265

266+
A section that does not apply gets `N/A` — never delete a heading.
267+
268+
### `## Details` — style
269+
270+
Write what changes for a user. A reviewer reads the diff for the code; this section tells them what is different when they use the product.
271+
272+
- **Short.** Most PRs need 3–10 bullets. If it runs longer, the section is doing the diff's job — cut it.
273+
- **Bullets, not prose paragraphs.** One behavior per bullet. Nest one level for sub-cases.
274+
- **Authoritative.** State what happens: "The run is scored once." Not "This should now mean that the run will be scored once."
275+
- **No fluff.** No motivation paragraph, no "this PR …", no approach summary, no benefits list, no restating the diff.
276+
- **Observable behavior first.** What the UI shows, what the API returns, what gets scored, stored or logged. Name a class, method or file only when the behavior makes no sense without it.
277+
278+
Pick the shape that fits the change — do not force one:
279+
280+
- **Before / After bullet lists** when a behavior changed and the contrast is the point.
281+
- **A flat bullet list** for a new capability, where there is no "before".
282+
- **One or two lines** when users cannot see the change (refactor, dependency bump) — say what is unchanged and what improved, then stop.
283+
266284
## Internationalized READMEs
267285

268286
`readme_CN.md`, `readme_ES.md`, `readme_FR.md`, `readme_DE.md` are AI machine-translated from the English `README.md`.

.github/scripts/discover-backend-tests.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ set -euo pipefail
44
NUM_GROUPS=16
55
UNIT_TIMEOUT=10
66
INTEGRATION_TIMEOUT=20
7+
# Per-test timeout handed to JUnit, overriding the default in junit-platform.properties.
8+
# CI reruns failures 3 times, so a deterministic hang costs 4x these values: 8m against the 10m
9+
# unit wall, 16m against the 20m integration wall. Both must stay under their job timeout above,
10+
# or the job is cancelled before Surefire can name the offending test.
11+
UNIT_TEST_TIMEOUT=2m
12+
INTEGRATION_TEST_TIMEOUT=4m
713
TEST_DIR="src/test/java"
814
PATTERN="DropwizardAppExtensionProvider\|MySQLContainer\|ClickHouseContainer\|RedisContainer\|MinIOContainer"
915

@@ -62,9 +68,9 @@ done
6268

6369
# Build JSON matrix: unit tests + N integration groups
6470
matrix="{\"include\":["
65-
matrix+="{\"name\":\"Unit Tests\",\"tests\":\"$unit_list\",\"timeout\":$UNIT_TIMEOUT}"
71+
matrix+="{\"name\":\"Unit Tests\",\"tests\":\"$unit_list\",\"timeout\":$UNIT_TIMEOUT,\"testTimeout\":\"$UNIT_TEST_TIMEOUT\"}"
6672
for ((i=1; i<=NUM_GROUPS; i++)); do
67-
matrix+=",{\"name\":\"Integration Group $i\",\"tests\":\"${group_list[$i]}\",\"timeout\":$INTEGRATION_TIMEOUT}"
73+
matrix+=",{\"name\":\"Integration Group $i\",\"tests\":\"${group_list[$i]}\",\"timeout\":$INTEGRATION_TIMEOUT,\"testTimeout\":\"$INTEGRATION_TEST_TIMEOUT\"}"
6874
done
6975
matrix+="]}"
7076
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"

.github/workflows/backend_tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
fetch-depth: 1
7171

7272
- name: Set up JDK 25
73-
uses: actions/setup-java@v5
73+
uses: actions/setup-java@v6
7474
with:
7575
java-version: '25'
7676
distribution: 'corretto'
@@ -84,6 +84,7 @@ jobs:
8484
-Dtest="${{ matrix.tests }}"
8585
-Dmaven.test.failure.ignore=true
8686
-Dsurefire.rerunFailingTestsCount=3
87+
-Djunit.jupiter.execution.timeout.testable.method.default="${{ matrix.testTimeout }}"
8788
8889
- name: Publish Test Report
8990
uses: EnricoMi/publish-unit-test-result-action/linux@v2

.github/workflows/code_quality.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131

132132
- name: Set up JDK 25
133133
if: matrix.leg.toolchain == 'java'
134-
uses: actions/setup-java@v5
134+
uses: actions/setup-java@v6
135135
with:
136136
java-version: "25"
137137
distribution: "corretto"

.github/workflows/sdks_generate_openapi_spec_and_fern_code.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
persist-credentials: false
2424

2525
- name: Set up JDK
26-
uses: actions/setup-java@v5
26+
uses: actions/setup-java@v6
2727
with:
2828
java-version: '25'
2929
distribution: 'corretto'

0 commit comments

Comments
 (0)