mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-10-22 22:11:56 +00:00
robot instructions update
This commit is contained in:
1 parent
c60b5e1bae
commit
3518a4de8a
1 file changed
+7
-1
@@ -34,6 +34,8 @@ touch before writing code. Decisions are in `docs/adr/`.
|
||||
## Invariants: do not change without an ADR
|
||||
|
||||
- Byte compatibility with Arduino MeshCore on the air and on the companion protocol; `prefs.json` format.
|
||||
- Settings persist in `prefs.json` only. The legacy binary prefs files are frozen: no new fields in
|
||||
`PrefsCodec`, no change to its size constants or to the pinned offsets and lengths in its tests.
|
||||
- The wall clock only moves forward.
|
||||
- Mesh, GPS state and UI run on the main thread; loops are event-driven, no polling.
|
||||
- No heap in the packet path. Companion builds are RAM-bound.
|
||||
@@ -48,10 +50,14 @@ touch before writing code. Decisions are in `docs/adr/`.
|
||||
## Mechanics
|
||||
|
||||
- Branch from `dev`, target `dev`, rebase instead of merging.
|
||||
- After a rebase, re-read the whole diff against `dev`: a branch older than the code around it can undo newer
|
||||
work without a conflict.
|
||||
- Tabs for indentation, except the upstream-ported files.
|
||||
- Build with `--pristine` when the board or role changes; ESP32 S3/C-series repeaters need `--sysbuild`.
|
||||
- Host tests: `python3 tests/run.py run --profile quick` (Linux or WSL). A new case needs a
|
||||
`tests/catalog.json` entry.
|
||||
`tests/catalog.json` entry. A failing pinned test is a finding: do not edit the pinned values to make it pass.
|
||||
- PR CI runs the host tests only. Build every board you touched and one you did not, and run each role you
|
||||
changed. Releases build from `zephcore.yml` alone, so nothing may depend on a hand-passed fragment.
|
||||
- New board: `zephcore.yml` without `release:`, then `python zephcore/scripts/board_manifest.py check` and
|
||||
`... docs`.
|
||||
- Docs in the same PR: a clause in `docs/ARCHITECTURE.md` when behaviour, an interface or a limit changes;
|
||||
|
||||
Reference in new issue
Block a user