1- # 2 Conformance
1+ # Conformance
22
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
24-
25- A conforming implementation of Package-URL (PURL) must fully implement and
26- support all elements defined within this specification, including the syntax,
3+ A conforming implementation of Package-URL (PURL) shall fully implement and
4+ support all elements defined within this Standard, including the syntax,
275components, and semantic requirements for constructing and interpreting valid
286PURLs.
297
30- A conforming implementation of PURL must adhere to the syntax defined in this
31- specification , ensuring that all PURLs are parsed, constructed, and validated
32- according to the prescribed rules. The implementation must provide full
8+ A conforming implementation of PURL shall adhere to the syntax defined in this
9+ Standard , ensuring that all PURLs are parsed, constructed, and validated
10+ according to the prescribed rules. The implementation shall provide full
3311support for ecosystem-agnostic behaviour, enabling PURLs to function
3412consistently and reliably across diverse environments.
3513
36- All required components of a PURL, such as the scheme, type, and name, must
14+ All required components of a PURL, such as the scheme, type, and name, shall
3715be present and validated according to the rules defined in this
38- specification . Additionally, optional components, including qualifiers and
39- subpaths, must be handled appropriately if provided, in full compliance with
16+ Standard . Additionally, optional components, including qualifiers and
17+ subpaths, shall be handled appropriately if provided, in full compliance with
4018their specified behaviours.
4119
42- Implementations must ensure that equivalent PURLs are consistently resolved
20+ Implementations shall ensure that equivalent PURLs are consistently resolved
4321to the same canonical representation. This includes strict adherence to
44- normalisation and equivalence rules. Furthermore, implementations must
22+ normalisation and equivalence rules. Furthermore, implementations shall
4523process URI encoding and decoding for PURL components according to the
4624standards outlined in RFC 3986.
4725
48- Invalid PURLs that fail to conform to the specification must be identified
26+ Invalid PURLs that fail to conform to the specification shall be identified
4927and rejected by any conforming implementation. This guarantees the integrity
5028and reliability of PURLs in all supported contexts.
5129
@@ -56,19 +34,8 @@ implementations may offer auxiliary tools or features, such as utilities for
5634constructing or validating PURLs, provided they align with the standard's
5735requirements.
5836
59- A conforming implementation must not redefine or alter the core syntax,
60- components, or semantics defined by this specification . Any prohibited
61- extensions explicitly identified in the specification must not be
37+ A conforming implementation shall not redefine or alter the core syntax,
38+ components, or semantics defined by this Standard . Any prohibited
39+ extensions explicitly identified in the specification shall not be
6240implemented. 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.
0 commit comments