Skip to content

CI: fix the guard that skips Apalache on Unicode specs - #228

Merged
lemmy merged 1 commit into
masterfrom
mku-CIApalacheGuard
Aug 18, 2026
Merged

CI: fix the guard that skips Apalache on Unicode specs#228
lemmy merged 1 commit into
masterfrom
mku-CIApalacheGuard

Conversation

@lemmy

@lemmy lemmy commented Aug 18, 2026

Copy link
Copy Markdown
Member

Summary

if [ ${{ matrix.unicode }} ] in the "Check small models" step is a single-argument test that asks whether its argument is a non-empty string. Both true and false are non-empty, so --skip_apalache has been passed in every matrix job since 38f89e1 introduced it on 2026-04-25. f1aaf96 noted the same truthiness on the same day but only fixed the Windows launcher that it had been masking.

Consequently no small symbolic model has ever been checked by CI. Of the 46 symbolic models in the manifests, only EinsteinRiddle/Einstein.cfg predates the flag, and before then the same guard was unconditionally skipping it by name.

The only Apalache that CI exercised are the two symbolic models above the 30 second threshold, APFlashWithMutex and APGermanData, which go to smoke_test_large_models.py. That script has no --skip_apalache option, allows five seconds, and counts TimeoutExpired as success. A working Apalache always times out and passes; a broken one exits immediately and fails. That is why Apalache raising its minimum JVM was caught while the model checking itself stayed dormant.

Test plan

Draft on purpose. This is being opened to find out what happens when 44 Apalache models run in CI for the first time, in particular:

  • Whether the recorded 00:00:01 runtimes are realistic, given that Apalache's JVM startup alone exceeds that; models over the 60 second hard timeout are reported as failures by check_small_models.py
  • Whether the Windows apalache-mc.bat routing from f1aaf96 works, since it has never executed
  • How much wall-clock time the ASCII jobs gain

[ ${{ matrix.unicode }} ] is a single-argument test asking whether the
string is non-empty, which both true and false are, so --skip_apalache
reached every job. No small symbolic model has been checked since
38f89e1 added the flag; f1aaf96 recorded the truthiness the same day
without fixing it.

The two symbolic models above the 30s threshold, APFlashWithMutex and
APGermanData, are smoke-tested rather than checked. That step allows
five seconds and counts a timeout as success, so it only detects
Apalache failing to start, which is all it caught when Apalache raised
its minimum JVM.

Also raise the hard timeout for symbolic models to 120s. APbosco takes
42s on the macOS runners and APtcp 32s, and the 60s that suffices for
TLC does not cover Apalache's JVM and solver startup. Raising it rather
than recording the measured runtimes, because the 30s threshold would
then move these two models into smoke_test_large_models.py, where an
Apalache model degenerates into a check that the launcher boots.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Markus Alexander Kuppe <github.com@lemmster.de>
@lemmy
lemmy force-pushed the mku-CIApalacheGuard branch from c716b30 to 9f76bc2 Compare August 18, 2026 16:49
@lemmy lemmy added the bug label Aug 18, 2026
@lemmy
lemmy marked this pull request as ready for review August 18, 2026 18:27
@lemmy
lemmy requested a lite review from Copilot August 18, 2026 18:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a CI logic bug that was unintentionally skipping Apalache (symbolic) checks in all matrix jobs, and adjusts the CI timeout to better reflect Apalache’s startup costs so symbolic models can run meaningfully when enabled.

Changes:

  • Fixes the bash guard in the CI workflow so --skip_apalache is only passed when matrix.unicode is actually true.
  • Increases the hard timeout for symbolic (Apalache) models in check_small_models.py from 60s to 120s while keeping TLC models at 60s.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/CI.yml Corrects the Unicode matrix guard so Apalache is skipped only for Unicode jobs.
.github/scripts/check_small_models.py Extends hard timeout for symbolic models to account for JVM/solver startup overhead.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@lemmy
lemmy merged commit 584dc24 into master Aug 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants