| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
[ ${{ 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>
There was a problem hiding this comment.
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:
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.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
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: