Skip to content

Commit de347f2

Browse files
authored
Merge branch 'package-url:main' into main
2 parents 5a5c78c + 4253062 commit de347f2

File tree

83 files changed

+871
-4304
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+871
-4304
lines changed

PURL-SPECIFICATION.rst

Lines changed: 5 additions & 559 deletions
Large diffs are not rendered by default.

PURL-TYPES.rst

Lines changed: 2 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,2 @@
1-
Package-URL Type definitions
2-
============================
3-
4-
Each package manager, platform, type, or ecosystem has its own conventions and
5-
protocols to identify, locate, and provision software packages.
6-
7-
The package **type** is the component of a Package-URL that is used to capture
8-
this information with a short string such as ``maven``, ``npm``, ``nuget``, ``gem``,
9-
``pypi``, etc.
10-
11-
These are registered ``PURL`` package type definitions.
12-
13-
Definitions can also include types reserved for future use.
14-
15-
See also https://github.com/package-url/purl-spec and
16-
`<PURL-SPECIFICATION.rst>`_ for the Package URL specification.
17-
18-
This document no longer contains a manually maintained list of PURL types.
19-
20-
Instead, all PURL type definitions are now maintained in a simple JSON document with
21-
automatically generated documentation.
22-
23-
24-
Where to find PURL Type information
25-
--------------------------------------
26-
27-
- In the JSON Index listing of all defined PURL types at:
28-
`/purl-types-index.json <https://github.com/package-url/purl-spec/tree/main/purl-types-index.json>`_
29-
30-
- In individual JSON files, one for each PURL type definition at:
31-
`/types <https://github.com/package-url/purl-spec/tree/main/types>`_
32-
33-
- As Markdown documentation, generated from for each PURL type JSON definition at:
34-
`/types-doc <https://github.com/package-url/purl-spec/tree/main/types-doc>`_
35-
36-
37-
How PURL Types are maintained
38-
------------------------------
39-
40-
All PURL type definitions are maintained as JSON definition files and JSON test files in the PURL
41-
specification repository. These JSON files serve as the source of truth and define the
42-
structure of each PURL type, including:
43-
44-
- Namespace and name formatting rules
45-
- Supported qualifiers
46-
- Repository requirements
47-
- Mapping of PURL concepts to the native ecosystem concepts
48-
49-
On commit, a job automatically:
50-
51-
- Checks that all JSON files are schema-valid
52-
- Formats all the JSON files
53-
- Generates the ``purl-types-index.json`` file containing a list of defined registered PURL types
54-
- Generates human-readable documentation for each type
55-
56-
57-
How to Propose a New PURL Type
58-
------------------------------
59-
60-
To propose a new PURL type, create an **issue** and a corresponding **pull request** to the
61-
repository with:
62-
63-
- a new JSON definition file under `types/`.
64-
- a new JSON test file file under `tests/types/`.
65-
66-
67-
Ensure that your proposal follows the **PURL Type Definition Schema** and includes all required
68-
fields. For this see the README-dev.rst for details to run local checks.
69-
70-
71-
72-
Other candidate types to define
73-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74-
75-
- ``android`` for Android apk packages:
76-
- ``apache`` for Apache projects packages:
77-
- ``atom`` for Atom packages:
78-
- ``bower`` for Bower JavaScript packages:
79-
- ``brew`` for Homebrew packages:
80-
- ``buildroot`` for Buildroot packages
81-
- ``carthage`` for Cocoapods Cocoa packages:
82-
- ``chef`` for Chef packages:
83-
- ``chocolatey`` for Chocolatey packages
84-
- ``clojars`` for Clojure packages:
85-
- ``coreos`` for CoreOS packages:
86-
- ``crystal`` for Crystal Shards packages:
87-
- ``ctan`` for CTAN TeX packages:
88-
- ``drupal`` for Drupal packages:
89-
- ``dtype`` for DefinitelyTyped TypeScript type definitions:
90-
- ``dub`` for D packages:
91-
- ``ebuild`` for Gentoo Linux portage packages:
92-
- ``eclipse`` for Eclipse projects packages:
93-
- ``elm`` for Elm packages:
94-
- ``gitea`` for Gitea-based packages:
95-
- ``gitlab`` for GitLab-based packages:
96-
- ``gradle`` for Gradle plugins
97-
- ``guix`` for Guix packages:
98-
- ``haxe`` for Haxe packages:
99-
- ``helm`` for Kubernetes packages
100-
- ``julia`` for Julia packages:
101-
- ``melpa`` for Emacs packages
102-
- ``meteor`` for Meteor JavaScript packages:
103-
- ``nim`` for Nim packages:
104-
- ``nix`` for Nixos packages:
105-
- ``opam`` for OCaml packages:
106-
- ``openwrt`` for OpenWRT packages:
107-
- ``osgi`` for OSGi bundle packages:
108-
- ``p2`` for Eclipse p2 packages:
109-
- ``pear`` for Pear PHP packages:
110-
- ``pecl`` for PECL PHP packages:
111-
- ``perl6`` for Perl 6 module packages:
112-
- ``platformio`` for PlatformIO packages:
113-
- ``puppet`` for Puppet Forge packages:
114-
- ``sourceforge`` for Sourceforge-based packages:
115-
- ``sublime`` for Sublime packages:
116-
- ``terraform`` for Terraform modules
117-
- ``vagrant`` for Vagrant boxes
118-
- ``vim`` for Vim scripts packages:
119-
- ``wordpress`` for Wordpress packages:
120-
- ``yocto`` for Yocto recipe packages:
121-
122-
123-
License
124-
~~~~~~~
125-
126-
This document is licensed under the MIT license.
1+
The contents of this file: purl-spec/PURL-TYPES.rst have been moved to:
2+
purl-spec/docs/standard/types.md and purl-spec/docs/maintain-purl-types.md.

0 commit comments

Comments
 (0)