From 6b88ffe6f566ded13489c8faaef34004ab6727b2 Mon Sep 17 00:00:00 2001 From: Fbeni Date: Tue, 27 Oct 2026 16:28:38 +0100 Subject: [PATCH] SHACL CI: check out CGMES-AP and NC-AP directly Since 2026-10-15 entsoe/application-profiles-library links CGMES/ and NCP/ as submodules (entsoe/CGMES-AP, entsoe/NC-AP). The workflow checked out the library without submodules, so .apl-main/{CGMES,NCP}/PROF were empty and validate_instances.py stopped with "cgmes-3.0: empty PROF map". Inside the submodules the files also sit one folder deeper, so even a recursive checkout would not match the paths prof_map.py expects. Check out the two AP repos into .apl-cgmes and .apl-ncp instead; their CGMES/ and NCP/ top-level layout matches prof_map.py unchanged. Update the script defaults, CLAUDE.md local-run instructions and .gitignore to match. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Fbeni --- .github/workflows/shacl_validation.yml | 18 ++++++++++++------ .gitignore | 4 +++- CLAUDE.md | 10 ++++++---- buildScripts/validate_instances.py | 11 ++++++----- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/.github/workflows/shacl_validation.yml b/.github/workflows/shacl_validation.yml index 5b6544d..b8c7138 100644 --- a/.github/workflows/shacl_validation.yml +++ b/.github/workflows/shacl_validation.yml @@ -21,19 +21,25 @@ jobs: steps: - uses: actions/checkout@v4 - # main carries both CGMES 3.0 and NCP 2.5 (PROF + SHACL) - - name: Checkout application profiles library (main) + # application-profiles-library only links CGMES/ and NCP/ as submodules + # since 2026-10-15; check out the two AP repos (PROF + SHACL) directly + - name: Checkout CGMES application profiles (CGMES 3.0) uses: actions/checkout@v4 with: - repository: entsoe/application-profiles-library - ref: main - path: .apl-main + repository: entsoe/CGMES-AP + path: .apl-cgmes + + - name: Checkout NC application profiles (NCP 2.5) + uses: actions/checkout@v4 + with: + repository: entsoe/NC-AP + path: .apl-ncp - name: Install uv uses: astral-sh/setup-uv@v6 - name: Validate instances, export SARIF + SHACL reports - run: uv run buildScripts/validate_instances.py --apl cgmes-3.0=.apl-main --apl ncp-2.5=.apl-main + run: uv run buildScripts/validate_instances.py --apl cgmes-3.0=.apl-cgmes --apl ncp-2.5=.apl-ncp # one upload per SARIF run — code scanning does not combine # multiple runs uploaded under the same category diff --git a/.gitignore b/.gitignore index 7e72de3..6640023 100644 --- a/.gitignore +++ b/.gitignore @@ -12,9 +12,11 @@ validation_report/ __pycache__/ *.pyc -# APL checkout + caches for SHACL validation # +# AP checkouts + caches for SHACL validation # ############ .apl-main/ +.apl-cgmes/ +.apl-ncp/ .shacl_cache/ # generated validation reports (CI run artifacts) # diff --git a/CLAUDE.md b/CLAUDE.md index 66f2759..d9c2d52 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -131,12 +131,14 @@ the workflow's `Run workflow` button, which opens `auto/manifests-manual- repo-relative SARIF artifact URIs parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--apl", action="append", default=[], metavar="RELEASE=PATH", - help="APL checkout per release, e.g. cgmes-3.0=.apl-main (repeatable)") + help="APL checkout per release, e.g. cgmes-3.0=.apl-cgmes (repeatable)") parser.add_argument("--only", choices=sorted(RELEASES), help="run a single release") parser.add_argument("--no-closure", action="store_true", help="skip the dependency-closure comparison run") args = parser.parse_args()