Skip to content

vcpkg: Add missing common_system dependency and standardize vcpkg.json #348

Description

@kcenon

Summary

Add missing kcenon-common-system dependency to vcpkg.json and standardize the manifest format for vcpkg registry distribution.

5W1H Specification

  • Who: thread_system maintainers
  • What: Add common_system dependency, fix vcpkg.json structure
  • Where: vcpkg.json
  • When: Q1 2025, Tier 2 priority (after common_system#252)
  • Why:
    • common_system is a required dependency (per README)
    • vcpkg build will fail without declared dependency
    • Enable ecosystem-wide vcpkg distribution
  • How:
    1. Add kcenon-common-system to dependencies
    2. Update vcpkg.json to standard format
    3. Remove invalid builtin-baseline field

Current Issues

Missing Dependency

README.md states:

Required Dependencies:

  • common_system: Required

Current vcpkg.json:

{
  "dependencies": [
    { "name": "fmt", "version>=": "10.0.0" },
    { "name": "gtest" },
    { "name": "benchmark" }
  ]
}

No common_system listed!

Other vcpkg.json Problems

Issue Current Expected
Name format thread-system kcenon-thread-system
common_system dep Missing Required
builtin-baseline Invalid hash Remove
default-features testing deps Move to features

Proposed vcpkg.json

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-thread-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "High-performance C++20 thread pool library with typed pools and priority scheduling",
  "homepage": "https://github.com/kcenon/thread_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    "kcenon-common-system",
    {
      "name": "fmt",
      "version>=": "10.0.0"
    }
  ],
  "features": {
    "testing": {
      "description": "Build unit tests and benchmarks",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] },
        { "name": "benchmark" }
      ]
    }
  }
}

Tasks

  • Add kcenon-common-system to dependencies
  • Update vcpkg.json to standard format
  • Remove invalid builtin-baseline field
  • Move testing dependencies to features
  • Verify vcpkg manifest mode build succeeds

Acceptance Criteria

  • vcpkg.json includes common_system dependency
  • vcpkg.json follows ecosystem standard template
  • vcpkg install --manifest-mode succeeds with all dependencies resolved

Dependencies

Parent Epic

Metadata

Metadata

Assignees

Labels

dependenciesExternal dependencies managementenhancementNew feature or requestpriority:highHigh priority issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions