Skip to content

[EPIC] common_system: layout standard, cmake template, cross-build CI #656

Description

@kcenon

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

  1. Layout standard documentdocs/kcenon-system-layout.md describing the canonical directory structure, header path convention (include/kcenon/<name>/), src/ layout, test directory rules, cmake module decomposition
  2. Canonical cmake template — extract pacs_system's 8 cmake/*.cmake modules (options/compiler/dependencies/targets/install/testing/examples/warnings) as a reusable template
  3. 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
  4. 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

  • Standard document merged and linked from each of the 8 system READMEs
  • cmake template repository (or directory) usable as drop-in by sibling systems
  • Cross-build CI passes on PRs that touch any of the 8 systems
  • common_system itself conforms to the standard with no exceptions
  • Master EPIC body updated with final verification note

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions