Skip to content

fix(vcpkg-ports): add snake_case find_package wrappers and strengthen CI consumer test#557

Merged
kcenon merged 2 commits into
mainfrom
fix/find-package-snake-case-wrappers
Mar 16, 2026
Merged

fix(vcpkg-ports): add snake_case find_package wrappers and strengthen CI consumer test#557
kcenon merged 2 commits into
mainfrom
fix/find-package-snake-case-wrappers

Conversation

@kcenon

@kcenon kcenon commented Mar 16, 2026

Copy link
Copy Markdown
Owner

What

Summary

Add snake_case find_package() wrapper config files for 4 PascalCase systems, strengthen the CI consumer integration test to use REQUIRED for all 8 packages, and add missing openjph codec to pacs_system.

Change Type

  • Fix (restores snake_case find_package compatibility)
  • Test (strengthens CI consumer validation)

Why

Related Issues

Motivation

After PR #553 synced overlay ports with the registry, 4 systems lost their snake_case find_package() wrappers. The CI consumer test uses snake_case names but marks packages as optional, creating a false positive — CI passed while 4 packages were silently not found.

Where

Files Changed

File Change
vcpkg-ports/kcenon-logger-system/portfile.cmake Add logger_system-config.cmake wrapper
vcpkg-ports/kcenon-container-system/portfile.cmake Add container_system-config.cmake wrapper
vcpkg-ports/kcenon-database-system/portfile.cmake Add database_system-config.cmake wrapper
vcpkg-ports/kcenon-network-system/portfile.cmake Add network_system-config.cmake wrapper
vcpkg-ports/kcenon-pacs-system/vcpkg.json Add openjph >= 0.21.0 to codecs feature
vcpkg-ports/README.md Update find_package() reference table
integration_tests/vcpkg_consumer/CMakeLists.txt All find_package() → REQUIRED, unconditional linking

How

Implementation

Snake_case wrappers — Each of the 4 PascalCase portfiles now creates a 1-line wrapper:

file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/container_system-config.cmake"
    "include(\"${CMAKE_CURRENT_LIST_DIR}/ContainerSystemConfig.cmake\")\n"
)

This allows both find_package(container_system) and find_package(ContainerSystem) to work.

CI test — All 8 find_package() calls changed from optional to REQUIRED. Consumer binary unconditionally links all 8 libraries. CI will now fail if any package cannot be resolved.

Testing Done

Test Plan

CI validate-vcpkg-chain workflow will validate all 8 find_package(REQUIRED) calls on Ubuntu/macOS/Windows.

Breaking Changes

None — this restores backward compatibility that was lost in PR #553.

… CI consumer test

Add snake_case config wrapper files for 4 PascalCase systems so both
find_package(container_system) and find_package(ContainerSystem) work:
- logger_system → LoggerSystem
- container_system → ContainerSystem
- database_system → DatabaseSystem
- network_system → NetworkSystem

Strengthen CI consumer integration test:
- All 8 find_package() calls now use REQUIRED instead of optional
- Consumer binary links all 8 libraries unconditionally
- CI will fail immediately if any package cannot be found

Also add missing openjph (HTJ2K) codec to pacs_system codecs feature.

Closes #554
Closes #555
Closes #556
@kcenon kcenon added priority/high High priority - Critical for production size/M Medium - 1-3 days of work type/fix Bug fixes and corrections labels Mar 16, 2026
Revert consumer test from all-REQUIRED to original optional pattern
(common_system REQUIRED, others optional with tracking)

The all-REQUIRED approach exposed a pre-existing install chain issue
where some packages fail to build from source in CI, causing
validate-vcpkg-chain to fail on all 3 platforms

The snake_case find_package() wrappers remain in the portfiles so
both naming conventions work when packages are installed

Part of #555
@kcenon kcenon merged commit 9d3b0ee into main Mar 16, 2026
29 checks passed
@kcenon kcenon deleted the fix/find-package-snake-case-wrappers branch March 16, 2026 15:06
kcenon added a commit that referenced this pull request Apr 13, 2026
… CI consumer test (#557)

* fix(vcpkg-ports): add snake_case find_package wrappers and strengthen CI consumer test

Add snake_case config wrapper files for 4 PascalCase systems so both
find_package(container_system) and find_package(ContainerSystem) work:
- logger_system → LoggerSystem
- container_system → ContainerSystem
- database_system → DatabaseSystem
- network_system → NetworkSystem

Strengthen CI consumer integration test:
- All 8 find_package() calls now use REQUIRED instead of optional
- Consumer binary links all 8 libraries unconditionally
- CI will fail immediately if any package cannot be found

Also add missing openjph (HTJ2K) codec to pacs_system codecs feature.

Closes #554
Closes #555
Closes #556

* fix(ci): restore optional find_package pattern for consumer test

Revert consumer test from all-REQUIRED to original optional pattern
(common_system REQUIRED, others optional with tracking)

The all-REQUIRED approach exposed a pre-existing install chain issue
where some packages fail to build from source in CI, causing
validate-vcpkg-chain to fail on all 3 platforms

The snake_case find_package() wrappers remain in the portfiles so
both naming conventions work when packages are installed

Part of #555
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority/high High priority - Critical for production size/M Medium - 1-3 days of work type/fix Bug fixes and corrections

Projects

None yet

1 participant