Skip to content

Standardize vcpkg.json following ecosystem conventions #201

Description

@kcenon

Summary

Standardize vcpkg.json to follow the unified_system ecosystem conventions established in common_system.

Parent Epic

Part of kcenon/common_system#251 (Epic: vcpkg.json Standardization Across Unified System Ecosystem)

Current Issues

Field Current Expected
name messaging-system kcenon-messaging-system
$schema missing add
homepage missing add
license missing add BSD-3-Clause
port-version missing add (0)
supports missing add "!(uwp | xbox)"
dependencies too many in default restructure with ecosystem deps

Critical Issue

Current default dependencies include testing libraries (gtest, benchmark) and potentially unnecessary direct dependencies that should come from ecosystem packages.

Required Changes

  1. Package name: messaging-systemkcenon-messaging-system
  2. Add: $schema, homepage, license, port-version, supports
  3. Restructure dependencies:
    • Use ecosystem packages (kcenon-common-system, kcenon-network-system, etc.)
    • Move gtest, benchmark to testing feature
    • Remove direct dependencies that come through ecosystem
  4. Add: Feature flags for optional integrations

vcpkg.json Template

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-messaging-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "Messaging system with container, database, and network modules",
  "homepage": "https://github.com/kcenon/messaging_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    "kcenon-common-system",
    "kcenon-thread-system",
    "kcenon-container-system",
    "kcenon-logger-system",
    "kcenon-network-system",
    "kcenon-database-system",
    "nlohmann-json"
  ],
  "features": {
    "testing": {
      "description": "Build unit tests and benchmarks",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] },
        "benchmark"
      ]
    }
  }
}

Acceptance Criteria

  • vcpkg.json follows ecosystem standard template
  • Dependencies restructured to use ecosystem packages
  • Unnecessary direct dependencies removed
  • LICENSE file exists with BSD-3-Clause
  • README reflects correct dependencies
  • vcpkg manifest mode build succeeds

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and design

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions