From 5c71205aa39a4fdf02b61d69a07b7a3ae23a30f4 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 7 Feb 2026 12:33:49 -0600 Subject: [PATCH] feat: Pin Elixir 1.19.5 and Erlang 28.3 in Nix flake Add Nix overlay to pin specific versions matching .tool-versions: - Erlang: OTP 28.3 (via erlang_28) - Elixir: 1.19.5-otp-28 (via beam.packages.erlang_28.elixir_1_19) This ensures the Nix build environment matches the asdf-based development setup exactly, providing consistency across all development and build environments. --- flake.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/flake.nix b/flake.nix index b8c69b56..82a91350 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,21 @@ config = { allowUnfree = false; }; + overlays = [ + # Pin specific Elixir and Erlang versions to match .tool-versions + # Elixir 1.19.5-otp-28, Erlang 28.3 + (final: prev: { + # Use Erlang 28 (OTP 28.3) + erlang = prev.erlang_28; + + # Use Elixir 1.19 with Erlang 28 (1.19.5-otp-28) + elixir = prev.beam.packages.erlang_28.elixir_1_19; + + # Ensure beam packages use our pinned versions + # This affects mixRelease and all BEAM-related builds + beamPackages = prev.beam.packages.erlang_28; + }) + ]; }; packages = {