Skip to content

Commit

Permalink
Add generic specification for the Eclipse provisioning platform (p2)
Browse files Browse the repository at this point in the history
In short, a p2 unit can be described via:
p2/<id>@<version>?classifier=...&location=...
  • Loading branch information
ptziegler committed Nov 29, 2023
1 parent f729aec commit 675866f
Showing 1 changed file with 52 additions and 1 deletion.
53 changes: 52 additions & 1 deletion PURL-TYPES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,58 @@ nuget

pkg:nuget/[email protected]

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.

- A p2 artifact is uniquely described by its id, version and classifier. A
namespace is therefore not necessary.

- The name of the package url corresponds to the unique identifier of a given p2
artifact. This id uniquely identifies an artifact within the Eclipse
Provisioning Platform.
Examples::

org.eclipse.core.resources.win32.x86_64
org.eclipse.rcp.sdk.id.executable.win32.win32.x86_64
org.eclipse.sdk

- The version of the package url corresponds to the version of the p2 unit. The
version is required to distinguish between different releases of the same
artifact.
Examples::

3.5.500.v20220812-1420
2.0.0.202304281106

- The `location` qualifier is an percent-encoded URI describing the physical
location of an artifact. This can for example be a repository accessed via
HTTPS, its Maven coordinates or an absolute file path to a local build result.
This qualifier is mandatory, because there is no central authority for hosting
p2 artifacts.
Examples::

https://download.eclipse.org/releases/2023-09
mvn:org.eclipse.platform:org.eclipse.core.runtime:3.29.0:jar

- The `classifier` qualifier describes the type of artifact. This qualifier is
optional, with no default value.
Examples::

binary
org.eclipse.update.feature
osgi.bundle

- Combined, those components then uniquely identify a p2 artifact. In short, the
format should be of the form p2/<id>@<version>?classifier=...&location=...
Examples::

pkg:p2/[email protected]?classifier=osgi.bundle&location=https%3A%2F%2Fdownload.eclipse.org%2Freleases%2F2023-09

qpkg
----
``qpkg`` for QNX packages:
Expand Down Expand Up @@ -558,7 +610,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:
Expand Down

0 comments on commit 675866f

Please sign in to comment.