Skip to content

chore: make CI strict — fmt diff + deny-warn - #4

Merged
bobzhang merged 2 commits into
mainfrom
chore/strict-ci
Apr 18, 2026
Merged

bobzhang merged 2 commits into
mainfrom
chore/strict-ci

Conversation

@bobzhang

@bobzhang bobzhang commented Apr 18, 2026 •

Copy link
Copy Markdown
Contributor

Why

The existing CI workflow uses moon check --warn-list=-a, which
silences every warning including new nightly deprecations. This means
deprecated syntax and APIs sneak in unnoticed.

Tightening it so deprecations become CI errors and get migrated early.

Changes

  • moon fmt && git diff --exit-code — format diff gate
  • moon check --deny-warn — warnings are errors
  • moon test — unchanged

If this PR turns red against main, that's the point: surfacing
outstanding deprecations. They should be fixed in follow-up PRs.

🤖 Generated with Claude Code


Open with Devin

Previously CI ran `moon check --warn-list=-a`, which silenced every
warning including new nightly deprecations. Tightening it so that
deprecation warnings become CI errors and get migrated promptly:

- `moon fmt && git diff --exit-code`  — enforces fmt cleanliness
- `moon check --deny-warn`            — warnings are errors
- `moon test`                         — unchanged

Generated with Claude Code (https://claude.com/claude-code).

@devin-ai-integration devin-ai-integration 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

Three deprecations surfaced by `moon check --deny-warn`:

- `pattern.substring(start=N)` / `word.substring(start=N)` —
  `substring` is deprecated; switched to MoonBit slice syntax
  `s[N:].to_string()`, matching the compiler's suggested replacement.
  Note: codex-cli review flagged a theoretical difference for starts
  that land on a UTF-16 trailing surrogate; current tests and
  `vscode_fuzzy_score_simple` (which always passes 0) don't exercise
  that path, so we follow the compiler guidance.
- `@json.inspect(...)` → `json_inspect(...)` — the package-qualified
  form is deprecated.
- `.gitignore`: ignore `_build/`.

All 5 tests pass under moon test.

Generated with Claude Code (https://claude.com/claude-code).
@bobzhang
bobzhang merged commit 76a48b7 into main Apr 18, 2026
2 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