build(ci): drop OTP 25, require OTP 27 or later - #36
Merged
Merged
Conversation
OTP 25 has had no patches, security fixes included, since May 2025, and OTP 26 reached end of life in May 2026. Upstream maintains three majors at a time, which today means 27 through 29, and Elixir itself dropped OTP 25 in 1.19. Testing an unpatched runtime bought nothing. The matrix now pairs each Elixir minor in the declared range with a maintained runtime, covering OTP 28 and 29 for the first time. The Elixir requirement is unchanged, so the floor cell still proves ~> 1.17 works. This mirrors the same change in a2a-elixir, keeping the two libraries on one supported range.
|
Reviewed — no high-confidence issues found. LGTM. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Companion to actioncard/a2a-elixir#69 — same matrix change, so the two libraries state one supported range instead of two. Simpler here: no jose pin, no Dependabot exception, no version bump.
Why
Matrix
Same four cells, no extra CI cost. Each Elixir minor in the declared
~> 1.17range paired with a maintained runtime:~> 1.17is still realmise.tomlresolves to locally)OTP 28 and 29 have never been tested here — including the OTP 28 this is developed on.
quality,test-jsandpublishmove to 1.19/28, which is a matrix cell, so they share warmdeps/_buildcaches. The four hardcoded1.18-27cache-key strings intest-jsmove in lockstep — a stale key fails silently rather than loudly.Note
1.18+28would be invalid: Elixir 1.18 tops out at OTP 27, andsetup-beamwould silently resolve backwards to 1.18.4, the last 1.18 with an otp-28 build.Verification
--warnings-as-errors; format andcredo --strictclean; dialyzer run against a deletedpriv/pltsso a stale PLT couldn't mask anything — 0 errors cold.--warnings-as-errors, format clean. Covers the new 1.20 cell's compiler and formatter risk without building OTP 29 locally. Unlike a2a-elixir, this repo needed no source fixes for 1.20.mix bun test: 49 pass, 0 fail.