You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
The SPDX License List is maintained by the [SPDX legal team](https://spdx.dev/engage/participate/legal-team/). This repo is used for the submission and review of licenses, as well as maintaining [documentation](DOCS) related to the SPDX License List. Suggestions with a larger scope, cross-functional issues, and questions should be directed to the [SPDX-legal mailing list](https://lists.spdx.org/g/Spdx-legal).
3
3
4
4
## Submitting a license for consideration
5
-
To submit a license for consideration for the SPDX License List, follow the process for [requesting a new license](request-new-license.md). Please be sure to review the relevant documentation prior to your submission, notably, the [license inclusion principles](DOCS/license-inclusion-principles.md). Each license submission requires review and incomplete or inappropriate submissions only take away the precious time of a small number of volunteers from other tasks.
5
+
To submit a license for consideration for the SPDX License List, follow the process for [requesting a new license](DOCS/request-new-license.md). Please be sure to review the relevant documentation prior to your submission, notably, the [license inclusion principles](DOCS/license-inclusion-principles.md). Each license submission requires review and incomplete or inappropriate submissions only take away the precious time of a small number of volunteers from other tasks.
6
6
7
7
## Minor updates
8
8
Minor changes such as markup and typo fixes may be submitted directly to this repository (either as issues or pull-requests) without previous discussion.
Copy file name to clipboardExpand all lines: DOCS/release-process.md
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,7 @@ Requesters may be uncertain as to whether they should use a newly-added license
26
26
27
27
### Draft release notes
28
28
29
+
* Update with new version and release date at the top of [RELEASE-HISTORY.md](../RELEASE-HISTORY.md)
29
30
* Add a new release text section to the top of [RELEASE-NOTES.md](../RELEASE-NOTES.md)
30
31
* Mimic the same pattern as the prior release notes, listing each license or exception added in this release, together with brief notes about any other significant changes in this release
31
32
* Create compare link by changing tag numbers in previous release
@@ -77,7 +78,7 @@ This also assumes that you have used the AWS S3 scripts to make a local copy of
77
78
* Copy (NON-RECURSIVELY) the files from `S3DIR/licenses` to `S3DIR/licenses/archive/archived_ll_vx.xx`.
78
79
* IMPORTANT NOTE: Do NOT do a recursive copy, only copy the files and do NOT copy any subdirectories.
79
80
* Edit the file `S3DIR/licenses/archive/archived_ll_vx.xx/index.html`. Add the line below, immediately prior to the line `<h1>SPDX License List</h1>`:
80
-
*`<p style="color: #FA0207;"><strong>THIS IS NOT THE CURRENT VERSION OF THE SPDX LICENSE LIST. PLEASE USE THE CURRENT VERSION, LOCATED AT: <a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a></p>`
81
+
*`<p style="color: #FA0207;"><strong>THIS IS NOT THE CURRENT VERSION OF THE SPDX LICENSE LIST. PLEASE USE THE CURRENT VERSION, LOCATED AT: <a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a></strong></p>`
Copy file name to clipboardExpand all lines: DOCS/xml-fields.md
+28-23Lines changed: 28 additions & 23 deletions
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ A corresponding "test text" file, a plain text version of the license or excepti
24
24
25
25
We aren't picky about tabs vs. spaces, number of spaces for indenting, etc. (And note, whitespace is not relevant for matching license text.) That being said, if you use the [SPDX Online Tools-license submission](https://tools.spdx.org/app/submit_new_license/) to create the XML and TXT files, there is a "beautify" option that formats the file nicely.
26
26
27
-
### Beginning and end matter
27
+
### Beginning and end tag: `<SPDXLicenseCollection>`
28
28
29
29
Within the .xml file, the first and last lines of the file must be the following:
30
30
@@ -39,33 +39,33 @@ Within the .xml file, the first and last lines of the file must be the following
39
39
40
40
### `<license>` or `<exception>` tag
41
41
42
-
The main tag used to define the license or exception is **`<license>`** or **`<exception>`**. All of the remaining content will be enclosed within a `<license></license>` or `<exception></exception>` pair of tags.
42
+
After the `<SPDXLicenseCollection>` tag, all of the remaining content will be enclosed within a **`<license></license>`** or **`<exception></exception>`** pair of tags.
43
43
44
44
There are two mandatory attributes for every `<license>` and `<exception>` tag:
45
45
*`licenseId`: the unique SPDX Identifier for the license; should be identical to the filename. See [license-fields:short-identifier](license-fields.md#b-short-identifier) for a full description of this field.
46
46
*`name`: the longer or full title of the license (if there is one); see [license-fields:full-name](license-fields.md#a-full-name) for a full description of this field.
47
47
48
-
There are two additional attributes which are optional, but highly encouraged:
48
+
There are two additional highly encouraged attributes which are technically optional:
49
+
*`listVersionAdded`: in which release version of the SPDX License List was the license first added, e.g., "3.24.0".
50
+
* Typically you'll check the currently-released version at https://github.com/spdx/license-list-XML/releases and increment the minor version by 1 for a new license. E.g., when last release is "3.24.0" you add there "3.25.0".
49
51
*`isOsiApproved` (for licenses, not exceptions): either "true" or "false" based on whether this license has been approved by the [Open Source Initiative](https://opensource.org/licenses/alphabetical)
50
-
*`listVersionAdded`: in which release version of the SPDX License List was the license first added, e.g. "3.19".
51
-
* Typically you'll check the currently-released version at https://spdx.org/licenses/ and increment the minor version by 1 for a new license.
52
52
53
53
Finally, if the license ID has been deprecated, one additional attribute should be included:
54
-
*`deprecatedVersion`: in which release version of the SPDX License List was the license first marked as deprecated, e.g. "3.19"
54
+
*`deprecatedVersion`: in which release version of the SPDX License List was the license first marked as deprecated, e.g. "3.24.0"
55
55
56
-
Note that the deprecated tags refer to whether the ID has been deprecated _by SPDX_ -- in other words, if the SPDX Legal Team no longer recommends that the identifier be used. Licenses that have been described as "deprecated" or "superseded" by the _license author_ might no longer be recommended to use for new code, but their identifiers remain valid License IDs on the SPDX License List.
56
+
NOTE: The deprecated tags refer to whether the ID has been deprecated _by SPDX_ -- in other words, if the SPDX Legal Team no longer recommends that the identifier be used. Licenses that have been described as "deprecated" or "superseded" by the _license author_ might no longer be recommended to use for new code, but their identifiers remain valid License IDs on the SPDX License List.
57
57
58
58
Deprecated license identifiers will be listed at the bottom of the SPDX License List page at https://spdx.org/licenses/.
59
59
60
60
### License metadata
61
61
62
-
There are three optional first-level metadata fields that can be placed immediately under `<license>` or `<exception>`, each of which is optional:
62
+
There are three first-level metadata fields that can be placed immediately under `<license>` or `<exception>`, each of which is optional:
63
63
64
64
***`<crossRefs>`**: Defines cross-references to URLs where the license can be found in use by one or a few projects, and (if applicable) where posted by the license steward. See [license-fields:web-pages](license-fields.md#c-other-web-pages-for-licenseexception) for more information about this field.
65
65
***`<notes>`**: Describes general comments about the license; if deprecated, also briefly explain the reason for deprecating the license identifier. See [license-fields:Notes](license-fields.md#d-notes) for more information about this field. If there are not Notes, then remove this tag from the XML file.
66
66
***`<obsoletedBys>`** (if license is deprecated): Lists the license(s) that should be used instead of this deprecated license
67
67
68
-
### License text
68
+
### License `<text>` tag
69
69
70
70
Next, the actual license text would be contained within the `<text></text>` section:
71
71
@@ -90,7 +90,7 @@ Example:
90
90
91
91
### Section annotation markers
92
92
93
-
Some portions of text can be surrounded by annotation tags. These are all optional:
93
+
Inside the `<text>` tag, some portions of specific text can be surrounded by annotation tags. These are all optional:
94
94
95
95
***`<titleText>`**: indicates the title of the license, if specified in the license text itself. If the license does not have a title, then this tag is not needed.
96
96
***`<copyrightText>`**: indicates where a copyright notice would be placed for the licensed code. Because the copyright notice is not part of the license and thus ignored as related to matching a license, it does not matter if the the copyright notice includes a specific name or is generic.
@@ -102,9 +102,7 @@ Some portions of text can be surrounded by annotation tags. These are all option
102
102
103
103
Separate paragraphs should be surrounded by **`<p>...</p>`** tags.
104
104
105
-
Newlines can be added at the end of a line with **`<br />`**. Note that this does not need a closing tag, because the `/` within the angle brackets makes it self-closing.
106
-
107
-
Generally, you should use **`<p>`** tags for each paragraph and should not use **`<br />`** unless you have a good reason.
105
+
Newlines without a paragraph break can be added at the end of a line with **`<br />`**. Note that this does not need a closing tag, because the `/` within the angle brackets makes it self-closing.
108
106
109
107
### Lists
110
108
@@ -154,27 +152,34 @@ If a license template should match regardless of whether or not a particular sec
154
152
155
153
By default, when rendered on the [SPDX License List website](https://spdx.org/licenses), a space will be included before and after the optional text. If the tag includes a `spacing="none"` attribute, e.g. **`<optional spacing="none">`**, then these spaces will be omitted. This is useful if, for instance, the optional text is a suffix to a word or a quotation mark where the optional portion should not be separated by a space.
156
154
157
-
Note that some annotated portions of text (specifically`<titleText>`, `<bullet>` and `<copyrightText>`) are deemed to be "replaceable text" automatically, so the `<optional>` tag is not allowed where those are present.
155
+
NOTE: The `<optional>` tag **cannot** be used within:`<titleText>`, `<bullet>`, `<copyrightText>`, or `<alt>`. This is because the text within these tags are deemed to be "replaceable text" automatically, so the `<optional>` tag is not allowed where those are present.
158
156
159
-
### Replaceable text
157
+
### Replaceable text: `<alt>`
160
158
161
159
Some licenses contain portions of language that can match to a variety of alternative texts. This is called "replaceable text", and is denoted with the **`<alt>...</alt>`** tag.
162
160
161
+
An example of actually-matching text should be included between the `<alt>` and `</alt>` tags; this text will be rendered on the SPDX License List website page and in files provided in [SPDX license-list-data](https://github.com/spdx/license-list-data). To the extent a license has a "canonical" or "most commonly used" standard language, use that in the match between the `alt` tags.
162
+
163
163
The **<alt>** tag includes two attributes:
164
164
*`name`: specifies a unique name for this matching element. If there is more than one of the same element, it is good practice and recommended to add numbers for such similar alt tags.
165
165
*`match`: specifies a [POSIX extended regular expression (ERE)](http://pubs.opengroup.org/onlinepubs/9699919799/) for what text will match
166
166
167
-
An example of actually-matching text should be included between the `<alt>` and `</alt>` tags; this text will be rendered on the SPDX License List website page and in files provided in [SPDX license-list-data](https://github.com/spdx/license-list-data). To the extent a license has a "canonical" or "most commonly used" standard language, use that in the match between the `alt` tags.
167
+
Learning regular expressions is outside the scope of this document. However, here are a few of the most common patterns for the `match` attribute:
168
+
*`<alt match="are|is">`: Matches if the text is either the word "are" or the word "is"
169
+
*`<alt match="Lesser|Library|()">`: Matches if the text is either the word "Lesser" or "Library" or neither (no word at all)
170
+
*`<alt match="EXPRESS(ED)?">`: Matches if the text is either the word "EXPRESS" or the word "EXPRESSED"
171
+
* the `?` means that the text in the parenthesis can be present or not. This is functionally similar to the `<optional>` tag.
172
+
*`<alt match=".+" name="copyrightHolderAsIs">THE COPYRIGHT HOLDERS AND CONTRIBUTORS</alt>`: Matches anything as long as it consists of at least one or more characters
173
+
*`<alt match="(Neither the name of .+ nor the names of (specific )? contributors,? may)|...">`: this option combines a few of the attributes above.
174
+
* the `.+` means any name can be present
175
+
* the `?` after `(specific )` means the word "specific" can be present or not, note there is a space between the end of the word and the closing paren
176
+
* the `?` after the comma after "contributors" means the comma can be present or not
168
177
169
-
Also note that some annotated portions of text (specifically `<titleText>`, `<bullet>` and `<copyrightText>`) are deemed to be "replaceable text" automatically, so the `<alt>`tag is not allowed where those are present.
178
+
The [BSD-3-Clause](../src/BSD-3-Clause.xml) is a good example of using several `<alt>`tags effectively
170
179
171
-
Learning regular expressions is outside the scope of this document. However, here are a few of the most common patterns, taken from [BSD-3-Clause](../src/BSD-3-Clause.xml) which is a good example of using several `<alt>` tags effectively:
172
-
*`<alt match="are|is" name="tobe">are</alt>`: Matches if the text is either the word "are" or the word "is"
173
-
*`<alt match="Lesser|Library|()" name="lesser">Lesser</alt>`: Matches if the text is either the word "Lesser" or "Library" or neither
174
-
*`<alt match="EXPRESS(ED)?" name="express">EXPRESS</alt>`: Matches if the text is either the word "EXPRESS" or the word "EXPRESSED"
175
-
*`<alt match=".+" name="copyrightHolderAsIs">THE COPYRIGHT HOLDERS AND CONTRIBUTORS</alt>`: Matches anything as long as it consists of at least one or more characters
180
+
NOTE: Some annotated portions of text (specifically `<titleText>`, `<bullet>` and `<copyrightText>`) are deemed to be "replaceable text" automatically, so the `<alt>` tag is not allowed where those are present.
176
181
177
-
Note: If a license has a fair amount of markup in an <alt> tag, you may need to add `\s+` between words to allow matching in spite of line breaks or multiple spaces. See [BSD-3-Clause](../src/BSD-3-Clause.xml) and [MIT](../src/MIT.xml) for examples.
182
+
NOTE: If a license has a fair amount of markup in an <alt> tag, you may need to add `\s+` between words to allow matching in spite of line breaks or multiple spaces. See [BSD-3-Clause](../src/BSD-3-Clause.xml) and [MIT](../src/MIT.xml) for examples.
0 commit comments