proto-requests-m1.md: freeze-blockers (error.code wire enum with the full CORE failure taxonomy, TaskSummary.segments meaning, Segment field names) separated from cheap follow-ups (decision event, credential return path, checksum pattern); state-machine ownership split flagged as three-way ADR material. pkg-requests-m1.md: uncomment add_subdirectory(core), pick a test framework, guard VELOX_BUILD_FUZZ on Clang. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HPPSGhiArbvQgwC2DNiURS
2.2 KiB
CORE → PKG/QA — requests
Status: open. Raised by lane CORE. PKG/QA owns root build files, .github/, and the
toolchain survey.
P1. Enable the core subdirectory — one line
CMakeLists.txt line 38 is the commented add_subdirectory(core). CORE has landed its
first target (libveloxcore + veloxcore_tests), so please uncomment it:
add_subdirectory(core) # lane CORE → libveloxcore
core/CMakeLists.txt is self-contained: it defines the veloxcore library and, under
if(VELOX_BUILD_TESTS), the test target registered with CTest. It pulls in no external
package yet (stage 1 = util/ only). net/ (stage 2) will add find_package(CURL 8.0)
and meta/ (stage 5) will add find_package(OpenSSL) — separate one-line requests when
those land.
P2. Test framework decision
No test framework is chosen in the root CMakeLists.txt or the docs. CORE is currently
using a ~90-line header-only harness at core/tests/support/vtest.hpp so the lane isn't
blocked. This is provisional. Please pick one (GoogleTest / Catch2 / doctest) and say
how it's provided (system package vs FetchContent vs vendored) — CORE will swap the
harness for it. The harness API is deliberately tiny (VT_TEST, VT_CHECK, VT_REQUIRE,
VT_CHECK_EQ) so the migration is mechanical.
P3. VELOX_BUILD_FUZZ needs a clang guard
This machine has no clang++; libFuzzer is clang-only. core/CMakeLists.txt guards the
fuzz targets behind if(VELOX_BUILD_FUZZ AND CMAKE_CXX_COMPILER_ID MATCHES "Clang") so a
GCC configure with -DVELOX_BUILD_FUZZ=ON (the ci preset sets it) doesn't hard-fail.
The ci preset in CMakePresets.json should either run with clang or expect fuzz targets
to be skipped on GCC. Flagging so CI doesn't go red on the first CORE push.
P4. dev/tsan presets overwrite CMAKE_CXX_FLAGS
CMakePresets.json sets CMAKE_CXX_FLAGS wholesale (-fsanitize=... -g), which replaces
rather than appends. core/CMakeLists.txt therefore sets its own -Wall -Wextra -Werror
via target_compile_options (not the cache var) so warnings-as-errors survive a
sanitizer preset. No action needed unless PKG would rather centralize warning flags — just
noting why CORE sets them at target scope.