Skip to content

chore(deps): Establish single source of truth for vcpkg port management #533

Description

@kcenon

What

Vcpkg port definitions currently exist in three locations with no clear ownership model:

  1. Central registry (monitoring_system/vcpkg-ports/) — All 8 system ports, most up-to-date, real SHA512 hashes, includes patches
  2. Local ports ({database,network,pacs}_system/vcpkg-ports/) — Subset of ports, stale, SHA512 0 placeholders, no patches
  3. Remote registry (kcenon/vcpkg-registry.git) — Only referenced by monitoring_system

The central registry in monitoring_system is the de facto canonical source, but this is not documented and creates confusion with stale local ports.

Why

  • Stale local ports with SHA512 0 give the false impression of vcpkg readiness
  • Contributors may modify the wrong port definition (local vs central)
  • Patch files only exist in central registry — local ports lack critical fixes
  • No documented procedure for which port location to update when making changes
  • Blocks clean vcpkg registry submission workflow

Where

Current state

System Central (monitoring) Local (per-repo) Remote Registry
common_system port-v0 Referenced
thread_system port-v0 Referenced
logger_system port-v3 + patch Referenced
container_system port-v0 Referenced
monitoring_system port-v0 Referenced
database_system port-v2 + patch port-v1 (stale, SHA512=0)
network_system port-v3 + patch port-v0 (stale, SHA512=0)
pacs_system port-v2 + patch port-v0 (stale, SHA512=0)

How

Option A: Centralize in monitoring_system (current de facto approach)

  1. Remove stale local ports from database_system, network_system, pacs_system
  2. Document monitoring_system as the canonical port registry
  3. Add overlay-ports instructions to each repo's README
  4. Sync central ports to kcenon/vcpkg-registry.git on each release

Option B: Centralize in dedicated vcpkg-registry repo

  1. Move all ports from monitoring_system to kcenon/vcpkg-registry.git
  2. Remove all local ports from individual repos
  3. Each repo references the registry in vcpkg-configuration.json
  4. Single place for port updates, patches, and CI validation

Option C: Per-repo ports (fully distributed)

  1. Move each port to its own repo (each repo owns its port definition)
  2. Remove central registry from monitoring_system
  3. kcenon/vcpkg-registry.git aggregates from individual repos

Acceptance Criteria

  • Port management strategy chosen and documented
  • Stale local ports with SHA512 0 removed (regardless of strategy)
  • Single authoritative location for each port definition
  • Port update procedure documented (who updates what, when)
  • CI validates port builds from the chosen canonical location

Metadata

Metadata

Assignees

Labels

area/depsarea/integrationIntegration with other systemspriority/mediumMedium priority - Important but not urgentsize/MMedium - 1-3 days of worktype/choreMaintenance and cleanup tasks

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions