From 992ae09b537462bcbf61c9c97557fad0a8f100f3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 19:12:46 +0000 Subject: [PATCH 1/2] ci: download the OMG corpora before the OpenSysML mirror run The advisory job built OpenSysML against these libraries without the pilot corpora, so TestKerMLFeatureMetaclassClassification failed on every run reading examples/pilot-corpora. Fetch the training and pilot corpora as OpenSysML's own CI does and fail early when a root is empty. Also document the project-interchange route for OpenSysML in the README: the release .kpar beside the model or under -library-root. Co-Authored-By: jason.han --- .github/workflows/ci.yml | 24 ++++++++++++++++++++++++ README.md | 6 +++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a5993f..7398150 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,6 +99,30 @@ jobs: sudo install -m 0755 /tmp/cvc5-bin /usr/local/bin/cvc5 cvc5 --version | head -1 + # The semantics, solver and check suites read the OMG pilot corpora and the + # training corpus from examples/, as OpenSysML's own CI downloads them. + - name: Cache the OMG corpora + uses: actions/cache@v4 + with: + path: | + opensysml/examples/sysml-v2-training + opensysml/examples/pilot-corpora + key: omg-corpora-${{ hashFiles('opensysml/scripts/download-training-examples.sh', 'opensysml/scripts/download-pilot-corpora.sh', 'opensysml/scripts/pilot-pin.sh') }} + + - name: Download the OMG corpora + run: | + cd "$GITHUB_WORKSPACE/opensysml" + ./scripts/download-training-examples.sh + ./scripts/download-pilot-corpora.sh + for root in sysml-v2-training pilot-corpora/sysml-examples pilot-corpora/sysml-validation pilot-corpora/kerml-examples; do + count=$(find "examples/$root" -type f \( -name '*.sysml' -o -name '*.kerml' \) | wc -l) + echo "$root: $count model files" + if [ "$count" -eq 0 ]; then + echo "error: examples/$root is empty" >&2 + exit 1 + fi + done + - name: Run OpenSysML against these libraries env: EXTENSIONS_DIR: ${{ github.workspace }}/extensions diff --git a/README.md b/README.md index 479b66b..ca7d699 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,11 @@ Every tool also needs the OMG standard library (`sysml.library`). - **OpenSysML** — bundled: it vendors a pinned copy at `internal/workspace/libs/stdlib/OpenSysML Libraries/`, pinned by `scripts/extension-libraries-pin.sh` and refreshed by - `scripts/sync-extension-libraries.sh`. Edits land here first. + `scripts/sync-extension-libraries.sh`. Edits land here first. A newer + revision than the bundled one is read as a project interchange archive: + name the release `.kpar` beside the model + (`sysml -validate model.sysml opensysml-extension-libraries.kpar`) or put it + under a `-library-root` directory. ## Versioning From a24db503645911e2027ddaffa15a033494af5528 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 19:35:24 +0000 Subject: [PATCH 2/2] ci: give the mirror run's go test an hour Co-Authored-By: jason.han --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7398150..9871b1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,4 +134,5 @@ jobs: fi scripts/sync-extension-libraries.sh --source "$EXTENSIONS_DIR" make stdlib-snapshot-check || make stdlib-snapshot - go test ./internal/workspace/libs/... ./internal/exec/... ./internal/ir/... ./internal/doc/... ./internal/semantic/... ./internal/check/... ./internal/translate/... ./tests/hygiene/... + # internal/exec/runtime and internal/exec/smt outlast go test's default 10m on these runners. + go test -timeout 60m ./internal/workspace/libs/... ./internal/exec/... ./internal/ir/... ./internal/doc/... ./internal/semantic/... ./internal/check/... ./internal/translate/... ./tests/hygiene/...