|
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