Skip to content

Commit 17f90fd

Browse files
authored
Merge pull request #1292 from oasis-tcs/editor-revision-2026-02-25
Editor revision for TC meeting 2026-02-25
2 parents 76fb206 + 5198ef8 commit 17f90fd

File tree

228 files changed

+23456
-9471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+23456
-9471
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: CSAF Extensions Test (CSAF 2.1)
2+
3+
on:
4+
push:
5+
paths:
6+
- 'csaf_2.1/**'
7+
pull_request:
8+
paths:
9+
- 'csaf_2.1/**'
10+
11+
jobs:
12+
metaschema-test:
13+
runs-on: ubuntu-latest
14+
name: Test Extension JSON schemas against extension-metaschema
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v4
18+
- name: Prepare environment
19+
run: |
20+
sudo apt-get remove python3-jsonschema
21+
sudo apt-get update -q && sudo apt-get install -y --no-install-recommends -qq \
22+
python3 \
23+
python3-simplejson \
24+
python3-jsonpath-rw \
25+
python3-pip \
26+
python3-setuptools \
27+
python3-wheel
28+
pip3 install jsonschema[format]
29+
- name: Check jsonschema version
30+
run: python3 -c "from importlib.metadata import version; print(version('jsonschema'))"
31+
- name: Test extensions in extension/data/valid/*/*.json
32+
run: ./csaf_2.1/test/extension/metaschema/run_tests.sh ./csaf_2.1/test/extension/data/valid/*/*-content_*.json
33+
- name: Test extensions in extension/data/valid/*/*.json
34+
run: ./csaf_2.1/test/extension/metaschema/run_invalid_tests.sh ./csaf_2.1/test/extension/data/invalid/*/*-content_*.json
35+
36+
metadata-test:
37+
runs-on: ubuntu-latest
38+
name: Test Extension Metadata JSON against extension-metadata schema
39+
steps:
40+
- name: Checkout repository
41+
uses: actions/checkout@v4
42+
- name: Prepare environment
43+
run: |
44+
sudo apt-get remove python3-jsonschema
45+
sudo apt-get update -q && sudo apt-get install -y --no-install-recommends -qq \
46+
python3 \
47+
python3-simplejson \
48+
python3-jsonpath-rw \
49+
python3-pip \
50+
python3-setuptools \
51+
python3-wheel
52+
pip3 install jsonschema[format]
53+
- name: Check jsonschema version
54+
run: python3 -c "from importlib.metadata import version; print(version('jsonschema'))"
55+
- name: Test extension metadata in extension/data/valid/*/*.json
56+
run: ./csaf_2.1/test/extension/metadata/run_tests.sh ./csaf_2.1/test/extension/data/valid/*/*-metadata_*.json
57+
- name: Test extension metadata in extension/data/valid/*/*.json
58+
run: ./csaf_2.1/test/extension/metadata/run_invalid_tests.sh ./csaf_2.1/test/extension/data/invalid/*/*-metadata_*.json

.github/workflows/csaf_2.1_filenames.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
run: ./csaf_2.1/test/filenames/run_tests.sh ./csaf_2.1/examples/csaf/*.json
2525
- name: Test filenames of CSAF examples - profile specific folders
2626
run: ./csaf_2.1/test/filenames/run_tests.sh ./csaf_2.1/examples/csaf/csaf_*/*.json
27+
- name: Test filenames of CSAF examples - appendix folders
28+
run: ./csaf_2.1/test/filenames/run_tests.sh ./csaf_2.1/examples/csaf/appendix/*.json
2729
- name: Test filenames of CSAF test files in validator/data/mandatory
2830
run: ./csaf_2.1/test/filenames/run_tests.sh ./csaf_2.1/test/validator/data/mandatory/*.json
2931
- name: Test filenames of CSAF test files in validator/data/recommended

.github/workflows/csaf_2.1_main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
run: ./csaf_2.1/test/csaf_schema/run_tests.sh
3333
- name: Test VEX examples against CSAF schema
3434
run: ./csaf_2.1/test/csaf_schema/run_tests.sh csaf_vex
35+
- name: Test Appendix examples against CSAF schema
36+
run: ./csaf_2.1/test/csaf_schema/run_tests.sh appendix
3537
- name: Test examples against Provider Metadata schema
3638
run: ./csaf_2.1/test/provider_schema/run_tests.sh
3739
- name: Test examples against Aggregator schema

.github/workflows/csaf_2.1_mandatory-tests.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,12 @@ jobs:
3838
printf "%s%s\n" "Starting test of " $i
3939
../csaf-validator-lib/scripts/runTest.js -f $i -t base -c 2.1
4040
done
41+
# Commented out as not yet supported by the test tools
42+
# Only temporary until examples in the repo are reorganized
43+
#- name: Run mandatory tests on examples/appendix
44+
# run: |
45+
# for i in `ls -1 ../csaf/csaf_2.1/examples/csaf/appendix/*.json`
46+
# do
47+
# printf "%s%s\n" "Starting test of " $i
48+
# ../csaf-validator-lib/scripts/runTest.js -f $i -t base -c 2.1
49+
# done

.github/workflows/registry_id_mapping.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ jobs:
2727
pip3 install jsonschema[format]
2828
- name: Check jsonschema version
2929
run: python3 -c "from importlib.metadata import version; print(version('jsonschema'))"
30-
- name: Test registry/id/id-mapping.json against RVISC Mapping schema and for consistency
31-
run: ./registry/id/test/check_id-mapping.sh
30+
- name: Test registry/id/mapping.json against RVISC Mapping schema and for consistency
31+
run: ./registry/id/test/check_mapping.sh

.github/workflows/registry_id_registry.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: RVISC ID Test (Registry)
1+
name: RVISC Registry Test (Registry)
22

33
on:
44
push:
@@ -27,5 +27,5 @@ jobs:
2727
pip3 install jsonschema[format]
2828
- name: Check jsonschema version
2929
run: python3 -c "from importlib.metadata import version; print(version('jsonschema'))"
30-
- name: Test registry/id/id-registry.json against RVISC schema and for consistency
31-
run: ./registry/id/test/check_id-registry.sh
30+
- name: Test registry/id/registry.json against RVISC schema and for consistency
31+
run: ./registry/id/test/check_registry.sh

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ venv.bak/
2323
local*
2424
.vscode/
2525
build/
26+
outline/

csaf_2.0/known_issues.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,12 @@
3737
- The last informative comment in [test 6.2.18](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#6218-product-version-range-without-vers)
3838
contains a typo, stating `vsl` instead of `vls`.
3939
See [#1265](https://github.com/oasis-tcs/csaf/issues/1265).
40+
- Confusion could occur around the depth of PURL checking in test [6.1.13](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#6113-purl).
41+
See [#1303](https://github.com/oasis-tcs/csaf/issues/1303).
42+
- The test [6.1.25](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#6125-multiple-use-of-same-hash-algorithm)
43+
is missing the word "file" in the description and explanation but shows the correct relevant paths.
44+
See [#1330](https://github.com/oasis-tcs/csaf/issues/1330).
45+
- The expectations to differentiate the error messages for CSAF Validators regarding the phrase "present and set" where not stated clearly.
46+
See [#1345](https://github.com/oasis-tcs/csaf/issues/1345).
47+
- The case handling requirements of subtags for languages was unclear.
48+
See [#1347](https://github.com/oasis-tcs/csaf/issues/1347).
Lines changed: 266 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
{
2+
"$schema": "https://docs.oasis-open.org/csaf/csaf/v2.1/schema/csaf.json",
3+
"document": {
4+
"category": "csaf_base",
5+
"csaf_version": "2.1",
6+
"distribution": {
7+
"tlp": {
8+
"label": "CLEAR"
9+
}
10+
},
11+
"publisher": {
12+
"category": "other",
13+
"name": "OASIS CSAF TC",
14+
"namespace": "https://csaf.io"
15+
},
16+
"title": "Collapsing Product Paths (example 1)",
17+
"tracking": {
18+
"current_release_date": "2024-01-24T10:00:00.000Z",
19+
"id": "OASIS_CSAF_TC-CSAF_2.1-2024-D-11",
20+
"initial_release_date": "2024-01-24T10:00:00.000Z",
21+
"revision_history": [
22+
{
23+
"date": "2024-01-24T10:00:00.000Z",
24+
"number": "1",
25+
"summary": "Initial version."
26+
}
27+
],
28+
"status": "final",
29+
"version": "1"
30+
}
31+
},
32+
"product_tree": {
33+
"branches": [
34+
{
35+
"branches": [
36+
{
37+
"branches": [
38+
{
39+
"category": "product_version",
40+
"name": "1.0.0",
41+
"product": {
42+
"name": "Example Company Product A 1.0.0",
43+
"product_id": "CSAFPID-908070601"
44+
}
45+
},
46+
{
47+
"category": "product_version",
48+
"name": "1.1.0",
49+
"product": {
50+
"name": "Example Company Product A 1.1.0",
51+
"product_id": "CSAFPID-908070602"
52+
}
53+
}
54+
],
55+
"category": "product_name",
56+
"name": "Product A"
57+
},
58+
{
59+
"branches": [
60+
{
61+
"category": "product_version",
62+
"name": "2023",
63+
"product": {
64+
"name": "Example Company Product B 2023",
65+
"product_id": "CSAFPID-908070603"
66+
}
67+
},
68+
{
69+
"category": "product_version",
70+
"name": "2024",
71+
"product": {
72+
"name": "Example Company Product B 2024",
73+
"product_id": "CSAFPID-908070604"
74+
}
75+
}
76+
],
77+
"category": "product_name",
78+
"name": "Product B"
79+
},
80+
{
81+
"branches": [
82+
{
83+
"category": "product_version",
84+
"name": "EU",
85+
"product": {
86+
"name": "Example Company Product C EU",
87+
"product_id": "CSAFPID-908070605"
88+
}
89+
},
90+
{
91+
"category": "product_version",
92+
"name": "US",
93+
"product": {
94+
"name": "Example Company Product C US",
95+
"product_id": "CSAFPID-908070606"
96+
}
97+
}
98+
],
99+
"category": "product_name",
100+
"name": "Product C"
101+
}
102+
],
103+
"category": "vendor",
104+
"name": "Example Company"
105+
}
106+
],
107+
"product_paths": [
108+
{
109+
"beginning_product_reference": "CSAFPID-908070601",
110+
"full_product_name": {
111+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2023",
112+
"product_id": "CSAFPID-908070607"
113+
},
114+
"subpaths": [
115+
{
116+
"category": "installed_on",
117+
"next_product_reference": "CSAFPID-908070603"
118+
}
119+
]
120+
},
121+
{
122+
"beginning_product_reference": "CSAFPID-908070601",
123+
"full_product_name": {
124+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2024",
125+
"product_id": "CSAFPID-908070608"
126+
},
127+
"subpaths": [
128+
{
129+
"category": "installed_on",
130+
"next_product_reference": "CSAFPID-908070604"
131+
}
132+
]
133+
},
134+
{
135+
"beginning_product_reference": "CSAFPID-908070602",
136+
"full_product_name": {
137+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2023",
138+
"product_id": "CSAFPID-908070609"
139+
},
140+
"subpaths": [
141+
{
142+
"category": "installed_on",
143+
"next_product_reference": "CSAFPID-908070603"
144+
}
145+
]
146+
},
147+
{
148+
"beginning_product_reference": "CSAFPID-908070602",
149+
"full_product_name": {
150+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2024",
151+
"product_id": "CSAFPID-908070610"
152+
},
153+
"subpaths": [
154+
{
155+
"category": "installed_on",
156+
"next_product_reference": "CSAFPID-908070604"
157+
}
158+
]
159+
},
160+
{
161+
"beginning_product_reference": "CSAFPID-908070607",
162+
"full_product_name": {
163+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2023 installed on Example Company Product C EU",
164+
"product_id": "CSAFPID-908070611"
165+
},
166+
"subpaths": [
167+
{
168+
"category": "installed_on",
169+
"next_product_reference": "CSAFPID-908070605"
170+
}
171+
]
172+
},
173+
{
174+
"beginning_product_reference": "CSAFPID-908070607",
175+
"full_product_name": {
176+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2023 installed on Example Company Product C US",
177+
"product_id": "CSAFPID-908070612"
178+
},
179+
"subpaths": [
180+
{
181+
"category": "installed_on",
182+
"next_product_reference": "CSAFPID-908070606"
183+
}
184+
]
185+
},
186+
{
187+
"beginning_product_reference": "CSAFPID-908070608",
188+
"full_product_name": {
189+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2024 installed on Example Company Product C EU",
190+
"product_id": "CSAFPID-908070613"
191+
},
192+
"subpaths": [
193+
{
194+
"category": "installed_on",
195+
"next_product_reference": "CSAFPID-908070605"
196+
}
197+
]
198+
},
199+
{
200+
"beginning_product_reference": "CSAFPID-908070608",
201+
"full_product_name": {
202+
"name": "Example Company Product A 1.0.0 installed on Example Company Product B 2024 installed on Example Company Product C US",
203+
"product_id": "CSAFPID-908070614"
204+
},
205+
"subpaths": [
206+
{
207+
"category": "installed_on",
208+
"next_product_reference": "CSAFPID-908070606"
209+
}
210+
]
211+
},
212+
{
213+
"beginning_product_reference": "CSAFPID-908070609",
214+
"full_product_name": {
215+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2023 installed on Example Company Product C EU",
216+
"product_id": "CSAFPID-908070615"
217+
},
218+
"subpaths": [
219+
{
220+
"category": "installed_on",
221+
"next_product_reference": "CSAFPID-908070605"
222+
}
223+
]
224+
},
225+
{
226+
"beginning_product_reference": "CSAFPID-908070609",
227+
"full_product_name": {
228+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2023 installed on Example Company Product C US",
229+
"product_id": "CSAFPID-908070616"
230+
},
231+
"subpaths": [
232+
{
233+
"category": "installed_on",
234+
"next_product_reference": "CSAFPID-908070606"
235+
}
236+
]
237+
},
238+
{
239+
"beginning_product_reference": "CSAFPID-908070610",
240+
"full_product_name": {
241+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2024 installed on Example Company Product C EU",
242+
"product_id": "CSAFPID-908070617"
243+
},
244+
"subpaths": [
245+
{
246+
"category": "installed_on",
247+
"next_product_reference": "CSAFPID-908070605"
248+
}
249+
]
250+
},
251+
{
252+
"beginning_product_reference": "CSAFPID-908070610",
253+
"full_product_name": {
254+
"name": "Example Company Product A 1.1.0 installed on Example Company Product B 2024 installed on Example Company Product C US",
255+
"product_id": "CSAFPID-908070618"
256+
},
257+
"subpaths": [
258+
{
259+
"category": "installed_on",
260+
"next_product_reference": "CSAFPID-908070606"
261+
}
262+
]
263+
}
264+
]
265+
}
266+
}

0 commit comments

Comments
 (0)