Skip to content

docs(layout): amend kcenon-system-layout.md to permit cmake/template/ Exceptions (v1.0→v1.1) #671

Description

@kcenon

What

Amend docs/kcenon-system-layout.md to permit the cmake/template/ sub-path as a documented owner exception for common_system. Bump standard version v1.0 → v1.1 (additive convention; SemVer MINOR).

Specific change

Add an entry under the Exceptions section of docs/kcenon-system-layout.md:

common_system: cmake/template/ sub-path

common_system owns and vends the reusable CMake template. Its canonical modules reside under cmake/template/ rather than directly under cmake/, allowing the template to carry its own VERSION file and be copied verbatim by downstream systems. The root CMakeLists.txt adds cmake/template to CMAKE_MODULE_PATH so all include(options), include(compiler), etc. calls resolve to cmake/template/<name>.cmake. This layout is functionally equivalent to the canonical cmake/<name>.cmake layout and is a documented owner exception.

All other systems MUST place their (copied) modules under cmake/ directly, not under cmake/template/.

Update the version header from v1.0 to v1.1.

Why

The Phase 7 audit (#661) flagged DEV-01: common_system's cmake modules live under cmake/template/, technically deviating from the standard's cmake/*.cmake rule. The structural reason is intentional — common_system is the template owner and namespaces the canonical modules under template/ so they can be version-tracked and copied verbatim by downstream systems. Without this Exceptions entry, common_system silently violates its own standard.

This is an additive convention (introduces an exception, removes no existing rule), so a MINOR bump (v1.0 → v1.1) is appropriate.

How

Approach

Single small docs PR modifying only docs/kcenon-system-layout.md and CHANGELOG.md (or equivalent). Branch: docs/issue-N-amend-cmake-template-exception (where N is this issue's number).

Acceptance Criteria

  • Exceptions section in docs/kcenon-system-layout.md lists cmake/template/ exception for common_system
  • Version header updated v1.0 → v1.1
  • CHANGELOG entry under Unreleased → Documentation
  • Other systems' obligation (no cmake/template/ for consumers) explicitly preserved
  • PR uses Closes #N keyword

References

Part of #656.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions