Skip to content

ci: add OTP 28 and use mix quality.ci#5

Merged
xu-chris merged 3 commits intomainfrom
ci/use-quality-ci
Jan 20, 2026
Merged

ci: add OTP 28 and use mix quality.ci#5
xu-chris merged 3 commits intomainfrom
ci/use-quality-ci

Conversation

@xu-chris
Copy link
Copy Markdown
Owner

Summary

  • Add OTP 28 to test matrix (with exclusions for Elixir < 1.18)
  • Replace separate format/credo steps with mix quality.ci (includes dialyzer)
  • Add PLT caching for faster dialyzer runs

Test plan

  • CI runs on this PR

🤖 Generated with Claude Code

Chris Xu and others added 3 commits January 20, 2026 14:55
- Add OTP 28 to test matrix with exclusions for Elixir < 1.18
- Replace separate format/credo steps with mix quality.ci
- Add PLT caching for faster dialyzer runs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove dead code patterns that could never match:
  - detect_root_type([]) in structural_parser.ex
  - append_lines(writer, [], _depth) in objects.ex
- Define precise types to fix supertype warnings:
  - Add @type decoded in decode.ex
  - Add @type validated in options.ex
  - Use nonempty_list() in arrays.ex and strings.ex specs
- Fix protocol fallback no_return warning:
  - Remove @SPEC from Toon.Encoder.Any encode/2 functions
  - Add .dialyzer_ignore.exs for intentional no_return behavior
- Add edge case tests to verify behavior before dead code removal

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@xu-chris xu-chris merged commit d78546a into main Jan 20, 2026
17 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