tokio-rs/tokio

tokio has zero hand-rolled shell scripts. All structural validation lives in matrix-driven CI workflows that *implicitly* rely on the repo being sane. alint catches the 15 conventions tokio's pipeline assumes but doesn't explicitly verify.

Narrative
Catches conventions your pipeline assumes but doesn't verify
Rules
74
Last revalidated
Engineering reference
README on GitHub · .alint.yml

Why this matters

tokio is the inverse of the Kubernetes shape — there is no ci/ directory, no hack/verify-*.sh pipeline, no custom linter binary. All structural validation lives in 7 GitHub Actions workflows (~1714 lines total), with the bulk in one ~1365-line ci.yml driving a multi-OS / multi-target / multi-feature matrix. That matrix is mostly build-and-test jobs (out of alint’s “no-build / no-execute” scope), but it carries roughly 12 distinct repo-state checks woven into the fmt, clippy, docs, semver, check-readme, and check-spelling jobs, plus the two cargo-deny workflows.

This is the canonical “convention without checks” case study — the cleanest demonstration in the catalogue of how a well-tooled Rust workspace silently relies on conventions its CI pipeline assumes but doesn’t explicitly verify. Use it as the launch counterpoint to kubernetes.

Headline catch

Kubernetes has 50 hand-rolled shell scripts; alint replaces 17 of them with one declarative config. tokio has zero hand-rolled shell scripts — all its structural validation lives in matrix-driven CI workflows that implicitly rely on the repo being sane. alint catches the 15 conventions tokio’s pipeline assumes but doesn’t explicitly verify.

The pitch lands as defense-in-depth, not replacement. tokio’s CI is already excellent; alint adds a layer that runs before CI — at keystroke time in an editor (with the JSON Schema), at pre-commit time (the bundled validate-config subcommand), or at the front of the pipeline. The conventions that previously lived only as oral history become checked, version-controlled, and diff-reviewable.

The 15 silent conventions tokio relies on (none surfaced by existing tools):

Each is a regression class that’s currently caught only when CI mysteriously breaks downstream.

Where alint earns its keep here

Future story angles

The factual engineering writeup (tooling inventory, mapping table, gap catalogue, validation status footer) lives in the public alint repo at github.com/asamarts/alint/tree/main/examples/tokio-rs-tokio/README.md.