Skip to content

vcpkg: Add missing ecosystem dependencies and OpenSSL version requirement #371

Description

@kcenon

Summary

Add all missing ecosystem dependencies to vcpkg.json and specify OpenSSL version requirements for vcpkg registry distribution.

5W1H Specification

  • Who: network_system maintainers
  • What: Add 4 ecosystem dependencies, specify OpenSSL 3.x requirement, standardize vcpkg.json
  • Where: vcpkg.json
  • When: Q1 2025, Tier 4 priority
  • Why:
    • All 4 ecosystem dependencies listed as "required" in README but missing from vcpkg.json
    • OpenSSL 3.x recommended but not specified in manifest
    • vcpkg build will fail without declared dependencies
  • How:
    1. Add all ecosystem dependencies
    2. Specify OpenSSL version constraint
    3. Update vcpkg.json to standard format

Current Issues

Missing Ecosystem Dependencies (CRITICAL)

README.md states:

Required Dependencies:

  • common_system: Result, IExecutor
  • thread_system: Async I/O worker pools
  • logger_system: Network event logging
  • container_system: Message serialization

Current vcpkg.json dependencies:

  • Only external libraries (asio, fmt, etc.)
  • ZERO ecosystem dependencies declared

OpenSSL Version

README.md states:

OpenSSL 3.x recommended for TLS 1.3 and QUIC support

vcpkg.json:

  • OpenSSL not version-constrained

vcpkg.json Problems

Issue Current Expected
common_system Missing Required
thread_system Missing Required
logger_system Missing Required
container_system Missing Required
OpenSSL version Not specified >=3.0.0
version field Missing Add version

Proposed vcpkg.json

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "kcenon-network-system",
  "version": "1.0.0",
  "port-version": 0,
  "description": "High-performance C++20 network library with TCP/TLS/QUIC support",
  "homepage": "https://github.com/kcenon/network_system",
  "license": "BSD-3-Clause",
  "supports": "!(uwp | xbox)",
  "dependencies": [
    "kcenon-common-system",
    "kcenon-thread-system",
    "kcenon-logger-system",
    "kcenon-container-system",
    "asio",
    {
      "name": "openssl",
      "version>=": "3.0.0"
    },
    {
      "name": "fmt",
      "version>=": "10.0.0"
    }
  ],
  "features": {
    "quic": {
      "description": "Enable QUIC transport support",
      "dependencies": []
    },
    "testing": {
      "description": "Build unit tests",
      "dependencies": [
        { "name": "gtest", "features": ["gmock"] },
        { "name": "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
  • Specify OpenSSL version>=3.0.0
  • Add version field
  • Update vcpkg.json to standard format
  • Verify vcpkg manifest mode build succeeds

Acceptance Criteria

  • vcpkg.json includes all 4 ecosystem dependencies
  • OpenSSL version constraint specified
  • 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