Skip to content

[lightlib] Add port: lightlib version 0.1.4 - #53328

Draft
NikSimDev wants to merge 7 commits into
microsoft:masterfrom
NikSimDev:add-lightlib-port
Draft

[lightlib] Add port: lightlib version 0.1.4#53328
NikSimDev wants to merge 7 commits into
microsoft:masterfrom
NikSimDev:add-lightlib-port

Conversation

@NikSimDev

@NikSimDev NikSimDev commented Aug 9, 2026

Copy link
Copy Markdown

This PR adds a new port for the lightlib library, a modern C++ MVC framework for high-performance APIs. The port has been tested on Windows (x64), Linux (x64), and macOS (x64).

  • Changes comply with the maintainer guide.
  • The packaged project is mature and ready for broad sharing with vcpkg users
    • Has a release at least 6 months old or 6 months of demonstrated public development
    • Is an official component of something else meeting that criteria
    • Some other reason (The project lightlib has been in private development for over 1.5 years to ensure a stable and production-ready codebase. It has been publicly developed and available for the last 3 months, with active maintenance. We believe this combined period demonstrates equivalent maturity to the 6-month public development requirement)
  • The packaged project shows strong association with the chosen port name. Check this box if at least one of the following criteria is met:
    • The project is in Repology: https://repology.org/project//versions
    • The project is amongst the first web search results for "" or " C++". Include a screenshot of the search engine results in the PR.
    • The port name follows the 'GitHubOrg-GitHubRepo' form or equivalent Owner-Project form.
  • Optional dependencies of the build are all controlled by the port. A dependency is controlled if it is declared an unconditional dependency in vcpkg.json, or explicitly disabled through patches or build system arguments such as CMAKE_DISABLE_FIND_PACKAGE_Xxx or VCPKG_LOCK_FIND_PACKAGE
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is brief and accurate.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

@NikSimDev

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@NikSimDev NikSimDev changed the title [lightlib] Add port: lightlib version 0.1.3 [lightlib] Add port: lightlib version 0.1.4 Aug 9, 2026

@BillyONeal Billy O'Neal (BillyONeal) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Some other reason (The project lightlib has been in private development for over 1.5 years to ensure a stable and production-ready codebase. It has been publicly developed and available for the last 3 months, with active maintenance. We believe this combined period demonstrates equivalent maturity to the 6-month public development requirement)

Unfortunately that doesn't seem to be a reason to disregard the usual maturity rules. The point of those is about how people will use the component in question, not a statement about the quality of the code inside. It's a statement about the kind of churn we see when things first become publicly available and not wanting to sign up to resolve that churn.

  • The packaged project shows strong association with the chosen port name. Check this box if at least one of the following criteria is met:
    • The project is in Repology: https://repology.org/project//versions
    • The project is amongst the first web search results for "" or " C++". Include a screenshot of the search engine results in the PR.
    • The port name follows the 'GitHubOrg-GitHubRepo' form or equivalent Owner-Project form.

This is not true; GitHubOrg-GitHubRepo would be lev2p1-lightlib. The name "light" is extremely generic and adding "lib" suffixes is not considered disambiguating under https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#example-ambiguous-port-name

Additionally, GPT 5.6 Sol reports the following:

  • A Debug consumer of lightlib::lightlib links the Release lightlib archives and fails with MSVC runtime/iterator-level mismatches. The port declares vcpkg-cmake-config but never calls vcpkg_cmake_config_fixup(). Additionally, the upstream aggregate target links both the static and shared libraries, and the port's static-linkage branch deletes the shared DLLs while leaving exported shared targets that require them. Package only the selected linkage, export one usable consumer target, and validate both Release and Debug.
  • Upstream calls find_package(OpenSSL REQUIRED), exports OpenSSL::SSL and OpenSSL::Crypto, and exposes OpenSSL headers in public headers; relying on another dependency to install it transitively is not sufficient.
  • Convert ports/lightlib/portfile.cmake to LF, remove trailing whitespace, and add the final newline.
  • Install both upstream license texts. The LGPLv3 text incorporates GPLv3, and upstream supplies LICENSE (LGPLv3) and COPYING (GPLv3); pass both to vcpkg_install_copyright.
  • Remove the unused picojson dependency.
  • Replace the boost meta-port with the specific Boost component ports required by the build to avoid installing the entire Boost collection.
  • Remove the redundant explicit CMAKE_TOOLCHAIN_FILE option and the unnecessary VCPKG_POLICY_DLLS_WITHOUT_EXPORTS; the produced Windows DLL has exports.

@BillyONeal
Billy O'Neal (BillyONeal) marked this pull request as draft August 10, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants