Repository navigation
ci: move the oracle default and elixir-compile to OTP 28.5.0.8 - #1037
Conversation
Hypatia be98f74 segfaults deterministically when compiled and run on OTP 28.1, 28.2 or 28.3 (5/5 rc 139 per version; #1032). It is clean on OTP 27.3, 28.0 and 28.5.0.8. The likely cause is the compiler bug fixed in OTP 28.4 (OTP-19951, erlang/otp#10588). rsr-oracle.yml now defaults to 28.5.0.8, and the elixir-compile jobs in ci.yml match it. Those jobs exist to compile the tree under the gate's exact toolchain. The Mix cache key and restore prefix now carry the OTP version, so a _build compiled under one release is never restored under another. The consumer docs and the changelog say the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E294yTkKk127qgKEXFFDBE
|
Caution Review failedThe pull request is closed.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins. |
## What - `governance-reusable.yml`, `hypatia-scan-reusable.yml` and the Hypatia projection job in `self-test.yml` move from OTP `28.3` to `28.5.0.8`. - The two `hypatia-scanner-v4-…` cache keys now include the OTP version. ## Why hyperpolymath/hypatia#1032 ran a matrix of OTP versions: - Hypatia `be98f74` segfaults on every run (rc 139, 5 of 5) when it is compiled and run on **OTP 28.1, 28.2 or 28.3**. - It is clean on 27.3, 28.0 and 28.5.0.8. - The likely cause is OTP-19951 (erlang/otp#10588), fixed in 28.4. That is inferred, not proven. These reusables build whatever Hypatia SHA the caller names, and every consumer runs them. Leaving them on a release whose compiler is known to be faulty puts the whole estate at risk. The cache keys matter on their own. A cached `~/hypatia` holds an escript of beams compiled under the old release. The SHA-only key would have restored that escript under the new runtime, and the guard steps would then have skipped the rebuild. ## Companion PRs - hyperpolymath/hypatia#1037 moves the oracle default and Hypatia's own CI. - hyperpolymath/rsr-template-repo#311 moves the spine's oracle and scanner. ## Checks - All three workflows parse. - No action SHA changed, so the locks are untouched. - The local runs of `check-workflow-*` and `check-lock-sync` give the same results here as on unmodified main. They fail there too, because this container's `yq` is the Python one. CI is the real check. --- _Generated by [Claude Code](https://claude.ai/code/session_01E294yTkKk127qgKEXFFDBE)_ Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
|
This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins. |
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c3a6b39540
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| constructive reals, with no Mathlib, which PROOF-POLICY forbids. | ||
| `docs/proofs/needs.adoc` now points at the ledger instead of keeping a | ||
| list of its own. | ||
| ==== The oracle and CI toolchain move to OTP 28.5.0.8 (2026-11-09) |
There was a problem hiding this comment.
Preserve the existing unreleased changelog entries
Add this OTP entry without replacing the two newer entries already present in the parent. This change deletes the release notes for “Lean engineering proofs move to Idris2” and “Proof claims follow the machine proof ledger,” even though those changes remain in the tree, leaving the unreleased changelog incomplete.
Useful? React with 👍 / 👎.
|
|
||
| * Runner: `ubuntu-latest` only. The reusables install their own | ||
| toolchain (Elixir 1.19.4 / OTP 28.3 via `erlef/setup-beam`) — no | ||
| toolchain (Elixir 1.19.4 / OTP 28.5.0.8 via `erlef/setup-beam`) — no |
There was a problem hiding this comment.
Keep the prerequisite aligned with the immutable standards pin
Retain OTP 28.3 here until the documented standards revision is updated, or update all five caller pins and their lock entries together. The examples and actual callers in this repository still pin 7641c7fdb01420696b5420ab85d88f599f32f609, which this section identifies as the exact immutable contract; a future standards PR cannot change that commit to install OTP 28.5.0.8, so the published integration's runtime prerequisite is now inaccurate.
Useful? React with 👍 / 👎.



What
rsr-oracle.yml: theotp-versioninput default changes from28.3to28.5.0.8.ci.yml: both "identical to the dogfood gate" setup steps move to28.5.0.8. The Mix cache key and its restore prefix now include the OTP version.docs/consumers/rsr-oracle.adoc,docs/consumers/standards-governance.adocandCHANGELOG.adocare updated to match.Why
The matrix in the closed diagnostic PR #1032 found:
be98f74segfaults every time on OTP 28.1, 28.2 and 28.3: 5 of 5 runs per version exited with rc 139, insweep_off_heapunderbeam_jit_bs_init_bits.Current main runs clean on 28.3 too. But 28.3's compiler can miscompile code, so keeping the oracle's default toolchain on it leaves every consumer that relies on the default exposed.
The cache-key change matters on its own. The old key ignored the OTP version, so a
_buildcompiled under 28.3 would have been restored and reused under 28.5.0.8.Companion PRs
ci.ymlcomment says to bump both together.standards-governance.adocline edited here describes those workflows, so it is accurate once that PR merges.Checks
Generated by Claude Code