Summary
Phase 0 + Phase 7 of the ecosystem-wide directory structure standardization. This sub-EPIC owns the foundation work — publishing the layout standard, extracting the canonical cmake/*.cmake template from pacs_system, and wiring an ecosystem cross-build CI workflow — and the final verification pass after the other 7 systems migrate.
Part of #657 (master EPIC, see issue body for full phase order).
Why
- common_system sits at the root of the dependency graph; touching it last (Phase 7) avoids cascading rebuilds during the migration
- A single source-of-truth layout document (
docs/kcenon-system-layout.md) prevents each system from re-deciding conventions
- The
cmake/*.cmake decomposition pattern already proven in pacs_system pays back across 7 other systems once extracted as a template
- An ecosystem cross-build CI workflow is the only practical way to detect when one repo's structural change breaks the other 7
Scope
- Layout standard document —
docs/kcenon-system-layout.md describing the canonical directory structure, header path convention (include/kcenon/<name>/), src/ layout, test directory rules, cmake module decomposition
- Canonical cmake template — extract pacs_system's 8
cmake/*.cmake modules (options/compiler/dependencies/targets/install/testing/examples/warnings) as a reusable template
- Ecosystem cross-build CI workflow —
.github/workflows/ecosystem-cross-build.yml that fetches all 8 systems and verifies a downstream change does not break siblings
- Phase 7 verification — after the other 7 sub-EPICs close, audit common_system itself against the standard and apply any final adjustments
Child Issues
Acceptance Criteria
Summary
Phase 0 + Phase 7 of the ecosystem-wide directory structure standardization. This sub-EPIC owns the foundation work — publishing the layout standard, extracting the canonical
cmake/*.cmaketemplate from pacs_system, and wiring an ecosystem cross-build CI workflow — and the final verification pass after the other 7 systems migrate.Part of #657 (master EPIC, see issue body for full phase order).
Why
docs/kcenon-system-layout.md) prevents each system from re-deciding conventionscmake/*.cmakedecomposition pattern already proven in pacs_system pays back across 7 other systems once extracted as a templateScope
docs/kcenon-system-layout.mddescribing the canonical directory structure, header path convention (include/kcenon/<name>/), src/ layout, test directory rules, cmake module decompositioncmake/*.cmakemodules (options/compiler/dependencies/targets/install/testing/examples/warnings) as a reusable template.github/workflows/ecosystem-cross-build.ymlthat fetches all 8 systems and verifies a downstream change does not break siblingsChild Issues
docs/kcenon-system-layout.mdv1.0kcenon-cmake-template/from pacs_system cmake modulesAcceptance Criteria