Skip to content

Update toolchain to Elixir 1.20 and OTP 29 - #30

Merged
KTSCode merged 4 commits into
mainfrom
todo/elixir_1_20_otp_29
Jun 4, 2026
Merged

Update toolchain to Elixir 1.20 and OTP 29#30
KTSCode merged 4 commits into
mainfrom
todo/elixir_1_20_otp_29

Conversation

@KTSCode

@KTSCode KTSCode commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bump .tool-versions to erlang 29.0.1 / elixir 1.20.0-otp-29
  • Raise mix.exs requirement to ~> 1.20
  • Point CI and release setup-beam at Elixir 1.20.0 / OTP 29.0.1
  • Key the mix (deps/_build) and PLT caches on the BEAM version so a toolchain bump invalidates stale OTP-28 artifacts instead of failing dialyzer on an old PLT
  • Update AGENTS.md stack line to Elixir 1.20+ / OTP 29+
  • mix deps.update --all to latest within existing constraints (mix.lock only; no mix.exs dep changes). Notable: bandit 1.10.4→1.11.1, cli_mate 0.10.0→0.10.2, doctor 0.22→0.23, mint 1.7.1→1.9.0, finch 0.21→0.22, igniter 0.7.9→0.8.1, plug 1.19.1→1.19.2, thousand_island 1.4.3→1.5.0

Test plan

  • mix quality (full: format, compile w/ warnings-as-errors, deps, doctor, credo, dialyzer, tests) green on Elixir 1.20.0 / OTP 29 — 63% coverage
  • Re-ran full mix quality after deps.update --all — still green (dialyzer PLT rebuilt)
  • Pre-commit hook (full mix quality) passed on both commits
  • Verified Burrito's macOS ERTS CDN has the OTP-29.0.1 universal build, so release packaging resolves
  • mix hex.audit — no retired/insecure packages

Known issue (pre-existing, not from this PR)

Local MIX_ENV=prod mix release sev fails on macOS 26 / Xcode 26.4.1: zig 0.15.2 can't link against the host SDK (__availability_version_check), and burrito 1.5 hard-rejects zig 0.16. OTP 29 ERTS itself fetches/unpacks fine. Releases build via CI (release.yml on tag), which cross-compiles from Linux with zig's bundled SDK stubs and is unaffected.

Note: third-party deps (bandit, mint, plug, etc.) emit new 1.20 bitstring-size/pin and dialyzer clause warnings during compile. Severance's own code compiles clean under warnings-as-errors.

KTSCode added 4 commits June 4, 2026 12:03
Bump .tool-versions, mix.exs requirement, and CI/release
setup-beam to Elixir 1.20.0 / Erlang 29.0.1. Key the mix and
PLT caches on the BEAM version so a toolchain bump invalidates
stale OTP-28 artifacts instead of failing dialyzer on an old PLT.
mix deps.update --all within existing version constraints; no
mix.exs changes. Verified full mix quality green on Elixir 1.20
/ OTP 29.
@KTSCode
KTSCode merged commit 44795d5 into main Jun 4, 2026
@KTSCode
KTSCode deleted the todo/elixir_1_20_otp_29 branch June 4, 2026 22:14
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