Skip to content

[EPIC] thread_system: absorb legacy directories into standard layout #683

Description

@kcenon

Summary

Phase 6 of the ecosystem-wide directory structure standardization. thread_system maintains both a new include/kcenon/thread/ + src/ structure and four legacy directories (interfaces/, utilities/, core/, implementations/) — CMakeLists.txt auto-detects which mode to use. Absorb the legacy directories into the standard layout and remove the dual-mode build logic.

Part of kcenon/common_system#657 (master EPIC).

Why

  • Dual structure (new include/kcenon/thread/ plus 4 legacy directories) doubles the surface area new contributors must understand
  • CMakeLists.txt auto-detection logic adds 100+ lines of branching that pure standardization would eliminate
  • Downstream systems (logger, monitoring, network, pacs) all depend on thread_system — its layout deviations propagate

Scope

  1. Move public headers from interfaces/, utilities/, core/, implementations/ into include/kcenon/thread/{interfaces,utils,core,impl}/ (or merge into existing subdirectories)
  2. Move corresponding .cpp files into src/
  3. Remove the auto-detection branching in CMakeLists.txt; commit to the new structure
  4. Add forwarding headers in old paths with [[deprecated]] for one release
  5. Verify all 4 downstream consumers (logger, monitoring, network, database) build unchanged
  6. Reorganize tests/{unit,stress,integration_tests}/ per ecosystem standard

Child Issues

# Issue Phase Depends on
A #684 — refactor(layout): migrate legacy headers into include/kcenon/thread/ with deprecated forwarding 1
B #685 — refactor(build): remove USE_LEGACY_BUILD auto-detection branching 2 #684
C #686 — chore(tests): move integration_tests/ under tests/integration_tests/ 1
D #687 — ci(verify): downstream consumer builds (logger, monitoring, network, database) 3 #684, #685

Note on EPIC body: implementations/ was already removed prior to this EPIC; remaining legacy content as of decomposition: 4 headers in utilities/include/, 4 headers in core/{base,sync}/include/, plus an empty interfaces/ shell.

Acceptance Criteria

  • No public headers outside include/kcenon/thread/
  • No source files outside src/
  • CMakeLists.txt has single build path (no legacy detection)
  • Forwarding headers [[deprecated]] with removal in next minor
  • All 4 downstream consumers build with at most deprecation warnings
  • cmake modules match the canonical template

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions