docs(sisyphus): docs

This commit is contained in:
2026-03-06 12:06:58 +08:00
parent 5d17ad5229
commit b9161ad8b6
4 changed files with 695 additions and 1 deletions
+25
View File
@@ -0,0 +1,25 @@
# Repository Guidelines
## Project Structure & Module Organization
Core code lives in `src/` and public headers in `include/cvmmap_streamer/`. The main runtime is `src/main_streamer.cpp`; shared logic is split by concern under `src/config`, `src/core`, `src/ipc`, `src/pipeline`, `src/protocol`, and `src/metrics`. Test utilities are standalone binaries in `src/testers/`. Automation and release gates live in `scripts/`, while operator notes and smoke-test profiles live in `docs/`. Third-party dependencies are vendored in `lib/` and should only be changed deliberately.
## Build, Test, and Development Commands
Configure and build with:
```bash
cmake -B build -S .
cmake --build build
```
This produces `build/cvmmap_streamer`, `build/rtp_receiver_tester`, `build/rtmp_stub_tester`, and `build/ipc_snapshot_tester`.
Use `cmake --fresh -B build -S .` if CMake caches stale dependency paths. Run the mandatory acceptance matrix with `./scripts/acceptance_standalone.sh` and the baseline fault suite with `./scripts/fault_suite.sh`. For targeted manual checks, run the built testers directly against `build/cvmmap_streamer`.
## Coding Style & Naming Conventions
This project targets C++23. Follow the existing style: tabs for indentation, braces on the same line, `snake_case` for functions and variables, `PascalCase` for types and enums, and lowercase directory names by subsystem. Keep headers under `include/cvmmap_streamer/...` aligned with their implementation paths where practical. No formatter or linter config is checked in, so match the surrounding file exactly before submitting changes.
## Testing Guidelines
There is no top-level unit-test framework in this repo; verification is primarily binary- and script-driven. Add behavior checks through `src/testers/` and extend the shell suites in `scripts/` when introducing new protocol or fault scenarios. Prefer deterministic inputs such as the dummy backend (`--input-mode dummy`) and keep labels short. Review generated evidence under `.sisyphus/evidence/` when validating failures.
## Commit & Pull Request Guidelines
Recent history uses Conventional Commit prefixes such as `feat(...)`, `fix(...)`, `refactor(...)`, `test(...)`, `build(...)`, and `chore(...)`. Continue that pattern and keep scopes specific, for example `refactor(protocol): simplify wire codec setup`. PRs should explain the runtime impact, list the commands you ran, and attach relevant logs or screenshots when output behavior changes. Link any issue or task ID when one exists.