Phase 3: CI enforces FP principles via Scalafix linting #14

Merged
mprihoda merged 4 commits from SUPP-9-phase-03 into SUPP-9 2026-01-30 10:53:22 +00:00
mprihoda commented 2026-01-29 23:05:41 +00:00 (Migrated from github.com)

Phase 3: CI enforces FP principles via Scalafix linting

Goals: Add Scalafix linting to CI pipeline to enforce FP best practices (no nulls, vars, throws, returns)

Implementation:

  • .scalafix.conf with DisableSyntax rules
  • ScalafixModule mixin in build.mill
  • New lint job in CI workflow (runs in parallel with compile/format)
  • 52 existing violations suppressed with documented justifications

Categories of suppressions:

  • Java/JS interop (Playwright, DOM, Java APIs returning null): 27
  • Framework requirements (Akka, Quill, Pac4j requiring exceptions): 13
  • Mutable state for performance (Laminar fiber tracking, builders): 12

Testing:

  • Verified Scalafix catches null and var usage
  • All modules pass ./mill __.fix --check

Files: 26 changed (234 insertions, 31 deletions)

🤖 Generated with Claude Code

## Phase 3: CI enforces FP principles via Scalafix linting **Goals**: Add Scalafix linting to CI pipeline to enforce FP best practices (no nulls, vars, throws, returns) **Implementation**: - `.scalafix.conf` with DisableSyntax rules - ScalafixModule mixin in build.mill - New `lint` job in CI workflow (runs in parallel with compile/format) - 52 existing violations suppressed with documented justifications **Categories of suppressions**: - Java/JS interop (Playwright, DOM, Java APIs returning null): 27 - Framework requirements (Akka, Quill, Pac4j requiring exceptions): 13 - Mutable state for performance (Laminar fiber tracking, builders): 12 **Testing**: - Verified Scalafix catches `null` and `var` usage - All modules pass `./mill __.fix --check` **Files**: 26 changed (234 insertions, 31 deletions) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.