- Do not hardcode
/tmpin production code or tests. - Use
std::env::temp_dir()ortempfile::TempDirfor temporary paths. - Do not set
HOMEorUSERPROFILEdirectly in tests unless the test is explicitly about home-directory resolution. - Prefer repo-specific env vars such as
SC_COMPOSE_*over ambient OS-home mutation. - Use
PathBufand.join()for path construction. - Do not assume Unix-only socket, path, or executable behavior unless the code is cfg-gated accordingly.
- Keep the documented Rust toolchain floor consistent across workspace files.
The current workspace minimum is Rust
1.94.1becausesc-observability1.0.0is part of the release dependency set.
- Tests must isolate filesystem state in temporary directories.
- Tests must not rely on platform-specific default paths when explicit test paths can be provided.
- Tests that spawn subprocesses must use bounded waits and explicit teardown.