Skip to content

Commit 37550fa

Browse files
committed
Update doc to match ECMA-427
The changes are: - Update docs/standard files to match ECMA-427 first edition text - Removed docs/purl-spec-toc.md, docs/standard/header.md and purl-specification.md; and updated PURL-SPECIFICATION.rst to reflect publication of ECMA-427 - Added docs/README-docs.md to explain the organization of the docs folder and the mapping to ECMA-427 text
1 parent e578e27 commit 37550fa

16 files changed

Lines changed: 335 additions & 1005 deletions

PURL-SPECIFICATION.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
The contents of this file: purl-spec/PURL-SPECIFICATION.rst have been moved
2-
to markdown files in `purl-spec/docs/ <docs/>`__. See the file: `purl-specification.md <purl-specification.md>`__ at
3-
the root of this repository for the most current version of content equivalent
4-
to PURL-SPECIFICATION.rst as generated from the current documentation files in
5-
purl-spec/docs/ .
2+
to markdown files in `purl-spec/docs/ <docs/>`__. See also the Package-URL
3+
Specification 1st Edition standard at:
4+
https://ecma-international.org/publications-and-standards/standards/ecma-427/.

docs/README-docs.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
This README explains the organization of documentation files for the PURL
2+
specification.
3+
4+
## ECMA-427 documentation
5+
The `purl-spec/docs/standard` folder has markdown files with text that match the content of [ECMA-427](https://ecma-international.org/publications-and-standards/standards/ecma-427/) which is the first edition of the Package-URL
6+
Specification standard. These files map to ECMA-427 document as follows:
7+
8+
- About this specification: `about.md`
9+
- Introduction: `introduction.md`
10+
- Clause 1 Scope: `scope.md`
11+
- Clause 2 Conformance: `conformance.md`
12+
- Clause 3 Normative references: `refererences.md`
13+
- Clause 4 Overview: `overview.md`
14+
- Clause 5 Package-URL specification: `specification.md`
15+
- Clause 6 Package-URL Type Definition Schema: `type-definition-schema.md`
16+
17+
ECMA-427 is the official documention for the 1st edition of the PURL
18+
Specification standard. The source for this documentation is located at:
19+
https://github.com/Ecma-TC54/ECMA-427/blob/main/spec.html. The text stored in
20+
purl-spec/docs/standard/` matches the official text with following exceptions:
21+
- The text does not include the clause numbering from ECMA-427. This
22+
numbering is automatically added by the Ecma tools for publishing an Ecma
23+
standard.
24+
- `docs/standard/type-definition-schema.md` only has the introductory text
25+
from ECMA-427 Clause 6 because Clause 6 presents the PURL Type Definition
26+
Schema in a "human-friendly" format that is difficult to reproduce in
27+
markdown. The equivalent information is in this repository in JSON Schema
28+
format: at `purl-spec/schemas/purl-type-definition.schema-1.0.json`
29+
30+
The purpose of keeping a copy of the ECMA-427 text here is to make it easier
31+
to track any proposed changes to the PURL specification that will affect
32+
the ECMA-427 standard. Any such changes need to be tracked and approved for
33+
a future 2nd edition of the ECMA-427 standard.
34+
35+
## PURL specification documentation
36+
The other files in `purl-spec/docs` are also specification documentation, but
37+
they are not part of the ECMA-427 1st edition standard. Most of the documents
38+
provide information to support implementation of the PURL Specification in
39+
other software or databases.
40+

docs/purl-spec-toc.md

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

docs/standard/about.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
# About this Specification
22

3-
The document at [https://tc54.org/ecmaXXX/](https://tc54.org/ecmaXXX/) is the
3+
The document at [https://tc54.org/ecm427/](https://tc54.org/ecma427/) is the
44
most accurate and up-to-date Package-URL specification.
55

6-
This document is available as [a single page](https://ecma-tc54.github.io/ECMA-xxx-PURL/)
7-
and as [multiple pages](https://ecma-tc54.github.io/ECMA-xxx-PURL/multipage/).
6+
This document is available as [a single page](https://ecma-tc54.github.io/ECMA-427/)
7+
and as [multiple pages](https://ecma-tc54.github.io/ECMA-427/multipage/).
88

99
# Contributing to this Specification
1010

1111
This specification is developed on GitHub with the help of the Package-URL
1212
community. There are a number of ways to contribute to the development of
1313
this specification:
1414

15-
* GitHub Repository: [https://github.com/Ecma-TC54/ECMA-xxx-PURL](https://github.com/Ecma-TC54/ECMA-xxx-PURL)
16-
* Issues: [All Issues](https://github.com/Ecma-TC54/ECMA-xxx-PURL/issues),
17-
[File a New Issue](https://github.com/Ecma-TC54/ECMA-xxx-PURL/issues/new)
18-
* Pull Requests: [All Pull Requests](https://github.com/Ecma-TC54/ECMA-xxx-PURL/pulls),
19-
[Create a New Pull Request](https://github.com/Ecma-TC54/ECMA-xxx-PURL/pulls/new)
15+
* GitHub Repository: [https://github.com/Ecma-TC54/ECMA-xxx-PURL](https://github.com/Ecma-TC54/ECMA-427)
16+
* Issues: [All Issues](https://github.com/Ecma-TC54/ECMA-427/issues),
17+
[File a New Issue](https://github.com/Ecma-TC54/ECMA-427/issues/new)
18+
* Pull Requests: [All Pull Requests](https://github.com/Ecma-TC54/ECMA-427/pulls),
19+
[Create a New Pull Request](https://github.com/Ecma-TC54/ECMA-427/pulls/new)
2020
* Editors:
2121
* [John Horan](mailto:jmhoran@aboutcode.org)
2222
* [Michael Herzog](mailto:mjherzog@aboutcode.org)
@@ -25,5 +25,5 @@ this specification:
2525
* Community:
2626
* Chat: [Slack Channel](https://cyclonedx.slack.com/archives/C06KTE3BWEB)
2727

28-
Refer to the [colophon](https://ecma-tc54.github.io/ECMA-xxx-PURL/#sec-colophon)
28+
Refer to the [colophon](https://ecma-tc54.github.io/ECMA-427/#sec-colophon)
2929
for more information on how this document was created.

docs/standard/characters-and-encoding.md

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

docs/standard/components.md

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

docs/standard/conformance.md

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,4 @@
1-
# 2 Conformance
2-
3-
## 2.1 Requirements Terminology
4-
5-
In this standard, the words that are used to define the significance of each
6-
requirement are detailed below. These words are used in accordance with their
7-
definitions in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt), and their
8-
respective meanings are reproduced below:
9-
10-
* Must: This word, or the adjective “required” and the auxiliary verb
11-
"shall", means that the item is an absolute requirement of the standard.
12-
* Should: This word, or the adjective “recommended”, means that there might
13-
exist valid reasons in particular circumstances to ignore this item, but
14-
the full implications should be understood and the case carefully weighed
15-
before making an implementation decision.
16-
* May: This word, or the adjective “optional”, means that this item is truly
17-
optional.
18-
19-
The words "must not", "shall not", "should not", and "not recommended", are
20-
the negative forms of "must", "shall", "should", and "recommended",
21-
respectively. There is no negative form of "may".
22-
23-
## 2.2 Implementation Conformance
1+
# Conformance
242

253
A conforming implementation of Package-URL (PURL) must fully implement and
264
support all elements defined within this specification, including the syntax,
@@ -60,15 +38,4 @@ A conforming implementation must not redefine or alter the core syntax,
6038
components, or semantics defined by this specification. Any prohibited
6139
extensions explicitly identified in the specification must not be
6240
implemented. Furthermore, behaviours that compromise the interoperability of
63-
PURLs across tools, platforms, or ecosystems are strictly disallowed.
64-
65-
A conforming implementation of Package-URL may choose to implement or not
66-
implement Normative Optional subclauses. If any Normative Optional behaviour
67-
is implemented, all of the behaviour in the containing Normative Optional
68-
clause must be implemented. A Normative Optional clause is denoted in this
69-
specification with the words "Normative Optional" in a coloured box, as shown
70-
below.
71-
72-
## 2.3 Example Normative Optional Clause Heading
73-
74-
Example clause contents.
41+
PURLs across tools, platforms, or ecosystems are strictly disallowed.

docs/standard/header.md

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

docs/standard/overview.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# 4 Overview
1+
# Overview
22

3-
This section contains a non-normative overview of the Package-URL
3+
This Clause contains a non-normative overview of the Package-URL
44
specification.
55

66
The Package-URL (PURL) specification defines a lightweight, universal syntax
@@ -11,19 +11,16 @@ the challenges of ambiguity, inconsistency, and fragmentation in software
1111
package identification, enabling better interoperability and traceability in
1212
modern software supply chains.
1313

14-
This specification focuses on the core aspects of PURL, including its syntax,
14+
This Standard focuses on the core aspects of PURL, including its syntax,
1515
required components, optional attributes, and conformance requirements. It
1616
does not cover ecosystem-specific types or extensions such as PURL Version
1717
Ranges (VERS). However, the flexibility of PURL allows it to be extended to
1818
meet the needs of diverse package ecosystems without compromising its
1919
universal applicability.
2020

21-
The primary audience for this specification includes developers,
22-
tool implementers, and organisations involved in software composition
23-
analysis, dependency management, and supply chain security. PURL is
24-
foundational to a variety of use cases, from software bill of materials
25-
(SBOM) generation and license compliance to vulnerability tracking and
26-
software artefact exchange.
21+
The primary audience for this Standard includes developers, tool implementers,
22+
and organisations involved in software composition analysis, dependency management, and supply chain security. PURL is foundational to a variety of
23+
use cases, from software bill of materials (SBOM) generation and license compliance to vulnerability tracking and software artefact exchange.
2724

2825
While this document serves as the authoritative reference for implementing
2926
PURL, it is complemented by various ecosystem-specific guidance documents,
@@ -32,4 +29,4 @@ and practical insights for leveraging PURL effectively.
3229

3330
This overview is non-normative and serves to provide context for the
3431
specification’s intent, purpose, and audience. For detailed requirements and
35-
conformance criteria, refer to the normative sections of this specification.
32+
conformance criteria, refer to the normative sections of this Standard.

0 commit comments

Comments
 (0)