From cb2b19bfaa8c311b02650771cbd06e5b028a5e6f Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 6 Sep 2024 14:35:58 +0100 Subject: [PATCH 1/7] Update check-examples.sh validator to v3.0.1 - Also consolidated code to use the existing check_schema and check_model functions - Update relevant URLs to 3.0.1 ones Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 47 +++++++++++++--------------- examples/jsonld/package_sbom.json | 4 +-- serialization/jsonld/annotations.ttl | 2 +- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index 1a1eeca620..48477b0729 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -8,44 +8,43 @@ set -e THIS_DIR=$(dirname $0) - -for f in examples/jsonld/*.json; do - echo "Checking $f" - - check-jsonschema \ - -v \ - --schemafile https://spdx.org/schema/3.0.0/spdx-json-schema.json \ - $f - - pyshacl \ - -s https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - -e https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - $f -done - -T=$(mktemp -d) +SCHEMA_FILE="https://spdx.org/schema/3.0.1/spdx-json-schema.json" +RDF_FILE="https://spdx.org/rdf/3.0.1/spdx-model.ttl" +CONTEXT_FILE="https://spdx.org/rdf/3.0.1/spdx-context.jsonld" +SPDX_VERSION="3.0.1" check_schema() { check-jsonschema \ -v \ - --schemafile https://spdx.org/schema/3.0.0/spdx-json-schema.json \ + --schemafile $SCHEMA_FILE \ "$1" } check_model() { pyshacl \ - -s https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - -e https://spdx.org/rdf/3.0.0/spdx-model.ttl \ + -s $RDF_FILE \ + -e $RDF_FILE \ "$1" } +# Check examples in JSON files in examples/jsonld/ directory +if [ "$(ls $THIS_DIR/../examples/jsonld/*.json 2>/dev/null)" ]; then + for f in $THIS_DIR/../examples/jsonld/*.json; do + echo "Checking $f" + check_schema $f + check_model $f + done +fi + +TEMP=$(mktemp -d) -for f in $THIS_DIR/../docs/annexes/*.md; do +# Check examples in JSON code snippets in Markdown files in docs/ directory +for f in $THIS_DIR/../docs/*.md; do if ! grep -q '^```json' $f; then continue fi echo "Checking $f" - DEST=$T/$(basename $f) + DEST=$TEMP/$(basename $f) mkdir -p $DEST cat $f | awk -v DEST="$DEST" 'BEGIN{flag=0} /^```json/, $0=="```" { if (/^---$/){flag++} else if ($0 !~ /^```.*/ ) print $0 > DEST "/doc-" flag ".spdx.json"}' @@ -57,7 +56,7 @@ for f in $THIS_DIR/../docs/annexes/*.md; do mv $doc $doc.fragment cat >> $doc <> $doc @@ -65,7 +64,7 @@ HEREDOC { "type": "CreationInfo", "@id": "_:creationInfo", - "specVersion": "3.0.0", + "specVersion": "$SPDX_VERSION", "created": "2024-04-23T00:00:00Z", "createdBy": [ { @@ -88,5 +87,3 @@ HEREDOC check_model $DEST/combined.json done - - diff --git a/examples/jsonld/package_sbom.json b/examples/jsonld/package_sbom.json index a382351532..7af7e9a68f 100644 --- a/examples/jsonld/package_sbom.json +++ b/examples/jsonld/package_sbom.json @@ -1,5 +1,5 @@ { - "@context": "https://spdx.org/rdf/3.0.0/spdx-context.jsonld", + "@context": "https://spdx.org/rdf/3.0.1/spdx-context.jsonld", "@graph": [ { "type": "CreationInfo", @@ -7,7 +7,7 @@ "createdBy": [ "http://spdx.example.com/Agent/JoshuaWatt" ], - "specVersion": "3.0.0", + "specVersion": "3.0.1", "created": "2024-03-06T00:00:00Z" }, { diff --git a/serialization/jsonld/annotations.ttl b/serialization/jsonld/annotations.ttl index 801f528932..5e3297df3d 100644 --- a/serialization/jsonld/annotations.ttl +++ b/serialization/jsonld/annotations.ttl @@ -1,4 +1,4 @@ -@base . +@base . @prefix sh-to-code: . ; From 63e919ae45a7e14d6a386c0f83a575bdb329617a Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 6 Sep 2024 15:01:01 +0100 Subject: [PATCH 2/7] Fix directory Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index 48477b0729..e67f1bf143 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -38,8 +38,8 @@ fi TEMP=$(mktemp -d) -# Check examples in JSON code snippets in Markdown files in docs/ directory -for f in $THIS_DIR/../docs/*.md; do +# Check examples in JSON code snippets in Markdown files in docs/annexes/ directory +for f in $THIS_DIR/../docs/annexes/*.md; do if ! grep -q '^```json' $f; then continue fi From 281f3b0d8a1e78b1f062d2d309af9534aca462a6 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 6 Sep 2024 15:19:53 +0100 Subject: [PATCH 3/7] Update check-examples.sh Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index e67f1bf143..b71562733a 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -8,26 +8,26 @@ set -e THIS_DIR=$(dirname $0) -SCHEMA_FILE="https://spdx.org/schema/3.0.1/spdx-json-schema.json" -RDF_FILE="https://spdx.org/rdf/3.0.1/spdx-model.ttl" -CONTEXT_FILE="https://spdx.org/rdf/3.0.1/spdx-context.jsonld" +SCHEMA_URL="https://spdx.org/schema/3.0.1/spdx-json-schema.json" +RDF_URL="https://spdx.org/rdf/3.0.1/spdx-model.ttl" +CONTEXT_URL="https://spdx.org/rdf/3.0.1/spdx-context.jsonld" SPDX_VERSION="3.0.1" check_schema() { check-jsonschema \ -v \ - --schemafile $SCHEMA_FILE \ + --schemafile $SCHEMA_URL \ "$1" } check_model() { pyshacl \ - -s $RDF_FILE \ - -e $RDF_FILE \ + -s $RDF_URL \ + -e $RDF_URL \ "$1" } -# Check examples in JSON files in examples/jsonld/ directory +# Check examples in JSON files in examples/jsonld/ if [ "$(ls $THIS_DIR/../examples/jsonld/*.json 2>/dev/null)" ]; then for f in $THIS_DIR/../examples/jsonld/*.json; do echo "Checking $f" @@ -38,7 +38,7 @@ fi TEMP=$(mktemp -d) -# Check examples in JSON code snippets in Markdown files in docs/annexes/ directory +# Check examples in inline code snippets in Markdown files in docs/annexes/ for f in $THIS_DIR/../docs/annexes/*.md; do if ! grep -q '^```json' $f; then continue @@ -47,8 +47,10 @@ for f in $THIS_DIR/../docs/annexes/*.md; do DEST=$TEMP/$(basename $f) mkdir -p $DEST + # Read inline code snippets and save them in separate, numbered files. cat $f | awk -v DEST="$DEST" 'BEGIN{flag=0} /^```json/, $0=="```" { if (/^---$/){flag++} else if ($0 !~ /^```.*/ ) print $0 > DEST "/doc-" flag ".spdx.json"}' + # Combine all JSON code snippets into a single file, with SPDX context and creation info. echo "[" > $DEST/combined.json for doc in $DEST/*.spdx.json; do @@ -56,7 +58,7 @@ for f in $THIS_DIR/../docs/annexes/*.md; do mv $doc $doc.fragment cat >> $doc <> $doc From 0d9a0ae40f002a135325733c5a869066f2d35435 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 7 Sep 2024 09:50:07 +0100 Subject: [PATCH 4/7] Update check-jsonschema version to 0.29.2 Signed-off-by: Arthit Suriyawongkul --- .github/workflows/validate_examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate_examples.yml b/.github/workflows/validate_examples.yml index 3219d9ce6c..56e611ff77 100644 --- a/.github/workflows/validate_examples.yml +++ b/.github/workflows/validate_examples.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7 - name: Install Python dependencies run: | - python3 -m pip install pyshacl==0.26.0 check-jsonschema==0.29.1 + python3 -m pip install pyshacl==0.26.0 check-jsonschema==0.29.2 - name: Install dependencies run: | sudo apt install -y gawk From 03a1cb76663eb2598a499317fe61e8e6834e69d8 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Tue, 10 Sep 2024 17:23:44 +0100 Subject: [PATCH 5/7] Update bin/check-examples.sh Co-authored-by: Maximilian Huber Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index b71562733a..95604c7386 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -8,7 +8,8 @@ set -e THIS_DIR=$(dirname $0) -SCHEMA_URL="https://spdx.org/schema/3.0.1/spdx-json-schema.json" +SPDX_VERSION="3.0.1" +SCHEMA_URL="https://spdx.org/schema/${SPDX_VERSION}/spdx-json-schema.json" RDF_URL="https://spdx.org/rdf/3.0.1/spdx-model.ttl" CONTEXT_URL="https://spdx.org/rdf/3.0.1/spdx-context.jsonld" SPDX_VERSION="3.0.1" From 944700809a0e12ccad0b7d22e771f8ac4e882e76 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Tue, 10 Sep 2024 17:23:56 +0100 Subject: [PATCH 6/7] Update bin/check-examples.sh Co-authored-by: Maximilian Huber Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index 95604c7386..68391f3970 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -7,7 +7,7 @@ set -e -THIS_DIR=$(dirname $0) +THIS_DIR="$(dirname "$0")" SPDX_VERSION="3.0.1" SCHEMA_URL="https://spdx.org/schema/${SPDX_VERSION}/spdx-json-schema.json" RDF_URL="https://spdx.org/rdf/3.0.1/spdx-model.ttl" From a74fb584b8b098871fd7aafad3ee441f7be5ef12 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Tue, 10 Sep 2024 17:26:11 +0100 Subject: [PATCH 7/7] Update check-examples.sh Signed-off-by: Arthit Suriyawongkul --- bin/check-examples.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/check-examples.sh b/bin/check-examples.sh index 68391f3970..5f74bdeef5 100755 --- a/bin/check-examples.sh +++ b/bin/check-examples.sh @@ -10,9 +10,8 @@ set -e THIS_DIR="$(dirname "$0")" SPDX_VERSION="3.0.1" SCHEMA_URL="https://spdx.org/schema/${SPDX_VERSION}/spdx-json-schema.json" -RDF_URL="https://spdx.org/rdf/3.0.1/spdx-model.ttl" -CONTEXT_URL="https://spdx.org/rdf/3.0.1/spdx-context.jsonld" -SPDX_VERSION="3.0.1" +RDF_URL="https://spdx.org/rdf/${SPDX_VERSION}/spdx-model.ttl" +CONTEXT_URL="https://spdx.org/rdf/${SPDX_VERSION}/spdx-context.jsonld" check_schema() { check-jsonschema \