Skip to content

Bump Erlang/OTP, rebar3, and ELP version pins to latest - #194

Merged
andreashasse merged 3 commits into
mainfrom
andreashasse/erlang-version-pins-6dbf5c
Sep 14, 2026
Merged

andreashasse merged 3 commits into
mainfrom
andreashasse/erlang-version-pins-6dbf5c

Conversation

@andreashasse

Copy link
Copy Markdown
Owner

Summary

  • Bump the CI rebar3 matrix pin (3.253.27) and .tool-versions erlang pin (28.228.5.0.6) to their latest patch releases; the OTP CI matrix already builds 29/28/27 via major-version pins that erlef/setup-beam resolves to the latest patch automatically.
  • Update CI's ELP download to the latest release (2026-08-10), which now ships an OTP 29 build, and add that build to the matrix (previously lint/type_check were skipped on OTP 29).
  • Migrate .elp_lint.toml to ELP's new [linters.<code>] config schema, required by the newer ELP release.
  • Install ELP locally on this machine and add a JDK via Homebrew, since make type_check depends on both.

Test plan

  • make format / make compile on Erlang 28.5.0.6
  • make lint with the migrated .elp_lint.toml and new ELP build
  • CI run on this PR (validates the OTP 29 ELP build and updated rebar3 pin)

andreashasse and others added 3 commits September 14, 2026 12:00
Bump the rebar3 CI matrix pin and .tool-versions erlang pin to their
latest patch releases, and update the CI ELP download to the latest
ELP release (2026-08-10), which now also ships an OTP 29 build.
Migrate .elp_lint.toml to ELP's new [linters.<code>] config schema
required by that release.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The 2026-08-10 ELP release always lints test files now (previously
skipped). Scope the newly-triggered noisy lints (unused record
fields, module-level nowarn, old EDoc comments, maps:put/maps:reverse
idioms, and a parse error from the test-only spectra_transform
parse_transform) back to non-test code via include_tests = false,
restoring prior lint scope. Also fix the one genuine new finding in
production code: replace maps:find/2 with map-pattern matching in
spectra_json:struct_default_value/2 (W0032).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…form

ELP cannot execute arbitrary parse transforms during analysis (see
WhatsApp/erlang-language-platform#39), so files applying the
project's own spectra_transform parse_transform fail to parse under
elp lint with L0002. Use ELP's documented elp:ignore mechanism on
each affected test file instead of the ineffective include_tests
config key (L0002 is a hard parse failure, not a post-parse lint, so
it isn't scoped by include_tests).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@andreashasse
andreashasse merged commit 296614b into main Sep 14, 2026
3 checks passed
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