Skip to content

vcpkg: Standardize vcpkg.json and resolve documentation inconsistencies #252

Description

@kcenon

Summary

Standardize common_system's vcpkg.json to follow ecosystem conventions and resolve inconsistencies between documentation and manifest.

5W1H Specification

  • Who: common_system maintainers
  • What: Update vcpkg.json structure, fix C++ standard declaration, unify license
  • Where: vcpkg.json and README.md
  • When: Q1 2025, Tier 1 priority
  • Why:
    • Enable vcpkg registry distribution
    • Resolve document-code inconsistencies
    • Establish template for other ecosystem systems
  • How:
    1. Update vcpkg.json to standard format
    2. Fix C++ standard version (C++20)
    3. Unify license to BSD-3-Clause
    4. Remove runtime dependencies from default-features

Current Issues

vcpkg.json Problems

Issue Current Expected
Name format common-system kcenon-common-system
C++ Standard "C++17" "C++20" (per README)
License "MIT" "BSD-3-Clause" (per README)
builtin-baseline String explanation Remove (invalid format)
default-features Includes gtest/benchmark Should be empty or testing-only

Document-Code Inconsistency

README.md states:

common_system is a high-performance C++20 library

vcpkg.json states:

"description": "C++17 common utilities..."

Proposed vcpkg.json

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-common-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "High-performance C++20 foundation library providing Result<T> pattern, interfaces, and common utilities",
  "homepage": "https://github.com/kcenon/common_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    {
      "name": "fmt",
      "version>=": "10.0.0"
    }
  ],
  "features": {
    "testing": {
      "description": "Build unit tests and benchmarks",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] },
        { "name": "benchmark" }
      ]
    }
  }
}

Tasks

  • Update vcpkg.json to proposed format
  • Update README.md if any version/license references need alignment
  • Verify vcpkg manifest mode build succeeds
  • Add vcpkg.json validation to CI (optional)

Acceptance Criteria

  • vcpkg.json follows ecosystem standard template
  • C++ standard consistently declared as C++20
  • License consistently BSD-3-Clause
  • vcpkg install --manifest-mode succeeds
  • No invalid fields (builtin-baseline removed or fixed)

Parent Epic

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designenhancementNew feature or requestpriority:highHigh priority issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions