From c75ee576545d7c95830cd3227cef9c07bdc4ea6e Mon Sep 17 00:00:00 2001 From: Seun Akanni Date: Tue, 8 Sep 2026 15:53:38 +0100 Subject: [PATCH 1/2] fix(ci): exclude the versioning test sets from the dataset compliance pathspec ci-dataset-compliance asserts that every file it selects deserialises into a BH.oM.Data.Library.Dataset. This repository's versioning test sets match the selector but are JSON Lines of oM objects, so all 80 fail by design. Measured against this checkout: :(icase)*datasets*.json 80 files ... :(exclude,icase)*Versioning_Test/Datasets/* 0 files The same one-line change is in BHoM/CI_Toolkit templates/BHoM/ci-beta.yml and templates/BHE/ci-beta.yml. Per BHoM/internal-tickets#39 nothing propagates a template change to onboarded repositories, so this repository needs its own edit. After both land, this file remains byte-identical to its template. Refs BHoM/internal-tickets#36 --- .github/workflows/ci-beta.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-beta.yml b/.github/workflows/ci-beta.yml index b7ade02..21d53af 100644 --- a/.github/workflows/ci-beta.yml +++ b/.github/workflows/ci-beta.yml @@ -70,7 +70,18 @@ jobs: uses: BHoM/CI_Toolkit/.github/actions/ci-compliance@develop with: check_type: dataset - patterns: ':(icase)*datasets*.json' + # Versioning_Test/Datasets holds JSON Lines of oM objects, not + # BH.oM.Data.Library.Dataset documents, so IsValidDataset errors on every + # one of them. Measured: DatasetComplianceRunner exits 1 on 9.2/Objects.json + # and 0 on a real library dataset. Excluded rather than teaching the runner + # a second shape, because that would touch Test_Toolkit. See + # BHoM/internal-tickets#36. + # + # This excludes one directory layout, not a class of file. The selector is + # substring-based, not dataset-aware: '*' crosses '/' without :(glob), so + # the substring can come from a filename, a data directory, or a project + # directory named *_Datasets. See BHoM/internal-tickets#43. + patterns: ':(icase)*datasets*.json :(exclude,icase)*Versioning_Test/Datasets/*' app_id: ${{ secrets.BHOM_APP_ID }} private_key: ${{ secrets.BHOM_APP_PRIVATE_KEY }} From 867150ff411fabcaf1ba17bfce98094ddaa2d161 Mon Sep 17 00:00:00 2001 From: Seun Akanni Date: Wed, 9 Sep 2026 10:29:01 +0100 Subject: [PATCH 2/2] fix(ci): exclude Versioning_ upgrade maps from the dataset pathspec ci-dataset-compliance asserts that every file it selects deserialises into a BH.oM.Data.Library.Dataset. Versioning_.json are versioning upgrade maps holding {"Dataset":{"ToNew":..,"ToOld":..}} and can never be Dataset documents, so add a filename-anchored exclusion alongside the existing Versioning_Test/Datasets path exclusion. :(glob) keeps the token a filename match. Without it both wildcards cross '/', so the exclusion would also drop real datasets under any directory containing Versioning_. The ** anchor keeps it depth-agnostic and the [0-9] gate keeps a genuine dataset named Versioning_Rules.json in scope. This repository holds no file of that shape, so the token is a no-op here and is carried so the pathspec does not diverge from CI_Toolkit's templates. The surrounding comment is condensed; the fuller derivation and the assertions that pin each element of the token live in CI_Toolkit. Refs BHoM/internal-tickets#36, BHoM/internal-tickets#43. --- .github/workflows/ci-beta.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci-beta.yml b/.github/workflows/ci-beta.yml index 21d53af..36ffb2d 100644 --- a/.github/workflows/ci-beta.yml +++ b/.github/workflows/ci-beta.yml @@ -70,18 +70,15 @@ jobs: uses: BHoM/CI_Toolkit/.github/actions/ci-compliance@develop with: check_type: dataset - # Versioning_Test/Datasets holds JSON Lines of oM objects, not - # BH.oM.Data.Library.Dataset documents, so IsValidDataset errors on every - # one of them. Measured: DatasetComplianceRunner exits 1 on 9.2/Objects.json - # and 0 on a real library dataset. Excluded rather than teaching the runner - # a second shape, because that would touch Test_Toolkit. See - # BHoM/internal-tickets#36. - # - # This excludes one directory layout, not a class of file. The selector is - # substring-based, not dataset-aware: '*' crosses '/' without :(glob), so - # the substring can come from a filename, a data directory, or a project - # directory named *_Datasets. See BHoM/internal-tickets#43. - patterns: ':(icase)*datasets*.json :(exclude,icase)*Versioning_Test/Datasets/*' + # Two shapes match this selector but are not BH.oM.Data.Library.Dataset + # documents: Versioning_Test/Datasets is JSON Lines of oM objects, and + # Versioning_.json are versioning upgrade maps, wherever they live. + # :(glob) keeps the second a filename match at any depth; without it both '*' + # cross '/' and it would also swallow real datasets under any Versioning_* + # directory. This pathspec is duplicated in CI_Toolkit's two ci-beta templates + # and every onboarded repo's copy with nothing propagating a change, so mirror + # any edit there. BHoM/internal-tickets#36 (shapes), #43 (selector anchoring). + patterns: ':(icase)*datasets*.json :(exclude,icase)*Versioning_Test/Datasets/* :(exclude,glob,icase)**/Versioning_[0-9]*.json' app_id: ${{ secrets.BHOM_APP_ID }} private_key: ${{ secrets.BHOM_APP_PRIVATE_KEY }}