Skip to content

refactor(include): migrate public headers to include/kcenon/container/ convention#440

Merged
kcenon merged 1 commit into
mainfrom
refactor/439-migrate-headers-to-kcenon-convention
Mar 19, 2026
Merged

refactor(include): migrate public headers to include/kcenon/container/ convention#440
kcenon merged 1 commit into
mainfrom
refactor/439-migrate-headers-to-kcenon-convention

Conversation

@kcenon

@kcenon kcenon commented Mar 19, 2026

Copy link
Copy Markdown
Owner

What

Summary

Migrates all public headers from core/ to include/kcenon/container/ to align with the kcenon ecosystem convention used by all other systems (thread_system, common_system, etc.).

Change Type

  • Refactor (no functional changes)

Affected Components

  • include/kcenon/container/ — 24 canonical public headers (new)
  • core/ — replaced with forwarding headers
  • include/container/optimizations/ — replaced with forwarding header
  • CMakeLists.txt — include paths and install rules

Why

Related Issues

Motivation

All other 7 systems in the kcenon ecosystem use include/kcenon/<system>/ as the public include root. container_system was the only outlier with headers directly in core/. This migration ensures consistent include paths across the entire ecosystem:
```cpp
// New canonical path (preferred)
#include <kcenon/container/container.h>
// Old path still works (backward compatible)
#include "core/container.h"
```

Where

Files Changed Summary

Directory Files Type of Change
include/kcenon/container/ 14 New canonical headers
include/kcenon/container/container/ 8 New canonical sub-headers
include/kcenon/container/serializers/ 6 New canonical headers
include/kcenon/container/optimizations/ 1 New canonical header
core/ 9 Replaced with forwarding headers
core/container/ 8 Replaced with forwarding headers
core/serializers/ 6 Replaced with forwarding headers
CMakeLists.txt 1 Include paths and install rules

How

Implementation Details

  1. Copied all public headers from core/ to include/kcenon/container/ preserving subdirectory structure
  2. Replaced original core/ headers with minimal forwarding headers
  3. Added include/ to BUILD_INTERFACE include paths
  4. Added install(DIRECTORY include/kcenon ...) for the canonical headers
  5. Updated module target include directories to match

Testing Done

  • CMake configure succeeds
  • Full build (100%) — no compilation errors
  • All 22 unit tests pass
  • Backward compatibility verified — all existing include paths work via forwarding headers

Breaking Changes

None — all existing include paths continue to work through forwarding headers.

…/ convention

Move all public headers from core/ to include/kcenon/container/ to match
the kcenon ecosystem convention used by all other systems (thread_system,
common_system, etc.). Original core/ headers are replaced with forwarding
headers for full backward compatibility.

Changes:
- Copy 23 public headers to include/kcenon/container/ (with subdirs
  container/, serializers/, optimizations/)
- Replace core/ originals with forwarding headers (#include <kcenon/...>)
- Add include/ to BUILD_INTERFACE include paths in CMakeLists.txt
- Add install rule for include/kcenon/ directory
- Update module target include directories

Backward compatibility: All existing #include paths continue to work
via the forwarding headers in core/. No consumer code changes required.

Closes #439
@github-actions

Copy link
Copy Markdown
Contributor

Performance Benchmark Report

Summary

  • Total benchmarks: 0
  • Regressions: 0 ✅
  • Improvements: 0
  • Unchanged: 0 (within 10% threshold)

Status: No significant performance regressions detected.

@kcenon kcenon merged commit 5d2a65e into main Mar 19, 2026
31 checks passed
kcenon added a commit that referenced this pull request Mar 19, 2026
After PR #440 migrated headers to include/kcenon/container/, two
directories were missing from the cmake install rules:

- include/container/ forwarding headers (for #include <container/...>)
- messaging/ directory (message_container.h)

This caused downstream build failures (e.g., network_system CI on
Windows MSVC) when cmake --install did not copy these headers.
kcenon added a commit that referenced this pull request Mar 19, 2026
Fix cmake install rules after header migration (PR #440). Ensures
include/kcenon/container/ headers are properly installed for downstream
consumers. Unblocks network_system CI.
@kcenon kcenon deleted the refactor/439-migrate-headers-to-kcenon-convention branch March 19, 2026 04:17
kcenon added a commit that referenced this pull request Apr 13, 2026
Fix cmake install rules after header migration (PR #440). Ensures
include/kcenon/container/ headers are properly installed for downstream
consumers. Unblocks network_system CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(include): migrate public headers to include/kcenon/container/ convention

1 participant