main
md 44 lines 2.04 KB
Rendered Raw
1 ---
2 name: compiler-verify
3 description: Use when you need to run all compiler checks (tests, lint, format) before committing. Detects whether TS or Rust code changed and runs the appropriate checks.
4 ---
5
6 # Compiler Verify
7
8 Run all verification steps for compiler changes.
9
10 Arguments:
11 - $ARGUMENTS: Optional test pattern for `yarn snap -p <pattern>`
12
13 ## Instructions
14
15 1. **Detect what changed** by running `git diff --name-only HEAD` (or vs the base branch).
16 Categorize changes:
17 - **TS changes**: files in `compiler/packages/`
18 - **Rust changes**: files in `compiler/crates/`
19 - **Both**: run all checks
20
21 2. **If TS changed**, run these sequentially (stop on failure):
22 - `yarn snap` (or `yarn snap -p <pattern>` if a pattern was provided) — compiler tests
23 - `yarn test` — test full compiler
24 - `yarn workspace babel-plugin-react-compiler lint` — lint compiler source
25
26 3. **If Rust changed**, run these sequentially (stop on failure):
27 - `bash compiler/scripts/test-babel-ast.sh` — Babel AST round-trip tests
28 - `bash compiler/scripts/test-rust-port.sh` — full Rust port test suite (compares Rust vs TS compiler output across all passes; must have 0 failures — do not regress)
29 - `yarn snap --rust` — end-to-end snap tests using the Rust compiler (compares compiled output and logger events against `.expect.md` fixtures; use `yarn snap --rust -p <pattern>` for focused checks)
30
31 4. **Always run** (from the repo root):
32 - `yarn prettier-all` — format all changed files
33
34 5. **If implementing a plan doc**, check:
35 - Plan doc has no unaddressed "Remaining Work" items
36 - Plan doc status is updated to reflect current state
37
38 6. Report results: list each step as passed/failed. On failure, stop and show the error with suggested fixes.
39
40 ## Common Mistakes
41
42 - **Running `yarn snap` without `-p`** is fine for full verification, but slow. Use `-p` for focused checks.
43 - **Running prettier from compiler/** — must run from the repo root.
44 - **Forgetting Rust tests** — if you touched `.rs` files, always run the round-trip test and `yarn snap --rust`.