diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b5023d..8083d84 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,9 +4,8 @@ name: Assembly # builds them together — the cross-component integration each component's own # CI cannot catch on its own. The assembled set is the components whose # renames/migrations are mutually consistent (ADR 0003 lockstep): -# - xmBase + xmDriver build; xmTelemetry is cloned (pin/wiring validated) -# but stays TELEMETRY=OFF until the pinned xmBase carries the telemetry -# API it builds against (xmBase PR #18). +# - xmBase + xmTelemetry + xmDriver build together (the telemetry wave: +# xmBase v0.3.0, the SDK, and the instrumented drivers). # - xmNavigation returns when its HAL migration lands (it still includes # pre-redesign xmDriver headers, e.g. xmdriver/hal/*_interface.hpp). @@ -21,7 +20,7 @@ env: jobs: assemble: - name: Assemble (base + driver) + name: Assemble (base + telemetry + driver) runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -57,12 +56,12 @@ jobs: - name: Install dependencies (union of component deps) run: | sudo apt-get update && sudo apt-get install -y \ - libeigen3-dev libspdlog-dev libasio-dev libmodbus-dev libevent-dev \ + libeigen3-dev libasio-dev libmodbus-dev libevent-dev \ libevdev-dev libgl1-mesa-dev libglfw3-dev libcairo2-dev libtbb-dev \ libboost-all-dev libgsl-dev libopencv-dev libyaml-cpp-dev \ libncurses-dev libpcl-dev libglm-dev - - name: Configure assembly (base + driver) + - name: Configure assembly (base + telemetry + driver) run: > cmake -S . -B build -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DXMOTION_WITH_NAVIGATION=OFF -DENABLE_VISUALIZATION=OFF diff --git a/CMakeLists.txt b/CMakeLists.txt index 746be18..e959e73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,9 +18,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # -- Options ---------------------------------------------------------------- # xmBase (foundation) is always built. The rest are opt-in so a consumer only # pays for the dependency footprint it actually needs. -# xmTelemetry stays OFF until the pinned xmBase carries the telemetry API it -# builds against (xmBase PR #18 / ABI v3) — flip ON at the next re-pin wave. -option(XMOTION_WITH_TELEMETRY "Build xmTelemetry (observability SDK)" OFF) +option(XMOTION_WITH_TELEMETRY "Build xmTelemetry (observability SDK)" ON) option(XMOTION_WITH_DRIVER "Build xmDriver (host hardware drivers)" ON) option(XMOTION_WITH_NAVIGATION "Build xmNavigation (motion algorithms)" ON) option(XMOTION_WITH_VIEWER "Build xmViewer (visualization)" OFF) diff --git a/TODO.md b/TODO.md index 969f0a5..b4ed964 100644 --- a/TODO.md +++ b/TODO.md @@ -6,8 +6,8 @@ The task tracker for the family. Cross-repo sequencing lives here; each componen - [x] xmBase: merge PR [#18](https://github.com/rxdu/xmBase/pull/18) (telemetry docs package + examples + ABI v3) - [x] xmBase: cut v0.3.0 (telemetry API baseline — released 2026-07-05) -- [ ] xmDriver: migrate `XLOG_*` → `XM_*` telemetry API (one-touch, clean break); adopt driver signals (FreshnessMonitor age, tx-queue depth, fault counters, DeviceHealth) through the API -- [ ] Umbrella: re-pin xmBase + xmDriver after the migration; flip `XMOTION_WITH_TELEMETRY=ON` in the assembly +- [x] xmDriver: migrate `XLOG_*` → `XM_*` telemetry API + adopt driver signals through the API (PRs #29 + #30) +- [~] Umbrella: re-pin xmBase + xmDriver + telemetry; `XMOTION_WITH_TELEMETRY=ON` (PR #16, awaiting merge) - [x] xmBase: replace the interim spdlog binding with the permanent dependency-free console binding (shipped in v0.3.0 — spdlog left the foundation) - [ ] xmNavigation: HAL migration + telemetry-instrumented refactor (includes ADR 0002 Phase-2 decoupling: drop bundled `third_party/xmMu`/`xmSigma` copies, depend on the renamed components) - [ ] Umbrella: re-pin xmNavigation; flip `XMOTION_WITH_NAVIGATION=ON` — full assembly returns diff --git a/components/base b/components/base index 10e204d..fa73d7e 160000 --- a/components/base +++ b/components/base @@ -1 +1 @@ -Subproject commit 10e204ded289852b931f91f553d4945a31a33282 +Subproject commit fa73d7e3cff513d75fad249505ef3968ca0f6de2 diff --git a/components/driver b/components/driver index 04be8c5..3634995 160000 --- a/components/driver +++ b/components/driver @@ -1 +1 @@ -Subproject commit 04be8c5185155d9420cefc850c0eb5adec6cbdf3 +Subproject commit 36349953efd61dab7494a6df8b9b0badbfd5c7a5 diff --git a/components/telemetry b/components/telemetry index 9680a4f..6582650 160000 --- a/components/telemetry +++ b/components/telemetry @@ -1 +1 @@ -Subproject commit 9680a4f75cfedb6c62d75f4314160452f8729fd0 +Subproject commit 658265047fee2ac8178d3a5e660f5c7277e6fd5c