Skip to content

chore(vcpkg): Ecosystem vcpkg deployment readiness — Phase 2 #455

Description

@kcenon

What

Tracking epic for Phase 2 of vcpkg deployment readiness across all 8 ecosystem packages. A comprehensive audit revealed structural issues in vcpkg manifests and CMake export naming that could cause build failures or confusion for consumers.

  • Current: network_system classifies required kcenon dependencies as optional feature; export naming conventions (targets file name, CMake namespace) are inconsistent across the 8 systems
  • Expected: All required dependencies are in top-level dependencies; export naming follows a single convention ecosystem-wide
  • Scope: vcpkg.json dependency classification (network_system), CMake install(EXPORT) naming convention (all systems)

Why

  • network_system: kcenon-common-system and kcenon-thread-system are required at build time (CMakeLists.txt uses find_package(common_system REQUIRED)), but vcpkg.json places them under the optional ecosystem feature. If a consumer installs kcenon-network-system without [ecosystem], the build will fail because these dependencies won't be resolved
  • Naming inconsistency: Consumer projects must guess between find_package(thread_system) + thread_system::thread_base vs find_package(ThreadSystem) + ThreadSystem::thread_base. This friction slows adoption and creates integration bugs

Export Naming Current State

System Export File Namespace Separator
common_system common_systemTargets kcenon::
thread_system ThreadSystemTargets thread_system:: / ThreadSystem::
logger_system logger_system-targets LoggerSystem:: hyphen
container_system container_system-targets ContainerSystem:: hyphen
monitoring_system monitoring_system_targets monitoring_system:: underscore
database_system database_system-targets DatabaseSystem:: hyphen
network_system network_system-targets NetworkSystem:: hyphen
pacs_system pacs_systemTargets kcenon::pacs::

Where

System File Issue
network_system vcpkg.json Required deps in optional ecosystem feature
all 8 systems CMakeLists.txt, cmake/*Install*.cmake Export naming inconsistency

How

Sub-Issues

Phase 2a: Dependency Classification Fix

  • kcenon/network_system#TBD — fix(vcpkg): Move required kcenon dependencies from ecosystem feature to top-level dependencies

Phase 2b: Export Naming Standardization

  • kcenon/common_system#TBD — chore(cmake): Standardize ecosystem export naming convention

Acceptance Criteria

  • network_system vcpkg.json lists kcenon-common-system and kcenon-thread-system in top-level dependencies
  • All 8 systems use consistent export file naming pattern
  • All 8 systems use consistent CMake namespace pattern
  • Consumer project can find_package() all 8 systems using a predictable naming convention

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions