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>.
  • Loading branch information
ptziegler committed Nov 27, 2023
1 parent f729aec commit ec708cf
Showing 1 changed file with 53 additions and 1 deletion.
54 changes: 53 additions & 1 deletion PURL-TYPES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,59 @@ nuget

pkg:nuget/[email protected]

p2
----
``p2`` for Eclipse p2 units:

- A p2 unit represents a unit of software that can be consumed using the Eclipse
Provisioning Platform. A unit can represent various types of software
artifacts, such as Eclipse features, plug-ins or other bundles.

- A p2 unit is uniquely identified by its id and version. A namespace is
therefore not necessary.

- The name corresponds to the unique identifier of a given p2 unit. This id
uniquely identifies a unit 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.feature.group

- The version corresponds to the version of the p2 unit. A p2 repository may
host multiple versions of the same unit. This information is therefore
essential when resolving the relationship between different artifacts.
Examples::

3.5.500.v20220812-1420
2.0.0.202304281106

- The software artifact are accessed from a p2 repository. Given that each
project may host their own update site, no default repository exists. The base
path to this repository is provided by the ``repository_url`` qualifier key
and is optional.
Examples::

https://download.eclipse.org/releases/2023-09/202309131000
https://download.itemis.com/updates/releases/2.1.1

- A p2 repository can host a multitude of artifacts. The type of artifact is
provided by the ``classifier`` qualifier key and is optional.
Examples::

binary
org.eclipse.update.feature
osgi.bundle


- The full URL of a p2 unit can be derived from the name, version, repository
URL and classifier.
Examples::

pkg:p2/[email protected]
pkg:p2/org.eclipse.rcp.sdk.id.executable.win32.win32.x86_64@4.29.0.I20230903-1000?classifier=binary
pkg:p2/[email protected]?repository_url=https://download.eclipse.org/releases/2023-09/202309131000

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

Please sign in to comment.