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:
- Add kcenon-common-system to dependencies
- Add kcenon-thread-system as optional dependency
- Clarify spdlog role in documentation
- 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
Acceptance Criteria
Dependencies
Parent Epic
Summary
Add missing ecosystem dependencies to vcpkg.json, clarify spdlog dependency role, and standardize the manifest format.
5W1H Specification
vcpkg.jsonand documentationCurrent Issues
Missing Ecosystem Dependencies
README.md states:
Current vcpkg.json:
{ "dependencies": [ "fmt", "gtest", "spdlog" ] }Ecosystem dependencies not declared!
spdlog Dependency Confusion
The vcpkg.json lists
spdlogas a dependency, but:Other vcpkg.json Problems
logger-systemkcenon-logger-systemProposed 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
kcenon-common-systemto dependencieskcenon-thread-systemas optional feature dependencyAcceptance Criteria
vcpkg install --manifest-modesucceedsDependencies
Parent Epic