docs: cmake/platform.cmake belongs to PKG/QA, not PORT (ADR 0020 amendment)
CI / clang-format (push) Canceled after 0s
CI / testserver (push) Canceled after 0s
CI / bootstrap-script (push) Canceled after 0s
CI / bootstrap-script-2604 (push) Canceled after 0s
CI / extension-lint (push) Canceled after 0s
CI / build (clang) (push) Canceled after 0s
CI / build (gcc) (push) Canceled after 0s
CI / sanitizers (dev) (push) Canceled after 0s
CI / sanitizers (tsan) (push) Canceled after 0s
CI / clang-tidy (push) Canceled after 0s
CI / conformance (push) Canceled after 0s
CI / nightly-integration (push) Canceled after 0s
CI / gui-dod (push) Canceled after 0s
CI / gui-dod-nightly (push) Canceled after 0s

As written, ADR 0020 gave PORT ownership of cmake/platform*.cmake while also
making PORT wait for Phase 0 — but Phase 0's seams are exactly what needs
velox_platform_sources() to select platform/linux/*.cpp. PORT cannot start until
Phase 0 lands, and Phase 0 cannot land without the file PORT owns. PKG/QA caught
the circularity before writing anything, which was the right call.

Central OS detection is root build infrastructure, so it stays with PKG/QA and
lands during Phase 0. PORT keeps the per-OS backend directories and the macOS
and Windows packaging, and owns no part of cmake/.

Also drops a hardcoded test count from the PORT definition of done; the suite
number moves every round and the gate is that it stays green.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-15 17:46:48 +04:00
co-authored by Claude Opus 5
parent 4e87730ce9
commit 9624e685af
3 changed files with 13 additions and 9 deletions
+5 -4
View File
@@ -5,7 +5,7 @@
## You own
```
core/src/**/platform/<os>/** daemon/src/**/platform/<os>/**
cmake/platform*.cmake packaging/macos/** packaging/windows/**
packaging/macos/** packaging/windows/**
```
You may read everything. **You never write logic** — not in `core/src/io/*.cpp`, not in
`daemon/src/rpc/*.cpp`, not in `gui/`, never in `contracts/`.
@@ -22,8 +22,9 @@ quietly edits shared logic is how one tree becomes two.
## Build order (macOS)
1. **Configure at all.** The root `CMakeLists.txt` requires `libsecret-1` unconditionally;
that must be Linux-gated before anything else compiles. File it with PKG/QA — root build
files are theirs.
that must be Linux-gated before anything else compiles. PKG/QA owns that, and also owns
`cmake/platform.cmake` (the `VELOX_OS_*` detection and `velox_platform_sources()`); both
land in Phase 0, before you start. File anything else you need with them.
2. `core/``preallocate`, `advise_dontneed`, `flush_durable`. Use `F_FULLFSYNC`, not
`fsync`: `.veloxpart` resume correctness depends on a real flush.
3. `daemon/``Wakeup` (self-pipe), `peer_of` (`getpeereid`), `instance_lock` (socket file
@@ -41,7 +42,7 @@ quietly edits shared logic is how one tree becomes two.
- One real download completes on macOS against `tools/testserver` with a SHA-256 that
matches the server's reference — the same gate the Linux vertical slice passed.
- `kill -9` mid-download, restart, resume completes and the checksum still matches.
- The Ubuntu suite is **still** 57/57 from the same commit.
- The Ubuntu suite is **still** green from the same commit.
## Do not
- Do not add `#ifdef` outside a `platform/<os>/` file.