Story: Build quality
Table of Contents
This page documents a story in Sprint 01. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Bring the build's quality floor up to a level the rest of v0 can rely on: nightly memcheck running, Valgrind clean, the chosen C++ standard applied consistently, vcpkg warnings suppressed.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 01 |
| Now | Story closed; nightlies green, Valgrind stable, C++ standard bumped, vcpkg warnings tamed. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2024-07-28 |
Acceptance
- A nightly pipeline runs with memcheck enabled.
- Valgrind runs the unit tests without crashing.
- Unit tests appear exactly once in nightly reports (no duplicates).
- vcpkg warnings are silenced or suppressed with a clear rationale.
- The C++ standard is bumped to the project's chosen version.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Add nightly support with memcheck | DONE | 2024-07-05 | 2024-07-08 | Add a nightly CI pipeline that runs the tests under memcheck. |
| Fix Valgrind failing to run unit tests | DONE | 2024-07-08 | 2024-07-09 | Diagnose and fix the cause of Valgrind crashing during the unit-test run. |
| Update C++ standard | DONE | 2024-07-15 | 2024-07-15 | Bump the C++ standard used across the build to the project's chosen target. |
Decisions
- Memcheck as the canonical nightly check
- lighter than ASan + TSan permutations at this stage; we revisit once we have more threading code.
- Valgrind fix on the platform side
- route taken was to address the symptom in the test harness rather than patch Valgrind itself.
Out of scope
- Coverage tracking — deferred to sprint 03's Logging and observability story.
- Performance benchmarks (deferred).
See also
- CMake setup — preset menu and the parallel-build configuration this story established.
- How do I run the tests? — the recipe that exercises the test pipeline this story stabilised.
- Build stabilisation (sprint 02) and Build stabilisation 3 (sprint 03) — successor stories that addressed the longer-tail build issues this story left open.