Skip to content

Commit 7d980ec

Browse files
committed
Update pypandoc and related code, structure and output #581
- Includes updating the content and location of the two pypandoc output files, purl-specification.md and purl-standard.md. Reference: #581 Signed-off-by: John M. Horan <johnmhoran@gmail.com>
1 parent 142502c commit 7d980ec

File tree

3 files changed

+52
-51
lines changed

3 files changed

+52
-51
lines changed

docs/standard/purl-is-url.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

docs/standard/specification-summary.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,33 @@ Table 1: Components of a PURL
1919
Components are separated by a specific character for unambiguous parsing. Components are designed such that they form a hierarchy from the most significant on the left to the least significant on the right.
2020

2121
A ``purl`` must NOT contain a URL Authority. i.e. there is no support for ``username``, ``password``, ``host`` and ``port`` components. A ``namespace`` segment may sometimes look like a ``host`` but its interpretation is specific to a ``type``.
22+
23+
## A ``purl`` is a URL
24+
25+
- A ``purl`` is a valid URL and URI that conforms to the URL definitions or
26+
specifications at:
27+
- https://tools.ietf.org/html/rfc3986
28+
- https://en.wikipedia.org/wiki/URL#Syntax
29+
- https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax
30+
- https://url.spec.whatwg.org/
31+
- This is a valid URL because it is a locator even though it has no Authority
32+
URL component: each ``type`` has a default repository location when defined.
33+
- The ``purl`` components are mapped to these URL components:
34+
- ``purl`` ``scheme``: this is a URL ``scheme`` with a constant value: ``pkg``
35+
- ``purl`` ``type``, ``namespace``, ``name`` and ``version`` components: these are
36+
collectively mapped to a URL ``path``
37+
- ``purl`` ``qualifiers``: this maps to a URL ``query``
38+
- ``purl`` ``subpath``: this is a URL ``fragment``
39+
- In a ``purl`` there is no support for a URL Authority (e.g. NO
40+
``username``, ``password``, ``host`` and ``port`` components).
41+
- Special URL schemes as defined in https://url.spec.whatwg.org/ such as
42+
``file://``, ``https://``, ``http://`` and ``ftp://`` are NOT valid ``purl`` types.
43+
They are valid URL or URI schemes but they are not ``purl``.
44+
They may be used to reference URLs in separate attributes outside of a ``purl``
45+
or in a ``purl`` qualifier.
46+
- Version control system (VCS) URLs such ``git://``, ``svn://``, ``hg://`` or as
47+
defined in Python pip or SPDX download locations are NOT valid ``purl`` types.
48+
They are valid URL or URI schemes but they are not ``purl``.
49+
They are a closely related, compact and uniform way to reference VCS URLs.
50+
They may be used as references in separate attributes outside of a ``purl`` or
51+
in a ``purl`` qualifier.

purl-specification.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -81,28 +81,6 @@ A `purl` must NOT contain a URL Authority. i.e. there is no support for
8181
segment may sometimes look like a `host` but its interpretation is
8282
specific to a `type`.
8383

84-
## Some `purl` examples
85-
86-
> pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c
87-
>
88-
> pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie
89-
>
90-
> pkg:gem/ruby-advisory-db-check@0.12.4
91-
>
92-
> pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c
93-
>
94-
> pkg:golang/google.golang.org/genproto#googleapis/api/annotations
95-
>
96-
> pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?packaging=sources
97-
>
98-
> pkg:npm/foobar@12.3.1
99-
>
100-
> pkg:nuget/EnterpriseLibrary.Common@6.0.1304
101-
>
102-
> pkg:pypi/django@1.11.1
103-
>
104-
> pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25
105-
10684
## A `purl` is a URL
10785

10886
- A `purl` is a valid URL and URI that conforms to the URL definitions
@@ -134,6 +112,28 @@ specific to a `type`.
134112
reference VCS URLs. They may be used as references in separate
135113
attributes outside of a `purl` or in a `purl` qualifier.
136114

115+
## Some `purl` examples
116+
117+
> pkg:bitbucket/birkenfeld/pygments-main@244fd47e07d1014f0aed9c
118+
>
119+
> pkg:deb/debian/curl@7.50.3-1?arch=i386&distro=jessie
120+
>
121+
> pkg:gem/ruby-advisory-db-check@0.12.4
122+
>
123+
> pkg:github/package-url/purl-spec@244fd47e07d1004f0aed9c
124+
>
125+
> pkg:golang/google.golang.org/genproto#googleapis/api/annotations
126+
>
127+
> pkg:maven/org.apache.xmlgraphics/batik-anim@1.9.1?packaging=sources
128+
>
129+
> pkg:npm/foobar@12.3.1
130+
>
131+
> pkg:nuget/EnterpriseLibrary.Common@6.0.1304
132+
>
133+
> pkg:pypi/django@1.11.1
134+
>
135+
> pkg:rpm/fedora/curl@7.50.3-1.fc25?arch=i386&distro=fedora-25
136+
137137
## Rules for each `purl` component
138138

139139
A `purl` string is an ASCII URL string composed of seven components.

0 commit comments

Comments
 (0)