Skip to content

Convert the static-check shell libraries to Rust #255

Description

@thedavidmeister

The org's static checks are accumulating as bash-in-composite-actions plus lib/*.sh sourced scripts (no-ignored-tests, no-custom-natspec, sol-single-contract, check-rainix-flake-pin in #252). Bash grep pipelines are fragile in exactly the ways that have already bitten: quoting/escaping bugs, exclusion anchoring subtleties (--exclude-dir=lib hiding test/lib/), and classification-by-grep misreads. Precedent for the fix: issue-pr-cron's pr-review-report was rewritten in Rust (fixing 16 reviewed bugs) and its queue sort was folded in with full mutation-validated test coverage (37/37 mutants killed).

Task: one Rust binary (a rainix crate, built via the existing rust toolchain in the flake) exposing the static checks as subcommands (e.g. rainix-static no-ignored-tests, rainix-static no-custom-natspec, rainix-static sol-single-contract); composite actions invoke it instead of inline bash; behaviors ported 1:1 with the existing BATS fixtures translated into Rust tests (and mutation-validated); BATS suites retire only as each subcommand reaches parity. Root-anchored vendor exclusion and exact-form allowlists (ERC-7201) preserved verbatim.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions