Skip to main content

Verification

Version stamp

Applies to: renvor 0.0.0 · framework source 7d0816a · MSRV 1.94.0 · documentation set pre-release

This stamp is a single shared partial (docs/_stamp.mdx) imported by every prose page and the API reference. It binds this documentation snapshot to the immutable framework commit it describes. The framework remains unpublished and no release compatibility promise applies.

One command, identical locally and in automation:

cargo xtask verify

CI invokes this exact entry point. Nothing in a workflow file duplicates it, because duplicated steps are how local and automated verification silently drift apart — and divergence is how a skipped check gets reported as a pass.

The eleven steps

Executed in order. None is conditional. None is skipped.

#StepCommand
1Prerequisite probeRust and Node tooling, plus the required PostgreSQL/MySQL environment
2Formattingcargo fmt --all --check
3Lintcargo clippy --all-targets --all-features -- -D warnings
4TestsWorkspace tests, the ignored end-to-end route relay, then all 63 required four-row census pairs
5API documentationcargo doc --workspace --no-deps, warnings denied
6Dependency and licence policycargo deny check
7Architecture invariantscrate DAG, facade isolation, lean compile, publishable dependencies, instability wording, executable name
8Secret scangitleaks git . and gitleaks dir .
9Documentation sitenpm ci && npm run build
10Link checklychee over the built output
11Working-tree cleanlinessno untracked or modified files remain

Step 8 runs both scanners. The history scan cannot see uncommitted files; the directory scan cannot see content that was committed and later deleted. Neither substitutes for the other.

Fail-closed

A check that cannot run is a failure, never a skip.

Step 1 probes for every required tool and for all three database-environment variables. It refuses to continue if any prerequisite is absent:

error: verification cannot run — a required prerequisite is missing

missing: lychee (link checking, step 10)
install: cargo install lychee --locked

missing environment: RENVOR_TEST_POSTGRES_URL (the PostgreSQL half of the four-row census)
setup: export RENVOR_TEST_POSTGRES_URL=postgres://user:pass@127.0.0.1:5432/renvor_test

no checks were run. verification did not pass.

That last line is the point. A partial run reported as success is the exact failure mode this design exists to prevent.

Exit codes

CodeMeaning
0Every step ran and passed
1A step ran and failed
2A required tool or the four-row database environment is missing — no steps ran
3The working tree was dirty after an otherwise successful run

Exit code 2 is not a pass.

Required checks

These names are part of the contract and are required in branch protection:

  • verify (1.94.0) — full sequence at the declared MSRV
  • verify (stable) — full sequence at current stable
  • securitycargo deny, clippy with warnings denied, and the documentation dependency audit
  • docs — documentation build and link check

The pull-request-only dependency-review job and GitHub's default CodeQL analyses are separate checks. They are valuable, but they are not sub-steps hidden inside the required security context.