$ cat elixir/month/2026-09-01.log
the month in review · September 2026
Phoenix adds CI test summary formatter
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
The SummaryFormatter replaces ten minutes of CI dots, while Elixir's typechecker stops crashing on impossible function clauses.
Add SummaryFormatter for integration test visibility in CI phoenixframework/phoenix
Integration tests in CI run for roughly 10 minutes emitting only dots, and passing --slowest to mix test forces --trace, which serializes async tests with --max-cases 1 and sets timeout: :infinity. The new formatter gives duration visibility without that tradeoff, so you can find slow tests in CI without giving up parallelism.
Fix functions with impossible clauses typecheck crash elixir-lang/elixir
Functions whose clauses are all unreachable previously crashed the typechecker; it now returns an uncallable fun(arity) type and keeps existing behavior whenever at least one domain is reachable. The cases covered include anonymous functions, local function captures, cross-module remote captures, and empty domains at multiple arities.
Fix DateTime convert/2 and truncate/2 ignoring custom calendar from map (#15814) elixir-lang/elixir
DateTime.convert/2 and truncate/2 silently ignored a custom calendar supplied in the options map. Code that passes a non-ISO calendar through a plain map now gets the calendar it asked for instead of the default.
fix: Test Manifest, parameterized do not override sibling failures elixir-lang/elixir
Parameterized tests were keyed as {module, test} in the test manifest, so a variant that failed first could be overwritten by a later run with different parameters. Failures are now tracked per variant, which means mix test --failed no longer loses a sibling variant.
Fix phx.new.web generator referencing Ecto phoenixframework/phoenix
phx.new.web inherited the generator's default ecto: true because it never passed --no-ecto, producing references to a non-existent <App>.Repo in web-only umbrella projects. The umbrella web generator now emits the bare Phoenix project its docs promise.
Fix phx.new.web generator referencing Ecto (#6808) phoenixframework/phoenix
The same generator fix, carried by the phoenix_live_view side of the umbrella flow. If you scaffold web-only apps inside an umbrella, regenerate or patch the template rather than hand-editing out the Repo references.
Split integration test suites into focused async modules phoenixframework/phoenix
Phoenix's integration suite was bundled into 7 monolithic test files, and since ExUnit parallelizes across modules but runs tests serially within each, only 7 worker processes could run at startup. Splitting them into focused async modules raises concurrency and cuts wall-clock time in CI.
Harden and speed up phx.server integration test phoenixframework/phoenix
The "generated app boots with mix phx.server" test used sleeps and polling and booted the server via elixir -S mix with an in-band stdin watcher. It now uses deterministic synchronization, which removes the flakiness and the portability assumptions the old approach carried.
$ ls elixir/month/ # the briefings behind this review
Keep up with Elixir & Phoenix in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.