Skip to content

Add new PURL type: vcpkg#885

Open
JamieMagee wants to merge 1 commit into
package-url:mainfrom
JamieMagee:vcpkg-purl-fixes
Open

Add new PURL type: vcpkg#885
JamieMagee wants to merge 1 commit into
package-url:mainfrom
JamieMagee:vcpkg-purl-fixes

Conversation

@JamieMagee

@JamieMagee JamieMagee commented Jun 12, 2026

Copy link
Copy Markdown

Registers a vcpkg PURL type for Microsoft's C/C++ package manager. Continues #562 (and #245); closes #217.

Adds

  • types/vcpkg-definition.json: type definition
  • tests/types/vcpkg-test.json: parse tests
  • types-doc/vcpkg-definition.md: generated docs
  • vcpkg in purl-types-index.json

Shape

pkg:vcpkg/<name>@<version>?<qualifiers>

  • namespace: prohibited (vcpkg has no namespace; prefixes like boost- are part of the name)
  • name: required, the port name
  • version: optional, the upstream version
  • qualifiers: port_version (port-version, default 0), repository_revision (registry baseline SHA), triplet (target config), repository_url (non-default registry)

Design notes

  • port_version is a qualifier, not part of the version: # is the PURL subpath delimiter and vcpkg's version-string scheme disallows it. Matches what microsoft/component-detection emits, e.g. pkg:vcpkg/nlohmann-json@3.10.4?port_version=5. Resolves @pombredanne's question on Add new PURL type: 'vcpkg' #562.
  • triplet is one optional qualifier (e.g. x64-windows-static), not separate os/arch/linkage keys. It's build/target context and doesn't affect package identity.
  • repository_revision is the 40-char registry commit SHA (the baseline in vcpkg-configuration.json).

make check passes; docs regenerated with make gendocs. Related: microsoft/vcpkg#44201.

@JamieMagee JamieMagee force-pushed the vcpkg-purl-fixes branch 2 times, most recently from 4dcc4e4 to ad2222d Compare June 12, 2026 20:13
Register the vcpkg type for Microsoft's C/C++ package manager, including
its type definition, parse tests, generated documentation, and index entry.

Co-authored-by: aristotelos <arisvd@gmail.com>
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.

Add support for Microsoft's cross-platform C and C++ package manager, vcpkg

1 participant