From ca0a0eaa50ff65f7a7f2bd1ecee19203e34f5c4a Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 12 Apr 2026 17:58:13 -0500 Subject: [PATCH] Unblock CI: pull igniter into :prod for live_table compile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since da6b312 (Add live_table dep), every main-branch CI build has silently failed on `mix deps.compile` inside the Docker builder. The failure is that live_table ships two unguarded mix tasks — lib/mix/tasks/live_table.install.ex and lib/mix/tasks/live_table.gen.live.ex — both of which do `use Igniter.Mix.Task` at the top level without wrapping it in a `Code.ensure_loaded?(Igniter.Mix.Task)` check. When Igniter isn't available, compiling the live_table dep blows up with `module Igniter.Mix.Task is not loaded`. I had declared igniter as `only: [:dev, :test], runtime: false` which meant it was only fetched in those envs, so the prod Docker build never had it and failed there. The blast radius is every commit from da6b312 through 263c1bb (14 commits) none of which ever made it to prod: - /users, /beacons, /contacts, /admin/contact-edits live_table conversions - Admin nav dropdown - Cap "Contacts I'm in" at 100 - Contact detail path-calc link + 10 ft AGL assumption - Path calculator callsign tooltip - Drop gridmap.org and do QRZ + Google geocoding locally - Feed Loss (×) HEEx escape fix - Path forecast line chart and refractivity gradient unit fix - Float.round/2 crash fix on clear-terrain diffraction loss Drop the env restriction on igniter so it's available to the prod build as well. `runtime: false` keeps it out of the release bundle so there's no runtime bloat, it's strictly a compile-time build tool for the live_table dep. Verified locally with a clean `_build/prod` + `MIX_ENV=prod mix deps.compile` (all 54 deps including live_table now build) and the full test suite still passes. --- mix.exs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index d2959f3a..c749bdef 100644 --- a/mix.exs +++ b/mix.exs @@ -85,7 +85,12 @@ defmodule Microwaveprop.MixProject do {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:live_table, "~> 0.4.1"}, {:sutra_ui, "~> 0.3.0"}, - {:igniter, "~> 0.7", only: [:dev, :test], runtime: false} + # Required as a compile-time build dependency for live_table; its mix + # tasks (lib/mix/tasks/live_table.gen.live.ex, live_table.install.ex) + # unconditionally `use Igniter.Mix.Task` so the dep has to exist in + # every env live_table is compiled in, not just dev/test. runtime: false + # keeps it out of the release bundle. + {:igniter, "~> 0.7", runtime: false} ] end