Working in this repository (for people and coding agents)
These rules hold for every change to nornir, whatever the task. The task itself is described in its own design document under docs/v2/.
Source and branches
- Clone from
ssh://git@git.gunnar.rs:2222/nordisk/nornir.git. The forge's ssh host key isSHA256:Lv6vQGMBEUUxtbL9fUZhRfFiprE04uda7uL3JKKpVYc; accept no other. - Work on a branch of your own (
<topic>/next). Never push tomain; it is merged by review. - Before each push:
git fetch && git rebase origin/main. Never force-push a branch others have seen; make a new branch (<topic>/clean) instead.
How a change is made
- A failing test first. Every fix or feature is two commits:
RED: <what must hold>(the test, failing), thenGREEN: <what changed>(the code, the test passing). - One item per pair of commits; no mixed changes.
- Keep to the crates the task names. Do not reformat or "fix" unrelated code; report it instead.
Checks before every push
For the crates you changed:
cargo fmt --check -p <crate> ...
cargo clippy -p <crate> --all-targets -- -D warnings
cargo test -p <crate>
main still has fmt and clippy findings in code nobody has touched yet; they are not yours to fix in a task branch.
Building
- Builds run in a container (rootless podman or draupnir; image as named in the task's design), never against a developer's own toolchain state.
- Respect the machine you are given: the core and memory limits in the task,
nice -n 10, one heavy job at a time, work only under the task's work directory, never touch other people's directories, containers or processes.
Commits and text
- No mention of AI tools or assistants, and no
Co-Authored-Bylines, in commits, code or docs (git.gunnar.rs refuses them). - Licence: MIT OR Apache-2.0 for nornir's crates. No AGPL dependency.
- Plain English in docs and messages.
When you stop
Write REPORT.md in your work directory: per item the commits, the tests added, what is still open, and anything you could not do and why. Then delete your build targets.