Skip to content

vcpkg: Add ecosystem dependencies and clarify spdlog relationship #264

Description

@kcenon

Summary

Add missing ecosystem dependencies to vcpkg.json, clarify spdlog dependency role, and standardize the manifest format.

5W1H Specification

  • Who: logger_system maintainers
  • What: Add common_system/thread_system dependencies, clarify spdlog usage, fix vcpkg.json
  • Where: vcpkg.json and documentation
  • When: Q1 2025, Tier 3 priority
  • Why:
    • Ecosystem dependencies missing from manifest
    • spdlog dependency unclear (self-implementation or wrapper?)
    • vcpkg build will fail without declared dependencies
  • How:
    1. Add kcenon-common-system to dependencies
    2. Add kcenon-thread-system as optional dependency
    3. Clarify spdlog role in documentation
    4. Update vcpkg.json to standard format

Current Issues

Missing Ecosystem Dependencies

README.md states:

Foundation Dependencies:

  • common_system: Required - ILogger, Result
  • thread_system: Optional - Async logging

Current vcpkg.json:

{
  "dependencies": [
    "fmt",
    "gtest",
    "spdlog"
  ]
}

Ecosystem dependencies not declared!

spdlog Dependency Confusion

The vcpkg.json lists spdlog as a dependency, but:

  • README mentions "high-performance async logging" as self-implemented
  • Unclear if spdlog is used internally or just for compatibility
  • Need to document the relationship

Other vcpkg.json Problems

Issue Current Expected
Name format logger-system kcenon-logger-system
common_system dep Missing Required
thread_system dep Missing Optional feature
spdlog role Unclear Document purpose

Proposed vcpkg.json

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-logger-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "High-performance C++20 async logging library with file rotation and console output",
  "homepage": "https://github.com/kcenon/logger_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    "kcenon-common-system",
    {
      "name": "fmt",
      "version>=": "10.0.0"
    }
  ],
  "features": {
    "async": {
      "description": "Enable async logging via thread_system",
      "dependencies": [
        "kcenon-thread-system"
      ]
    },
    "testing": {
      "description": "Build unit tests",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] }
      ]
    }
  }
}

Tasks

  • Add kcenon-common-system to dependencies
  • Add kcenon-thread-system as optional feature dependency
  • Clarify spdlog relationship in README (remove or document)
  • Update vcpkg.json to standard format
  • Verify vcpkg manifest mode build succeeds

Acceptance Criteria

  • vcpkg.json includes all required ecosystem dependencies
  • spdlog role documented or removed from dependencies
  • vcpkg.json follows ecosystem standard template
  • vcpkg install --manifest-mode succeeds

Dependencies

Parent Epic

Metadata

Metadata

Assignees

Labels

dependenciesDependency updates and managementenhancementNew feature or requestpriority:mediumMedium priority issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions