Skip to content

chore(wave3): bump Poly/ML 5.9.1→5.9.2, OR-Tools 9.12→9.15, ACL2 8.6→8.7#156

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/wave3-pin-bumps-poly-ortools-acl2
May 30, 2026
Merged

chore(wave3): bump Poly/ML 5.9.1→5.9.2, OR-Tools 9.12→9.15, ACL2 8.6→8.7#156
hyperpolymath merged 1 commit into
mainfrom
chore/wave3-pin-bumps-poly-ortools-acl2

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Verification pass on the Wave-3 brittle upstream pins tracked in #75.
Five upstreams checked against latest GitHub releases (or git tags for
ACL2, which doesn't ship GitHub Releases):

Backend Was Latest Action Risk
Poly/ML 5.9.1 5.9.2 (2025-08-11) bumped patch — low
OR-Tools 9.12.4544 9.15.6755 (2026-01-12) bumped (+BUILD) minor×3 — moderate
SCIP 10.0.2 10.0.2 (2026-04-02) current ✓
ACL2 8.6 8.7 (git tag) bumped minor — low
Tamarin 1.12.0 1.12.0 (2026-03-07) current ✓

Also checked: HOL4 trindemossen-2 (latest as of 2025-08-12, current ✓).

URL hygiene

All five existing-pin asset URLs HEAD-resolved before the bump, so no
dead-URL stub-degradation (the original #75 concern about graceful
fallbacks hiding drift) was masking a download failure at this
snapshot. After this PR lands, the same set of URLs has been
HEAD-checked for the new tags. The smoke that #75 also asks for
(weekly assertion that --version returns the real prover, not the
stub sentinel) is a separate piece of work — not in this PR.

OR-Tools BUILD coupling

The OR-Tools archive name embeds both VERSION and BUILD:
or-tools_amd64_debian-12_cpp_v9.15.6755.tar.gz. Both ARGs must move
together on any version bump. The inline comment has been updated to
reflect the new example so the next reader has the current reference
point.

Test plan

  • Wave-3 container builds successfully on CI (.github/workflows/cargo-audit.yml / any Wave-3 smoke that exercises Containerfile.wave3).
  • OR-Tools v9.15 C++ FFI surface still matches downstream Rust callers (the 3-minor-version jump is the highest-ABI-risk change here).
  • ACL2 8.7 saved_acl2.core builds with the SBCL recipe in the next stage.
  • Poly/ML 5.9.2 is a patch bump from 5.9.1 — configure && make && make install recipe unchanged.

Refs #75.

🤖 Generated with Claude Code

Verification pass on the Wave-3 brittle pins tracked in #75. Five
upstreams checked against latest GitHub releases (or git tags for
ACL2, which doesn't use GitHub Releases):

| Backend | Was | Latest | Action |
|---|---|---|---|
| Poly/ML | 5.9.1 | 5.9.2 (2025-08-11) | bumped |
| OR-Tools | 9.12.4544 | 9.15.6755 (2026-01-12) | bumped (BUILD also) |
| SCIP | 10.0.2 | 10.0.2 (2026-04-02) | current ✓ |
| ACL2 | 8.6 | 8.7 (git tag) | bumped |
| Tamarin | 1.12.0 | 1.12.0 (2026-03-07) | current ✓ |

Additional checks: HOL4 trindemossen-2 (current — latest is also
trindemossen-2 from 2025-08-12). All five existing-pin asset URLs
HEAD-resolved before bumping, so no dead-URL stub-degradation
was masking a download failure at this snapshot.

OR-Tools BUILD number for v9.15 (6755) verified via the GitHub
releases API for that tag — matches the actual asset name
`or-tools_amd64_debian-12_cpp_v9.15.6755.tar.gz`. Comment block
updated to reflect the new example in case the bump becomes the
new reference.

Risk: OR-Tools jumped 3 minor versions (9.12 → 9.15) which carries
the most ABI surface for downstream Rust callers via the C++ FFI.
The other two are patch (Poly/ML) and minor (ACL2) bumps and are
low-risk. Container build + the existing Wave-3 smoke jobs will
exercise the upgrades.

Refs #75.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 30, 2026 21:07
@hyperpolymath hyperpolymath merged commit fa55844 into main May 30, 2026
30 of 38 checks passed
@hyperpolymath hyperpolymath deleted the chore/wave3-pin-bumps-poly-ortools-acl2 branch May 30, 2026 23:13
hyperpolymath added a commit that referenced this pull request May 30, 2026
## Summary

Second half of #75 — the per-prover smoke-check step in the weekly
Tier-3 container build uses \`|| true\` for backends whose CLIs exit
non-zero on quit (metamath/hol4/acl2/etc.). That was correct for the
per-backend version-check intent, but it also silently swallowed the
case where a **graceful stub fallback** (defined in
\`Containerfile.wave3\` for tamarin/proverif/scip/metamath) printed its
sentinel and exited 1. Result: a broken upstream pin masquerading as a
passing weekly build — exactly the regression #75 was filed to surface.

This adds a new step (\`Stub-sentinel detection (#75)\`) that re-runs
each matrix cell's \`version_check\`, captures stdout+stderr verbatim,
and fails LOUDLY with a \`::error::\` annotation on any of:

| Pattern | Source backend |
|---|---|
| \`not available (bundle install failed\` | tamarin, scip |
| \`not available (build failed\` | metamath |
| \`not available (source build failed\` | proverif |
| \`bundle install failed at image build time\` | generic |
| \`build failed at image build time\` | generic |
| \`source build failed at image build\` | generic |

## Out of scope (by design)

- **Imandra** is not matched — its stub says \"proprietary licence
required\" rather than the build-time sentinels, and it's excluded from
the matrix anyway (not licensable in public CI).
- **Hard-fail backends** without a graceful stub (or-tools, hol4, acl2,
poly/ml) — these crash the build step itself if their upstream is dead,
so they're already covered.

## Gate semantics

\`continue-on-error: true\` on the job is preserved. These weekly images
are **informational, not merge gates** — so a stub detection shows as
red ❌ inside an amber/yellow job, visible in the Actions UI without
blocking. That matches the rest of the \`tier3-container\` contract.

## Companion

Bumps for the stale pins (Poly/ML / OR-Tools / ACL2) shipped in #156.
With both this PR and #156 merged, #75's two asks are addressed:
1. ✓ Bump stale pins.
2. ✓ Catch silent stub-degradation in CI before it lingers another
month.

## Test plan

- [ ] Workflow lint / actionlint passes.
- [ ] Next weekly Tier-3 cron run shows the new step appearing in each
matrix cell.
- [ ] Manual probe: if a future pin breaks (or someone simulates it by
replacing an upstream URL with a 404 in a fork), the stub-sentinel step
fires red.

Refs #75.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant