You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move every file out of src/impl/ into the appropriate feature directory under src/{alert,collectors,context,core,modules,platform,plugins,utils}/. After this PR, src/impl/ no longer exists; every implementation file lives next to the feature it implements.
Why
src/impl/ is a holdover from an earlier layout where implementations were collected away from their headers. The current canonical layout co-locates implementations with their feature directories. Keeping src/impl/ alive:
forces #include paths to mention impl/ as if it were a meaningful concept (it isn't)
makes every later cleanup harder (CMake fallback branch, hardcoded source list, decomposition) because two parallel layouts must be kept consistent
This is sub-issue 1 of 5 in EPIC #674 and the prerequisite for the other four sub-issues. Path stability after this PR is what makes the CMake work safe.
Affected: every translation unit that #includes the moved files; the target_sources(...) lists in CMakeLists.txt
How
Technical Approach
Enumerate src/impl/ contents.
For each file, decide the target feature directory by inspecting which src/<feature>/ already owns the corresponding header (or the closest semantic owner if the header is in include/).
Move with git mv so rename history is preserved.
Update every #include "impl/..." and #include <impl/...> site in the repo (sources, tests, examples, integration_tests, benchmarks).
What
Move every file out of
src/impl/into the appropriate feature directory undersrc/{alert,collectors,context,core,modules,platform,plugins,utils}/. After this PR,src/impl/no longer exists; every implementation file lives next to the feature it implements.Why
src/impl/is a holdover from an earlier layout where implementations were collected away from their headers. The current canonical layout co-locates implementations with their feature directories. Keepingsrc/impl/alive:#includepaths to mentionimpl/as if it were a meaningful concept (it isn't)This is sub-issue 1 of 5 in EPIC #674 and the prerequisite for the other four sub-issues. Path stability after this PR is what makes the CMake work safe.
Where
src/impl/<files>src/{alert,collectors,context,core,modules,platform,plugins,utils}/(feature dirs already exist)#includes the moved files; thetarget_sources(...)lists inCMakeLists.txtHow
Technical Approach
src/impl/contents.src/<feature>/already owns the corresponding header (or the closest semantic owner if the header is ininclude/).git mvso rename history is preserved.#include "impl/..."and#include <impl/...>site in the repo (sources, tests, examples, integration_tests, benchmarks).target_sources(...)and any other source-listing inCMakeLists.txtto point at the new paths. Keep this minimal — full source-list cleanup is sub-issue [EPIC] monitoring_system: remove legacy fallback and decompose CMake #674-3, not this one.src/impl/no longer exists at the repo root.Acceptance Criteria
src/impl/directory removed from repo rootsrc/impl/file lives under the appropriatesrc/<feature>/#includereferring to the oldimpl/path updatedcmake -S . -B build && cmake --build build/ -jsucceeds (CI fallback if local toolchain is unavailable)ctest --test-dir build/ --output-on-failurepassesEstimated Size
S–M. Pure mechanical move + path updates. No logic changes.
Part of #674