Skip to content

fix(vcpkg-ports): Ecosystem port consistency audit fixes#563

Merged
kcenon merged 4 commits into
mainfrom
fix/vcpkg-port-consistency-audit
Mar 16, 2026
Merged

fix(vcpkg-ports): Ecosystem port consistency audit fixes#563
kcenon merged 4 commits into
mainfrom
fix/vcpkg-port-consistency-audit

Conversation

@kcenon

@kcenon kcenon commented Mar 16, 2026

Copy link
Copy Markdown
Owner

What

Summary

Fix 4 port consistency issues identified during comprehensive vcpkg ecosystem audit:
dependency accuracy, missing dependencies, empty feature arrays, and stale PascalCase wrappers.

Change Type

  • Bugfix (fixes an issue)
  • Chore (maintenance)

Affected Components

  • vcpkg-ports/kcenon-logger-system/ — removed unused dependency
  • vcpkg-ports/kcenon-network-system/ — added missing zlib dependency
  • vcpkg-ports/kcenon-monitoring-system/ — wired network feature dependency
  • vcpkg-ports/kcenon-{logger,container,database,network}-system/ — snake_case migration

Why

Problem Solved

  1. logger_system port declared kcenon-thread-system as dependency but disabled it (-DLOGGER_USE_THREAD_SYSTEM=OFF) — wasted consumer build time
  2. network_system port missing zlib core dependency — potential link failures for consumers
  3. monitoring_system port network feature had empty dependency array — enabling the feature would fail at CMake configure
  4. 4 portfiles used PascalCase PACKAGE_NAME with manual snake_case wrappers despite all upstream systems completing snake_case migration

Related Issues

Where

Files Changed Summary

File Change
vcpkg-ports/kcenon-logger-system/vcpkg.json Remove kcenon-thread-system from deps
vcpkg-ports/kcenon-network-system/vcpkg.json Add zlib >= 1.3 to deps
vcpkg-ports/kcenon-monitoring-system/vcpkg.json Add kcenon-network-system to network feature
vcpkg-ports/kcenon-logger-system/portfile.cmake snake_case PACKAGE_NAME, remove wrapper
vcpkg-ports/kcenon-container-system/portfile.cmake snake_case PACKAGE_NAME, remove wrapper
vcpkg-ports/kcenon-database-system/portfile.cmake snake_case PACKAGE_NAME, remove wrapper
vcpkg-ports/kcenon-network-system/portfile.cmake snake_case PACKAGE_NAME, remove wrapper

How

Implementation Highlights

  • Dependency fix: Removed thread_system from logger port since portfile explicitly disables it
  • Missing dep: Added zlib to network port matching source vcpkg.json core requirements
  • Feature wiring: Populated empty network feature dependency array with kcenon-network-system
  • Naming migration: Changed vcpkg_cmake_config_fixup(PACKAGE_NAME PascalCase ...) to snake_case and removed 40+ lines of wrapper generation code across 4 portfiles

Upstream Migration References

System Upstream Issue Status
logger_system kcenon/logger_system#502 Completed
container_system kcenon/container_system#424 Completed
database_system kcenon/database_system#455 Completed
network_system kcenon/network_system#843 Completed

Test Plan

  • vcpkg consumer integration test passes for all 8 packages
  • find_package(logger_system CONFIG) resolves without wrapper
  • find_package(container_system CONFIG) resolves without wrapper
  • find_package(database_system CONFIG) resolves without wrapper
  • find_package(network_system CONFIG) resolves without wrapper

Breaking Changes

  • find_package(LoggerSystem CONFIG), find_package(ContainerSystem CONFIG), etc. (PascalCase) will no longer work via the port. Consumers should use find_package(snake_case CONFIG).

kcenon added 4 commits March 17, 2026 00:38
…port

The logger_system portfile explicitly sets -DLOGGER_USE_THREAD_SYSTEM=OFF,
making the kcenon-thread-system dependency unused. Remove it to avoid
unnecessary compile time for consumers.

Closes #559
The network_system source vcpkg.json declares zlib >= 1.3 as a core
dependency for message compression, but the port was missing it.
Consumers could encounter link errors without this dependency.

Closes #560
… feature

The network feature enables HTTP metrics export which requires
network_system, but the dependency array was empty. Without this,
enabling the feature would fail at CMake configure time.

Closes #561
…Case wrappers

All 4 upstream systems completed snake_case install(EXPORT) migration:
- logger_system (kcenon/logger_system#502)
- container_system (kcenon/container_system#424)
- database_system (kcenon/database_system#455)
- network_system (kcenon/network_system#843)

Update portfile vcpkg_cmake_config_fixup() to use snake_case
PACKAGE_NAME and CONFIG_PATH directly, removing the manual wrapper
config files that were added as a stopgap in #554.

Closes #562
@kcenon kcenon merged commit b27c497 into main Mar 16, 2026
29 checks passed
@kcenon kcenon deleted the fix/vcpkg-port-consistency-audit branch March 16, 2026 21:03
kcenon added a commit that referenced this pull request Apr 13, 2026
* fix(vcpkg-ports): remove unused thread_system dep from logger_system port

The logger_system portfile explicitly sets -DLOGGER_USE_THREAD_SYSTEM=OFF,
making the kcenon-thread-system dependency unused. Remove it to avoid
unnecessary compile time for consumers.

Closes #559

* fix(vcpkg-ports): add missing zlib dependency to network_system port

The network_system source vcpkg.json declares zlib >= 1.3 as a core
dependency for message compression, but the port was missing it.
Consumers could encounter link errors without this dependency.

Closes #560

* fix(vcpkg-ports): add network_system dep to monitoring_system network feature

The network feature enables HTTP metrics export which requires
network_system, but the dependency array was empty. Without this,
enabling the feature would fail at CMake configure time.

Closes #561

* chore(vcpkg-ports): migrate PACKAGE_NAME to snake_case, remove PascalCase wrappers

All 4 upstream systems completed snake_case install(EXPORT) migration:
- logger_system (kcenon/logger_system#502)
- container_system (kcenon/container_system#424)
- database_system (kcenon/database_system#455)
- network_system (kcenon/network_system#843)

Update portfile vcpkg_cmake_config_fixup() to use snake_case
PACKAGE_NAME and CONFIG_PATH directly, removing the manual wrapper
config files that were added as a stopgap in #554.

Closes #562
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment