Skip to content

vcpkg: Add missing ecosystem dependencies (5 systems required) #296

Description

@kcenon

Summary

Add all 5 missing ecosystem dependencies to vcpkg.json for vcpkg registry distribution.

5W1H Specification

  • Who: database_system maintainers
  • What: Add 5 ecosystem dependencies, maintain DB backend features, standardize vcpkg.json
  • Where: vcpkg.json
  • When: Q1 2025, Tier 4 priority
  • Why:
    • All 5 ecosystem dependencies listed as "required" in README but missing from vcpkg.json
    • vcpkg build will fail without declared dependencies
    • Enable ecosystem-wide vcpkg distribution
  • How:
    1. Add all ecosystem dependencies
    2. Preserve existing DB backend features
    3. Update vcpkg.json to standard format

Current Issues

Missing Ecosystem Dependencies (CRITICAL)

README.md Dependency Flow:

database_system
├── common_system (required)
├── thread_system (required)
│   └── common_system
├── logger_system (required)
│   └── common_system
├── container_system (required)
│   └── common_system
└── monitoring_system (required)
    └── common_system, thread_system

Current vcpkg.json dependencies:

{
  "dependencies": [
    { "name": "fmt", "version>=": "10.2.1" },
    { "name": "asio" }
  ]
}

5 ecosystem dependencies missing!

vcpkg.json Problems

Issue Current Expected
common_system Missing Required
thread_system Missing Required
logger_system Missing Required
container_system Missing Required
monitoring_system Missing Required

Existing Features (Preserve)

The current vcpkg.json has good database backend features that should be preserved:

  • postgresql - libpq, libpqxx
  • mysql - libmysql
  • sqlite - sqlite3
  • testing - gtest, benchmark

Proposed vcpkg.json

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-database-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "Advanced C++20 Database System with Multi-Backend Support (PostgreSQL, MySQL, SQLite, MongoDB, Redis)",
  "homepage": "https://github.com/kcenon/database_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    "kcenon-common-system",
    "kcenon-thread-system",
    "kcenon-logger-system",
    "kcenon-container-system",
    "kcenon-monitoring-system",
    {
      "name": "fmt",
      "version>=": "10.2.1"
    },
    "asio"
  ],
  "features": {
    "postgresql": {
      "description": "Enable PostgreSQL database support",
      "dependencies": [
        "libpq",
        { "name": "libpqxx", "default-features": false },
        { "name": "openssl", "version>=": "3.0.0" }
      ]
    },
    "mysql": {
      "description": "Enable MySQL database support",
      "dependencies": ["libmysql"]
    },
    "sqlite": {
      "description": "Enable SQLite database support",
      "dependencies": ["sqlite3"]
    },
    "testing": {
      "description": "Enable unit testing and benchmarking",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] },
        "benchmark"
      ]
    }
  }
}

Tasks

  • Add kcenon-common-system to dependencies
  • Add kcenon-thread-system to dependencies
  • Add kcenon-logger-system to dependencies
  • Add kcenon-container-system to dependencies
  • Add kcenon-monitoring-system to dependencies
  • Preserve existing database backend features
  • Update vcpkg.json to standard format
  • Verify vcpkg manifest mode build succeeds

Acceptance Criteria

  • vcpkg.json includes all 5 ecosystem dependencies
  • Database backend features preserved
  • vcpkg.json follows ecosystem standard template
  • vcpkg install --manifest-mode succeeds

Dependencies

Parent Epic

Metadata

Metadata

Assignees

Labels

dependenciesExternal dependencies managementenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions