Skip to content

ci: register the two unclassified perry-codegen suites (unblocks e2e-scoped on every PR) - #10723

Merged
proggeramlug merged 3 commits into
mainfrom
fix/e2e-scope-unregistered-codegen-suites
Sep 19, 2026
Merged

proggeramlug merged 3 commits into
mainfrom
fix/e2e-scope-unregistered-codegen-suites

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

e2e-scoped has been red on every PR since merge train 218 (v0.5.1596), failing at "Compute e2e suite scope" after ~16 seconds:

ci_e2e_scope: these crates/perry-codegen/tests/*.rs suites are in neither
SOURCE_SUITE_MAP nor SUITE_EXCLUSIONS: error_subclass_field_init,
typed_collection_receiver_guard. Add each to the map, or to SUITE_EXCLUSIONS
with the failing test and an issue number. An unclassified suite is invisible
to per-PR CI, which is #7708.

The assertion is doing its job — two suites arrived in 6925754a7d (#10443/#10446, train 218) and nobody classified them. This just classifies them.

Why this is worth landing ahead of the queue

The failure is content-independent, so it reddens PRs that cannot possibly have caused it. Right now #10721 (a Python script), #10722 (a .ts fixture) and #10719 (a Python script) all carry it. That is the third standing red on main, alongside the two in #10707 — and the cost is not the red itself, it is that "CI is red, but it's red for everyone" becomes the default reading and the next genuinely broken PR looks identical.

Mapped, not excluded

SUITE_EXCLUSIONS is for a suite held out with a named failing test and an issue number. Neither of these has one — both pass. Excluding them would have hidden working coverage, which is the failure mode #7708 exists to prevent.

Both are the cheap in-process shape SOURCE_SUITE_MAP was built for, and both ran green when train 218 executed them as diff-named suites:

error_subclass_field_init        test result: ok. 2 passed; 0 failed  (0.01s)
typed_collection_receiver_guard  test result: ok. 3 passed; 0 failed  (0.01s)

Verification

Not just "the check now passes" — the check still fails when it should:

tree --self-test
both entries present rc=0ci_e2e_scope self-test: ok
error_subclass_field_init deleted rc=1 — names the suite
restored rc=0

A check that cannot go red is not a check, so the deletion arm is the part that matters.

Fixes the third of the three standing main reds; the other two are tracked in #10707.

Summary by CodeRabbit

  • Bug Fixes
    • Fixed end-to-end test scope validation failures caused by two previously unclassified test suites.
    • Ensured changes to code-generation components correctly trigger the associated end-to-end tests in pull request checks.
    • Added changelog documentation for the CI correction.

proggeramlug pushed a commit that referenced this pull request Sep 19, 2026
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5121d3f7-14f2-4226-87f1-ec49519e33d5

📥 Commits

Reviewing files that changed from the base of the PR and between 2a73bc7 and bd49ad4.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • CLAUDE.md
  • Cargo.toml
 ______________________________________________________________________________________________________
< My code reviews are like a Tesla: fully electric, increasingly autonomous, and occasionally on fire. >
 ------------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: e87346fe-11c4-496b-a617-3fdd7f3d2725

📥 Commits

Reviewing files that changed from the base of the PR and between 4715bc2 and 2a73bc7.

📒 Files selected for processing (2)
  • changelog.d/10723-e2e-scope-unregistered-suites.md
  • 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 scope script now classifies error_subclass_field_init and typed_collection_receiver_guard as codegen E2E suites. The changelog documents the fix for the per-PR scope check failure.

Changes

Codegen E2E mapping

Layer / File(s) Summary
Extend codegen suite mapping
scripts/ci_e2e_scope.py, changelog.d/10723-e2e-scope-unregistered-suites.md
Adds both suites to _CODEGEN_SUITES and the SOURCE_SUITE_MAP entry for crates/perry-codegen/src/. The changelog records the classification fix and self-test verification.

Priority: ➖ Normal

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

Change: Bug fix · Severity of issue fixed: Medium

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: registering two unclassified perry-codegen suites to unblock e2e-scoped CI. It is concise and specific.
Description check ✅ Passed The description clearly explains the failure, the cause, the mapping decision, affected suites, related issues, and verification results. It does not use every template heading or checklist item, but …
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

Ralph Küpper added 3 commits September 19, 2026 14:07
`e2e-scoped` has been red on every PR since merge train 218 (v0.5.1596),
failing at "Compute e2e suite scope" in ~16s:

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

Both suites arrived in 6925754 (#10443/#10446, train 218) and nobody
classified them, which is exactly the condition #7708 added this assertion
for. The failure is content-independent, so it reddens PRs that cannot
possibly have caused it -- #10721 (a Python script) and #10722 (a .ts
fixture) both carry it.

Mapped rather than excluded: both are cheap in-process suites of the shape
SOURCE_SUITE_MAP exists for, and both passed when train 218 ran them as
diff-named suites (2 and 3 tests, 0.01s each). Excluding them would have
hidden working coverage; SUITE_EXCLUSIONS is for a named failing test with
an issue number, which neither has.

Verified discriminating, not merely present: with either entry deleted
`--self-test` exits 1 naming the suite, and exits 0 with both.
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