Skip to content

chore(vcpkg): Ecosystem third-party version override alignment for deployment readiness #454

Description

@kcenon

What

Tracking epic for aligning third-party dependency version overrides across all 8 ecosystem packages. A comprehensive vcpkg deployment readiness audit revealed inconsistencies in version pinning that could cause ABI incompatibilities or silent version drift when packages are used together.

  • Current: Several systems omit overrides for shared third-party dependencies that peer systems pin
  • Expected: All systems that use (directly or transitively) a shared dependency pin the same version in their vcpkg.json overrides
  • Scope: vcpkg.json overrides sections across monitoring_system, database_system, pacs_system; compiler requirement documentation across monitoring_system, database_system, network_system

Why

  • vcpkg resolves overrides per-manifest during library builds. If system A pins spdlog to 1.13.0 but system B doesn't pin it, system B may build against a different spdlog version — causing ABI mismatches when both are linked into a consumer project
  • The ecosystem's DEPENDENCY_MATRIX.md defines standard versions, but not all systems enforce them via vcpkg overrides
  • This is the last non-trivial blocker before ecosystem-wide vcpkg deployment readiness

Override Coverage Matrix (Current State)

Package Standard common thread logger container monitoring database network pacs
gtest 1.14.0
benchmark 1.8.3
grpc 1.51.1
protobuf 3.21.12
asio 1.30.2

Where

System Missing Overrides Risk
monitoring_system benchmark 1.8.3 Medium — all 7 peers pin it
database_system grpc 1.51.1, protobuf 3.21.12 Medium — features use these without pinning
pacs_system asio 1.30.2 Low — transitive via network_system

Compiler Documentation Gaps

System Documented GCC Actual GCC (transitive) Issue
monitoring_system 11+ 13+ (thread_system) Docs mismatch
database_system 11+ 13+ (thread_system) Docs mismatch
network_system 11+ 13+ (thread_system) Docs mismatch

How

Sub-Issues

Phase 1: Override Alignment (vcpkg.json fixes)

Phase 2: Documentation Alignment (README updates)

Phase 3: Config Template & Build Fixes

Acceptance Criteria

  • All systems sharing a third-party dependency pin the same version in overrides
  • Override coverage matrix shows no ❌ for dependencies a system uses
  • Compiler requirements in READMEs reflect transitive dependencies
  • DEPENDENCY_MATRIX.md override coverage section is up-to-date
  • Config templates use REQUIRED for mandatory dependencies
  • FetchContent fallback GIT_TAGs match current ecosystem versions
  • Port features are in sync with project manifest features

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions