Skip to content

ci(ts): translate moq-net in the merge gate - #548

Merged
kixelated merged 3 commits into
mainfrom
quest/m0/ts-moq-gate
Nov 3, 2026
Merged

kixelated merged 3 commits into
mainfrom
quest/m0/ts-moq-gate

Conversation

@kixelated

@kixelated kixelated commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Only nightly.yml ran just ts moq, so moq-dev/rust2#519 landed a panic in moq-net's translation that a bench run found hours later (moq-dev/rust2#545 fixed it). moq is the driver's first consumer, and its translation is the one break the fixtures can only approximate.

Approach

  • just ci's ts module runs just ts moq before just ts test. The ts module already runs for any change under ts/ or driver/, and just ts check already checks out the pin, so this adds building moq-net's dependencies through the driver, translating it, and tsc on the output. It runs first since it is the cheaper of the two and shares the driver's dev build with the tests.
  • nightly.yml drops its separate Translate step, since its just gate now covers it; the job keeps the flake build and the sysroot-less fixtures, renamed TypeScript package.
  • Finishes quest/m0/ts-moq-gate.md and deletes it.

Measured in CPU seconds (user+sys) on the host, 32 cores, on #545's head:

Run CPU s Wall s
just ts check, cold 34 24
just ts test, cold 1014 224
just ts moq after both (driver built, moq-net's deps cold) 65 26
just ts moq, moq-net's deps cold, driver warm 75 24
just ts moq, warm 14 13
just ts census, warm 357 361

That is about 6% of a ts-only gate's cold ts module, and about 2% of the full gate's 65 CPU-minutes.

Impact

Public API: none.

Alternatives

  • just ts census: 5x the cost of the translation, for a report rather than a failure.
  • Translating fewer roots or one crate: the cost is moq-net's dependency build through the driver, which any of moq-net's translations pays.
  • Running it only for changes under ts/src, ts/runtime, or ts/moq: saves 65 CPU-seconds only on fixture- or doc-only ts changes, for a second scope in the dispatch map.

Follow-ups

None.

Checks

Review

Codex (quest review), gpt-6.1-sol, medium effort, round 1 on head 96167f3: no findings.

🤖 Generated with Claude Code

kixelated and others added 3 commits November 3, 2026 11:54
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 3, 2026 20:26
@kixelated
kixelated added this pull request to the merge queue Nov 3, 2026
@coderabbitai

coderabbitai Bot commented Nov 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 25 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 140e96b3-4f50-4336-b25d-2d1489674fe2
Commits

Reviewing files that changed from the base of the PR and between d7e0512 and 96167f3.

Files selected for processing: 4
  • .github/workflows/nightly.yml
  • quest/m0/README.md
  • quest/m0/ts-moq-gate.md
  • sh/dispatch.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — read the full diff against main, and verified every recipe, scope-map, and workflow claim in the PR body against the source.

  • Merge queue gets the translation: test_ts() in sh/dispatch.sh runs just ts moq before just ts test, so any ts/ or driver/ diff translates moq-net at the pin and type-checks it in just ci, ending the nightly-only blind spot that let #519's panic through.
  • Nightly stops duplicating it: nightly.yml's ts job drops its separate Translate step, since just gate runs every module unchanged, and the job is renamed ts/TypeScript package while keeping the flake build and the sysroot-less fixtures.
  • Quest closed: quest/m0/ts-moq-gate.md is deleted and its entry removed from quest/m0/README.md, with no stale references left anywhere.

Verified against the source: the scope map selects the ts module for ^(ts|driver)/ diffs (the exact #519 class), just ts check already runs moq-pin so the checkout is warm when test_ts runs, the new multiline function body matches the existing shfmt style, and just gate feeds dispatch.sh ci --all through the same test_ts. The measured costs are consistent with the recipes: tsc -p "$out" reuses the driver's dev build that just ts test keeps warm. Merge-queue checks were still skipping at review time, so just ci's green here rests on the body's local run.

Pullfrog  | View workflow run | Using glm-5.3-flash | 𝕏

Merged via the queue into main with commit 1704eaa Nov 3, 2026
8 checks passed
@kixelated
kixelated deleted the quest/m0/ts-moq-gate branch November 3, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant