Skip to content

Contributing

wardn decides who can do what in every product that uses it, so the bar for changes is deliberately high. The full rules are in CONTRIBUTING.md.

Terminal window
git clone git@github.com:MogRex-Limited/wardn.git
cd wardn
make hooks # every push runs every check first
make check # lint, security lint, tests, vulnerabilities, dependencies, API compatibility
  1. Tests come with the code. Security behaviour needs a test that would fail if the protection were removed.
  2. Threats are traceable. A fix for a threat in the threat model gets a test named TestThreat_<ID>_….
  3. Fail closed. Every error path denies.
  4. No silent suppression. Every //nolint names its linter and explains why.
  5. No hidden behaviour: no network calls, telemetry, global logging or unsafe.
  6. New dependencies need approval and an entry in the allowlist.
  7. Public API changes start with the design document.
  8. Commits are signed.

The documentation lives in website/ and is built with Astro Starlight:

Terminal window
cd website
npm ci
npm run dev # http://localhost:4321
npm run build # also checks every internal link

Questions about this page?

Ask below, point out something wrong or unclear, or suggest an improvement. Reading needs no account; to post, sign in with GitHub.