Skip to content

Run Rust formatting, tests, and Clippy in CI #443

Description

@lukewilliamboswell

Context

The CI jobs named “Format, check, and test examples” run ./scripts/test.py --operation validate:

  • .github/workflows/ci.yml:27-44
  • .github/workflows/ci.yml:46-62

That validation runs Roc tests/format/check operations, but it does not run Rust formatting, Rust tests, or Clippy. At commit 295000a during the release-candidate audit:

  • cargo check --locked --all-targets passed;
  • cargo fmt --all -- --check failed on formatting in src/lib.rs;
  • cargo test --locked --all-targets passed but ran zero Rust tests;
  • cargo clippy --locked --all-targets -- -D warnings failed on generated acronym names and a raw-pointer ABI lint.

The generated src/roc_platform_abi.rs needs targeted lint allowances rather than disabling useful linting for handwritten host code.

Suggested direction

Add a dedicated Rust validation job or extend the current validation job to run:

  • cargo fmt --all -- --check
  • cargo test --locked --all-targets
  • cargo clippy --locked --all-targets -- -D warnings

Configure narrow allowances for generated glue. Add unit tests for pure host helpers and error mappings so cargo test provides meaningful coverage in addition to end-to-end Roc examples.

Acceptance criteria

  • Rust formatting is required by CI and the current formatting difference is fixed.
  • Handwritten Rust passes Clippy with warnings denied.
  • Generated glue has documented, narrowly scoped lint allowances.
  • Rust tests cover representative HTTP method/error mapping, TCP read helpers, SQLite lifecycle helpers, and filesystem classification.
  • Contributor verification instructions list the same commands CI runs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciGH Actions or workflows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions