From 16e0ee88f0889ab69df8fa44dce8c5e5c5871b42 Mon Sep 17 00:00:00 2001 From: Patrick Ziegler Date: Wed, 15 Nov 2023 15:48:22 +0100 Subject: [PATCH] Add artifact specification for the Eclipse provisioning platform (p2) This specification describes how the PURL for a given Eclipse artifact can be constructed. The locator includes both the information from the (unique) artifact key, as well as the base URI of the artifact repository. --- PURL-TYPES.rst | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/PURL-TYPES.rst b/PURL-TYPES.rst index 2bf69af..2c887bc 100644 --- a/PURL-TYPES.rst +++ b/PURL-TYPES.rst @@ -427,6 +427,33 @@ nuget pkg:nuget/EnterpriseLibrary.Common@6.0.1304 +p2 +---- +``p2`` for Eclipse p2 artifact: + +- A p2 artifact represents a piece of software that can be consumed using the + Eclipse Provisioning Platform. An artifact can represent various types of + components, such as Eclipse features, plug-ins or other bundles. + +- Each artifact is uniquely described by its artifact key consisting of an id, + version and classifier. The artifact id represents the ``name`` and the + version as ``version`` of the PURL. The classifier may be empty and is + therefore used as an (optional) `qualifier``. A ``namespace`` is not + necessary. + +- Examples: + org.eclipse.platform, 4.30.0.v20231201-0110, osgi.bundle + org.eclipse.sdk, 4.30.0.v20231201-0512, org.eclipse.update.feature + org.eclipse.rcp.sdk.id.executable.win32.win32.x86_64, , binary + +- Because there is no default p2 repository, a ``location`` qualifier is + required, describing the percent-encoded base URI of the artifact repository. + This means that the same artifact can have multiple PURLs, in case it is + accessible from multiple update sites. + +- Examples:: + pkg:p2/org.eclipse.swt@3.124.200.v20231113-1355?classifier=osgi.bundle&location=https%3A%2F%2Fdownload.eclipse.org%2Freleases%2F2023-12 + qpkg ---- ``qpkg`` for QNX packages: @@ -587,7 +614,6 @@ Other candidate types to define: - ``opam`` for OCaml packages: - ``openwrt`` for OpenWRT packages: - ``osgi`` for OSGi bundle packages: -- ``p2`` for Eclipse p2 packages: - ``pear`` for Pear PHP packages: - ``pecl`` for PECL PHP packages: - ``perl6`` for Perl 6 module packages: