RepoJournal

$ cat elixir/week/2026-09-14.log

Elixir & Phoenix

Elixir & Phoenix

the week in review · Sep 14 – Sep 20, 2026

Comments land in the Elixir AST

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

The formatter now attaches comments to AST nodes, with no public API yet; Ecto and LiveView patch releases close out the week.

40 commits 26 PRs merged 2 releases 7 briefings covered

all elixir reviews →

Add comment nodes to Elixir AST elixir-lang/elixir

by josevalim

The formatter now attaches Elixir comments to AST nodes, done internally in code.ex so the approach can be validated before any public API is exposed. The change is described as an intermediate step toward the tooling work tracked in #14352, so nothing in your own AST-consuming code changes yet.

Bump Tailwind CLI in phx.new templates to 4.3.3 (#6845) phoenixframework/phoenix

by Wu Shuwen

Newly generated projects pin the Tailwind CLI to 4.3.3 instead of 4.3.0. The older release's macOS arm64 binary fails code signature validation and is killed on macOS 27, which meant mix phx.server never built priv/static/assets/css/app.css on those machines. Regenerate or edit the pin if you scaffolded a project recently.

Normalize `DateTime` casts to UTC for `:time` and `:time_usec` elixir-ecto/ecto

by youdie006

cast_time/1 had no %DateTime{} clause, so a non-UTC DateTime fell through to the map clauses in lib/ecto/type.ex and a Time was rebuilt from the wall-clock fields rather than the UTC instant. This extends the fix that already covered :date and the naive datetime types, meaning time and time_usec casts now agree with them.

Release v1.2.12 phoenixframework/phoenix_live_view

by Steffen Deusch

LiveView 1.2.12 ships, gathering the keyed-move template fix and the portal namespace fix into a tagged release. If you pin LiveView, this is the version that carries both.

Start 1.3.0-dev phoenixframework/phoenix_live_view

by Steffen Deusch

Development moves to 1.3.0-dev, so main no longer tracks the 1.2 line. Branch off the 1.2 series if you need stability while 1.3 takes shape.

Mark type-check macro expansions as generated elixir-lang/elixir

by shoutoutuoadi325

The typechecker crashed on a defimpl for a non-Elixir struct module, as in a protocol implemented for :gen_server, failing compilation instead of analyzing it. The fix ensures the module exports __info__/1 and adds a Mimic check from struct_info/6, so protocol implementations for atoms like this compile cleanly.

Resolve templates in moved keyed entries in LiveViewTest (#4440) phoenixframework/phoenix_live_view

by Hector De Diego

A keyed comprehension entry that moves and changes in the same render is sent as [old_pos, diff], but resolve_templates/2 only walked maps, leaving a shared template inside that diff as an integer and raising in Phoenix.LiveViewTest when the tree was merged. Rendering with :key entries that reorder while their contents change no longer blows up your tests.

Preserve namespace for portal targets phoenixframework/phoenix_live_view

by lukaszsamson

When a phx-portal template's root was namespaced (SVG or MathML), the target came out as an HTMLUnknownElement, the SVG children sat under a non-SVG root, and nothing displayed. The target is now created with createElementNS(namespaceURI, ...), so namespaced portals render.

$ ls elixir/week/ # 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.

or

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.

all elixir reviews →