rustydocs

Roadmap

Where the native test runner is going — a full quality and correctness suite for Rust.

Actively built

rusty’s test surface is intentionally ambitious: a native Zig stack for day-to-day correctness, monorepo CI, and high-throughput iteration. This page is the living “where we want it to go” document. Prefer updating the shipped matrix when work lands rather than marketing ahead of the code.

North star

One command family — primarily rusty test — should become the place teams go for:

  1. Correctness — unit, integration/file, doctest, and (later) richer harnesses
  2. Quality gates — machine-readable reports, shards, retries, fail-fast
  3. Scale — affected graphs, CAS/layer caching, concurrency as a brand
  4. Honesty — Linux-only, never silent cargo test, dual-mode product elsewhere

Inspiration remains: Jest/Vitest discovery UX, cargo test coverage, cargo-nextest execution model, docker-layer cache economics.

Done (spine)

The following are implemented and documented under What ships today:

  • Native file / unit / doctest planning and execution
  • Multi-package select, --affected (+ direct), native workspace graph for rusty-format
  • Shared job scheduler, timed progress, test binary CAS cache
  • --shard k/n, --reporter junit=PATH, --retries N

Next waves

Quality & CI depth

DirectionIntent
Package green-sealSkip re-running a package’s tests when content digests are unchanged and last run was green
JSON / structured reportersBeyond JUnit for custom dashboards
Richer fail outputStable machine + human diagnostics per unit
nextest-like profilesNamed profiles for local vs CI (still native config, not cargo-nextest)

Correctness tooling (suite expansion)

These are product goals for a broader quality/correctness suite — not all necessarily under rusty test forever, but part of the same story:

DirectionIntent
CoverageFirst-class report hooks driven from native compile/run
Sanitizers / MiriDocumented, reproducible invocations with rusty toolchains
Fuzzing / property testsIntegration with common Rust harnesses without cargo wrappers
Static policylint/deny-style gates as companion verbs where they fit

Each row needs an honest matrix entry before docs claim “done.”

Platform & interop

DirectionIntent
Drop cargo-metadata fallbackFully native graph for remaining cargo-format workspace shapes
[[test]] / Cargo.toml discoverOptional discovery for unmigrated trees without calling cargo test
Stronger hermetic offline e2eCI fixtures that prove offline + cache without network

Non-goals (still)

  • macOS / Windows support
  • Becoming a silent alias for cargo test
  • Full nextest config ecosystem day-one
  • Claiming full cargo-test parity in marketing copy while any matrix row is incomplete

How to contribute to the story

  1. Prefer extending src/pm/test/* and the native build driver — not shelling out.
  2. Wire tests into zig build test (see AGENTS.md).
  3. Update What ships today and this roadmap in the same change.
  4. Keep help text, CLI reference, and this Test docs tab aligned.

On this page