First contact
Clone the repo, install dependencies, run the tests:
Eleven files fail. Nothing in the output says why. The cause is that some suites boot the real chiefd binaries, and a fresh clone has not built them yet:
Run that once and the same command is green.
Why it is worth fixing
This is the first thing a new contributor does, and the failure gives them no way to tell "I set something up wrong" from "this project is broken". A red suite on first contact, with no explanation, is the worst available introduction — and the fix costs almost nothing.
The fix
Two parts, and the first matters more:
- The affected suites should refuse in words rather than fail obscurely. A preflight that checks for the binaries and prints
build the binaries first: cargo build --bins is a refusal a reader can act on. Failing eleven assertions is not.
- One line in CONTRIBUTING naming the build step before the test step.
This mirrors how the repo guards already behave: a check that cannot run says so by name instead of reporting a fault it did not observe.
Acceptance
- A fresh clone that runs the test suite without building gets a message naming the command to run.
- After that command, the suite passes.
- The preflight does not add noise to a normal run where the binaries exist.
First contact
Clone the repo, install dependencies, run the tests:
Eleven files fail. Nothing in the output says why. The cause is that some suites boot the real
chiefdbinaries, and a fresh clone has not built them yet:Run that once and the same command is green.
Why it is worth fixing
This is the first thing a new contributor does, and the failure gives them no way to tell "I set something up wrong" from "this project is broken". A red suite on first contact, with no explanation, is the worst available introduction — and the fix costs almost nothing.
The fix
Two parts, and the first matters more:
build the binaries first: cargo build --binsis a refusal a reader can act on. Failing eleven assertions is not.This mirrors how the repo guards already behave: a check that cannot run says so by name instead of reporting a fault it did not observe.
Acceptance