Skip to content

Commit 12780eb

Browse files
committed
Create REUSE.toml schema
1 parent 18953b1 commit 12780eb

File tree

1 file changed

+366
-0
lines changed

1 file changed

+366
-0
lines changed
Lines changed: 366 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,366 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://reuse.software/reuse-toml-v1.schema.json",
4+
"title": "REUSE.toml global licensing file, version 1",
5+
"description": "A configuration file which declares the copyright and licensing of files in a directory tree.",
6+
"type": "object",
7+
"required": ["version"],
8+
"additionalProperties": true,
9+
"properties": {
10+
"version": {
11+
"description": "The schema version of the REUSE.toml file.",
12+
"type": "integer",
13+
"exclusiveMinimum": 0,
14+
"examples": [1]
15+
},
16+
"SPDX-PackageName": {
17+
"description": "SPDX package name.",
18+
"type": "string"
19+
},
20+
"SPDX-PackageVersion": {
21+
"description": "SPDX package version.",
22+
"type": "string"
23+
},
24+
"SPDX-PackageFileName": {
25+
"description": "SPDX package file name.",
26+
"type": "string"
27+
},
28+
"SPDX-PackageSupplier": {
29+
"description": "SPDX package supplier.",
30+
"type": "string"
31+
},
32+
"SPDX-PackageOriginator": {
33+
"description": "SPDX package originator.",
34+
"type": "string"
35+
},
36+
"SPDX-PackageDownloadLocation": {
37+
"description": "SPDX package download location.",
38+
"type": "string"
39+
},
40+
"SPDX-FilesAnalyzed": {
41+
"description": "SPDX files analyzed.",
42+
"type": "boolean"
43+
},
44+
"SPDX-PackageVerificationCode": {
45+
"description": "SPDX package verification code.",
46+
"type": "string"
47+
},
48+
"SPDX-PackageChecksum": {
49+
"description": "SPDX package checksum(s).",
50+
"oneOf": [
51+
{
52+
"type": "string"
53+
},
54+
{
55+
"type": "array",
56+
"items": {
57+
"type": "string"
58+
}
59+
}
60+
]
61+
},
62+
"SPDX-PackageHomePage": {
63+
"description": "SPDX package home page.",
64+
"type": "string"
65+
},
66+
"SPDX-PackageSourceInfo": {
67+
"description": "SPDX source information.",
68+
"type": "string"
69+
},
70+
"SPDX-PackageLicenseConcluded": {
71+
"description": "SPDX concluded license.",
72+
"type": "string"
73+
},
74+
"SPDX-PackageLicenseInfoFromFiles": {
75+
"description": "SPDX all licenses information from files.",
76+
"oneOf": [
77+
{
78+
"type": "string"
79+
},
80+
{
81+
"type": "array",
82+
"items": {
83+
"type": "string"
84+
}
85+
}
86+
]
87+
},
88+
"SPDX-PackageLicenseDeclared": {
89+
"description": "SPDX declared license.",
90+
"type": "string"
91+
},
92+
"SPDX-PackageLicenseComments": {
93+
"description": "SPDX comments on license.",
94+
"type": "string"
95+
},
96+
"SPDX-PackageCopyrightText": {
97+
"description": "SPDX copyright text.",
98+
"type": "string"
99+
},
100+
"SPDX-PackageSummary": {
101+
"description": "SPDX package summary description.",
102+
"type": "string"
103+
},
104+
"SPDX-PackageDescription": {
105+
"description": "SPDX package detailed description.",
106+
"type": "string"
107+
},
108+
"SPDX-PackageComment": {
109+
"description": "SPDX package comment.",
110+
"type": "string"
111+
},
112+
"SPDX-ExternalRef": {
113+
"decription": "SPDX external reference.",
114+
"oneOf": [
115+
{
116+
"type": "string"
117+
},
118+
{
119+
"type": "array",
120+
"items": {
121+
"type": "string"
122+
}
123+
}
124+
]
125+
},
126+
"SPDX-ExternalRefComment": {
127+
"description": "SPDX external reference comment.",
128+
"oneOf": [
129+
{
130+
"type": "string"
131+
},
132+
{
133+
"type": "array",
134+
"items": {
135+
"type": "string"
136+
}
137+
}
138+
]
139+
},
140+
"SPDX-PackageAttributionText": {
141+
"description": "SPDX package attribution text.",
142+
"oneOf": [
143+
{
144+
"type": "string"
145+
},
146+
{
147+
"type": "array",
148+
"items": {
149+
"type": "string"
150+
}
151+
}
152+
]
153+
},
154+
"SPDX-PrimaryPackagePurpose": {
155+
"description": "SPDX primary package purpose.",
156+
"enum": [
157+
"APPLICATION",
158+
"FRAMEWORK",
159+
"LIBRARY",
160+
"CONTAINER",
161+
"OPERATING-SYSTEM",
162+
"DEVICE",
163+
"FIRMWARE",
164+
"SOURCE",
165+
"ARCHIVE",
166+
"FILE",
167+
"INSTALL",
168+
"OTHER"
169+
]
170+
},
171+
"SPDX-ReleaseDate": {
172+
"description": "SPDX release date.",
173+
"type": "string"
174+
},
175+
"SPDX-BuiltDate": {
176+
"description": "SPDX built date.",
177+
"type": "string"
178+
},
179+
"SPDX-ValidUntilDate": {
180+
"description": "SPDX valid until date.",
181+
"type": "string"
182+
},
183+
"annotations": {
184+
"description": "Annotation objects.",
185+
"type": "array",
186+
"items": {
187+
"description": "Annotation object.",
188+
"type": "object",
189+
"required": ["path"],
190+
"additionalProperties": true,
191+
"properties": {
192+
"path": {
193+
"description": "Relative path(s) to files, with optional globbing.",
194+
"oneOf": [
195+
{
196+
"type": "string"
197+
},
198+
{
199+
"type": "array",
200+
"items": {
201+
"type": "string"
202+
}
203+
}
204+
],
205+
"examples": [["po/*.po", "po/*.pot"], "tests/resources/**"]
206+
},
207+
"precedence": {
208+
"description": "The order of precedence for Licensing Information between this REUSE.toml file and the files covered by path.",
209+
"enum": ["closest", "aggregate", "override"],
210+
"default": "closest",
211+
"examples": ["closest"]
212+
},
213+
"SPDX-FileCopyrightText": {
214+
"description": "Copyright notice(s).",
215+
"oneOf": [
216+
{
217+
"type": "string"
218+
},
219+
{
220+
"type": "array",
221+
"items": {
222+
"type": "string"
223+
}
224+
}
225+
],
226+
"examples": [
227+
"2019 Jane Doe <[email protected]>",
228+
"© 2019 John Doe <[email protected]>",
229+
"Contributors to Example Project <https://project.example.com>",
230+
"(C) Example Cooperative <[email protected]>",
231+
"Copyright 2016, 2018-2019 Joe Anybody"
232+
]
233+
},
234+
"SPDX-License-Identifier": {
235+
"description": "License identifier(s).",
236+
"oneOf": [
237+
{
238+
"type": "string"
239+
},
240+
{
241+
"type": "array",
242+
"items": {
243+
"type": "string"
244+
}
245+
}
246+
],
247+
"examples": ["GPL-3.0-or-later", "GPL-3.0-or-later OR Apache-2.0"]
248+
},
249+
"SPDXID": {
250+
"description": "SPDX file identifier.",
251+
"type": "string"
252+
},
253+
"SPDX-FileType": {
254+
"description": "SPDX file type.",
255+
"oneOf": [
256+
{
257+
"$ref": "#/$defs/SPDX-FileType"
258+
},
259+
{
260+
"type": "array",
261+
"items": {
262+
"$ref": "#/$defs/SPDX-FileType"
263+
}
264+
}
265+
]
266+
},
267+
"SPDX-FileChecksum": {
268+
"description": "SPDX file checksum.",
269+
"type": "string"
270+
},
271+
"SPDX-LicenseConcluded": {
272+
"description": "SPDX license concluded.",
273+
"type": "string"
274+
},
275+
"SPDX-LicenseInfoInFile": {
276+
"description": "SPDX license information in file.",
277+
"oneOf": [
278+
{
279+
"type": "string"
280+
},
281+
{
282+
"type": "array",
283+
"items": {
284+
"type": "string"
285+
}
286+
}
287+
]
288+
},
289+
"SPDX-LicenseComments": {
290+
"description": "SPDX comments on license.",
291+
"type": "string"
292+
},
293+
"SPDX-ArtifactOfProjectName": {
294+
"description": "SPDX artifact of project name.",
295+
"type": "string"
296+
},
297+
"SPDX-ArtifactOfProjectHomePage": {
298+
"description": "SPDX artifact of project homepage.",
299+
"type": "string"
300+
},
301+
"SPDX-ArtifactOfProjectURI": {
302+
"description": "SPDX artifact of project uniform resource identifier.",
303+
"type": "string"
304+
},
305+
"SPDX-FileComment": {
306+
"description": "SPDX file comment.",
307+
"type": "string"
308+
},
309+
"SPDX-FileNotice": {
310+
"description": "SPDX file notice.",
311+
"type": "string"
312+
},
313+
"SPDX-FileContributor": {
314+
"description": "SPDX file contributor(s).",
315+
"oneOf": [
316+
{
317+
"type": "string"
318+
},
319+
{
320+
"type": "array",
321+
"items": {
322+
"type": "string"
323+
}
324+
}
325+
]
326+
},
327+
"SPDX-FileAttributionText": {
328+
"description": "SPDX file attribution text.",
329+
"type": "string"
330+
},
331+
"SPDX-FileDependency": {
332+
"description": "SPDX file dependencies.",
333+
"oneOf": [
334+
{
335+
"type": "string"
336+
},
337+
{
338+
"type": "array",
339+
"items": {
340+
"type": "string"
341+
}
342+
}
343+
]
344+
}
345+
}
346+
}
347+
}
348+
},
349+
"$defs": {
350+
"SPDX-FileType": {
351+
"enum": [
352+
"SOURCE",
353+
"BINARY",
354+
"ARCHIVE",
355+
"APPLICATION",
356+
"AUDIO",
357+
"IMAGE",
358+
"TEXT",
359+
"VIDEO",
360+
"DOCUMENTATION",
361+
"SPDX",
362+
"OTHER"
363+
]
364+
}
365+
}
366+
}

0 commit comments

Comments
 (0)