Skip to content

ci: classify string_array_length_9160 so e2e-scoped stops failing every PR - #9193

Merged
proggeramlug merged 1 commit into
PerryTS:mainfrom
proggeramlug:fix/e2e-scope-9160
Aug 30, 2026
Merged

ci: classify string_array_length_9160 so e2e-scoped stops failing every PR#9193
proggeramlug merged 1 commit into
PerryTS:mainfrom
proggeramlug:fix/e2e-scope-9160

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

e2e-scoped is red on every core PR right now, and has been since #9160 merged. It fails at its very first step:

ci_e2e_scope: these crates/perry-codegen/tests/*.rs suites are in neither
SOURCE_SUITE_MAP nor SUITE_EXCLUSIONS: string_array_length_9160.

crates/perry-codegen/tests/string_array_length_9160.rs landed without a _CODEGEN_SUITES entry. That map is complete-by-construction for the crate — _assert_map_covers_codegen_suites requires every crates/perry-codegen/tests/*.rs on disk to be either mapped or listed in SUITE_EXCLUSIONS — so --self-test fails, and e2e-scoped runs the self-test before it does anything else. pr-gate fails behind it. Reproduced on a clean 84185b5656, no local changes.

The gate is doing exactly what #7708 built it for: refusing to let a new suite be silently invisible to per-PR CI. The fix is the one-line classification it is asking for.

Map, not exclusion. SUITE_EXCLUSIONS entries require a failing test and an issue number, and there is neither — cargo test -p perry-codegen --test string_array_length_9160 is 1/1 green on 84185b5656. The suite is also the same shape as the other 28 mapped ones: an in-process compile of hand-built HIR, 0.02 s of test time, no perry compile subprocess, no link, no runtime. It belongs in the map on its merits, not just to quiet the gate.

Verified

  • python3 scripts/ci_e2e_scope.py --self-testok (fails before the change)
  • a crates/perry-codegen/src/ change now selects it: perry-codegen string_array_length_9160 300 (mapped timeout)
  • a direct edit of the suite file still selects it at 1500 (named timeout)
  • cargo test -p perry-codegen --test string_array_length_91601 passed; 0 failed

No changelog fragment: scripts/ only, nothing under crates/.

https://claude.ai/code/session_01TE3JXAYXtdnKcLu8TCFWR6

Summary by CodeRabbit

  • Tests
    • Added the string_array_length_9160 end-to-end test suite to the set of tests selected for relevant code generation changes.

…ry PR

`crates/perry-codegen/tests/string_array_length_9160.rs` landed with PerryTS#9160
without a `_CODEGEN_SUITES` entry. That map is complete-by-construction for the
crate — `_assert_map_covers_codegen_suites` requires every
`crates/perry-codegen/tests/*.rs` to be either mapped or excluded — so
`--self-test` failed, and since `e2e-scoped` runs the self-test before it does
anything else, the job (and `pr-gate` behind it) has been red on every core PR
since that merge. The gate did exactly what PerryTS#7708 built it to do: refuse to let
a suite be silently invisible to per-PR CI.

It goes in the map rather than in `SUITE_EXCLUSIONS` because it passes:
`cargo test -p perry-codegen --test string_array_length_9160` is 1/1 green on
84185b5, and it is the same shape as the other 28 mapped suites — an
in-process compile of hand-built HIR, 0.02 s of test time. An exclusion entry
requires a FAILING test and an issue number, and there is neither.

Verified: `--self-test` passes; a `crates/perry-codegen/src/` change now selects
the suite at the mapped 300 s timeout, and a direct edit of the suite file still
selects it at the named 1500 s one.

Claude-Session: https://claude.ai/code/session_01TE3JXAYXtdnKcLu8TCFWR6
@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ec305c9d-9631-4d20-b78a-b4b2559cff13

📥 Commits

Reviewing files that changed from the base of the PR and between 84185b5 and 18c22c5.

📒 Files selected for processing (1)
  • scripts/ci_e2e_scope.py

Included review availability: Your plan provides up to 8 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

The CI E2E scope configuration now includes string_array_length_9160 for changes under crates/perry-codegen/src/.

Changes

Codegen E2E suite selection

Layer / File(s) Summary
Register the codegen E2E suite
scripts/ci_e2e_scope.py
The _CODEGEN_SUITES list now includes string_array_length_9160. SOURCE_SUITE_MAP uses this suite for codegen source changes.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 18c22

This change classifies the existing passing code-generation suite so scoped end-to-end checks can select it correctly; it does not alter product runtime behavior. No actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the CI change and explains that it classifies the missing suite to prevent repeated e2e-scoped failures.
Description check ✅ Passed The description clearly explains the failure, root cause, one-line fix, mapping rationale, and verification results. It does not use the template headings or provide an explicit checklist, related-iss…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description clearly explains the failure, root cause, one-line fix, mapping rationale, and verification results. It does not use the template headings or provide an explicit checklist, related-issue section, or screenshots section, but the available required information is substantially complete.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Merged.

Verified the subject rather than the diff: crates/perry-codegen/tests/string_array_length_9160.rs exists, and the addition is a single name into _CODEGEN_SUITES, alphabetically placed. An unclassified suite is what makes e2e-scoped fail on every PR, so this is worth landing on its own rather than waiting behind anything.

Worth knowing: this exact change is also carried inside #9189's branch as a separate commit (identical diff, identical blob hashes a364c98be3..0372b040e4). I picked this one up first because it is the isolated fix and #9189 is a transform change that needed a full A/B. When #9189 rebases, its copy of this commit will simply drop out as already-applied.

@proggeramlug
proggeramlug merged commit 62dfa72 into PerryTS:main Aug 30, 2026
43 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant