$ the-wire · showcase
Phoenix phx.new.web drops Ecto by default
By RepoJournal · Filed · About Elixir & Phoenix
The phx.new.web generator now passes --no-ecto by default, fixing generation of invalid Repo and DataCase references for bare web projects.
The `phx.new.web` task, documented to create a bare Phoenix web project without database integration inside an umbrella, previously inherited `ecto: true` and generated references to a non-existent `<App>.Repo` and `<App>.DataCase` [1][2]. It now passes `--no-ecto` by default, so generated projects no longer include those invalid modules [1][2]. Elixir merged two commits: one optimizes JSON map key encoding by inlining per-key dispatch, eliminating a private function call for every encoded map entry [3][4], and the other sanitizes ExUnit formatters against invalid UTF-8, fixing a formatter crash that surfaced while debugging missing test logs [5][6]. The Phoenix integration test for `"generated app boots with mix phx.server"` previously booted via `elixir -S mix` with an in-band stdin watcher, which broke under asdf shims and leaked ~145 MB in `installer/tmp`; the hardened version replaces sleeps and polling with deterministic synchronization and cleans up after itself [7][8]. LiveView reverted its igniter dependency, since one of its dependencies causes issues compiling without optional deps [9], and clarified how navigation behaves in chained JS commands by closing issue 4411 [10][11]. The Phoenix repo also bumped eslint, eslint-plugin-jest, jest, and jest-environment-jsdom in the minor-and-patch group, with eslint moving from 10.8.0 to 10.9.1 [12].
Action items
- → Upgrade Phoenix to include the phx.new.web fix before generating new umbrella web apps phoenixframework/phoenix [plan]
- → Upgrade Elixir to pick up the ExUnit UTF-8 sanitization fix if you rely on custom formatters elixir-lang/elixir [plan]
- → Review your chained JS navigation code in LiveView for clarity after the docs update phoenixframework/phoenix_live_view [monitor]
References
- [1] Fix phx.new.web generator referencing Ecto ↗ phoenixframework/phoenix
- [2] Fix phx.new.web generator referencing Ecto (#6808) ↗ phoenixframework/phoenix
- [3] Optimize JSON map key encoding ↗ elixir-lang/elixir
- [4] Optimize JSON map key encoding (#15824) ↗ elixir-lang/elixir
- [5] Sanitize ExUnit formatters against invalid UTF-8 ↗ elixir-lang/elixir
- [6] Sanitize ExUnit formatters against invalid UTF-8 (#15821) ↗ elixir-lang/elixir
- [7] Harden and speed up phx.server integration test ↗ phoenixframework/phoenix
- [8] Harden and speed up phx.server integration test (#6818) ↗ phoenixframework/phoenix
- [9] downgrade igniter ↗ phoenixframework/phoenix_live_view
- [10] clarify navigation in chained JS commands ↗ phoenixframework/phoenix_live_view
- [11] clarify navigation in chained JS commands (#4412) ↗ phoenixframework/phoenix_live_view
- [12] Bump the minor-and-patch group with 4 updates ↗ phoenixframework/phoenix