RepoJournal
Elixir & Phoenix

Elixir & Phoenix

Elixir, Phoenix, LiveView, and Ecto - the BEAM web stack

Keep up with Elixir & Phoenix in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Elixir & Phoenix Full archive →

The Wire · Showcase

ECTO FIXES CRITICAL SPLICE BUG, PHOENIX ADOPTS BOB FOR DOCKER IMAGES

By RepoJournal · Filed · About Elixir & Phoenix

Ecto shipped a fix for a long-standing splice parameter bug that was causing placeholder mismatches in dynamic expressions, while Phoenix moved to Bob's API for smarter Docker image selection in release generation.

Ecto's dynamic expression builder had a nasty problem: when splicing parameters, the postwalker appended the same parameter multiple times per placeholder occurrence, resulting in k placeholders generating k copies of parameters and broken bindings [1]. The fix recurses through splices into a map on first occurrence, so subsequent placeholders reuse the param instead of duplicating it [1]. That same release also tackles a data-modifying CTE planner cache traversal issue [2] that could corrupt query state. On the Phoenix side, `phx.gen.release` now uses Bob's API instead of hardcoded Docker image logic [3], which means generated Dockerfiles will automatically pull the optimal image for your target architecture and Elixir version. Phoenix also shipped Seenode deployment support [4], adding it as a first-class option alongside existing platforms. The Elixir repo meanwhile corrected documentation inconsistencies: `IO.read/2` docs incorrectly claimed the count argument was in bytes when it counts characters [5], and `MapSet.split_with/2` had a copy-pasted doctest that passed a two-element tuple to a single-argument predicate [6].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Fix splice params in dynamic expressions ↗ elixir-ecto/ecto
  2. [2] Fix data-modifying CTE planner cache traversal ↗ elixir-ecto/ecto
  3. [3] use Bob API for finding best docker image in phx.gen.release ↗ phoenixframework/phoenix
  4. [4] Add Seenode support to Phoenix deployment guide ↗ phoenixframework/phoenix
  5. [5] Fix `IO.read/2` docs: integer count is in characters, not bytes ↗ elixir-lang/elixir
  6. [6] Align `Access.filter/1` spec with its truthy semantics ↗ elixir-lang/elixir

Quick answers

What shipped in Elixir & Phoenix on July 9, 2026?
Ecto shipped a fix for a long-standing splice parameter bug that was causing placeholder mismatches in dynamic expressions, while Phoenix moved to Bob's API for smarter Docker image selection in release generation. In total, 8 commits and 8 pull requests landed.
Who contributed to Elixir & Phoenix on July 9, 2026?
4 developers shipped this update, including lukaszsamson, SteffenDE, GeoSegun, and nseaSeb.
What were the notable Elixir & Phoenix updates?
Fix splice params in dynamic expressions, Fix data-modifying CTE planner cache traversal, and use Bob API for finding best docker image in phx.gen.release.

More from Elixir & Phoenix

Daily updates, in your inbox

Follow Elixir & Phoenix

Keep up with Elixir & Phoenix in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?

We use privacy-friendly analytics (Google Analytics, IP-anonymized) to see which pages help readers. No ads, and we never sell your data. See our Privacy Policy.