| name | on-task-done |
| description | Mandatory task-completion flow: self-review the branch, update docs (spec/cheatsheet/compiler/optimizer), then run `mise run on-task-done` (build, clippy-fix, golden + format fixtures, doc-stdlib, format, tests; 40+ min) and commit its generated changes. Run before committing a finished task or opening a PR. |
Overview
When you finish a task, you'd better reviewing the branch by yourself.
Also, update docs if applicable:
- docs/spec.md
- docs/cheatsheet.md
- docs/compiler.md
- docs/optimizer.md
Then, run time mise run on-task-done, which includes:
cargo build
mise run clippy-fix
mise run update-golden-fixtures
mise run update-golden-format-fixtures
mise run doc-stdlib
mise run format
mise run test
mise run test-wado
on-task-done will take 40+ minutes.
Notes
- Don't pipe it into
tail — you lose the full log. Redirect to a file and inspect it afterwards if you need to trim output.
- The changes generated by the command are necessary. Commit them.
- The process might be killed by the supervisor if you just wait for its completion. Watch the progress periodically in order to tell the supervisor you are still working in progress.
- If the changes only include Wado programs, only
mise run test-wado is required.
- If the changes only include documentation, only
mise run format is required.
Flaky Commands
Some commands are flaky and may segfault:
mise run update-golden-fixtures — the golden-dump batch tool sometimes segfaults mid-run (pre-existing issue). If it fails, run the individual golden generation manually for any new fixtures, then proceed.
mise run test (i.e., cargo test -p wado-compiler --test e2e) — the e2e test runner sometimes crashes with SIGSEGV when running all tests in parallel (pre-existing issue unrelated to compiler correctness).
If cargo test segfaults, reduce parallelism:
cargo test -p wado-compiler --test e2e -- --test-threads=4
Or run individual fixture tests directly:
cargo test -p wado-compiler --test e2e -- <fixture_name>