From 918fc44c1f705b86c2e48b3a55cb20eb3e91667b Mon Sep 17 00:00:00 2001 From: Patrick Olsen Date: Sun, 24 May 2026 16:08:36 +0700 Subject: [PATCH] Relax `:meck` constraint to allow 1.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `meck 0.9.2` no longer compiles on Erlang/OTP 29: the legacy `'catch ...'` syntax in `meck_matcher.erl` was deprecated for years and became a compile-time error in OTP 29. `meck 1.0` (released 2024-12-13) fixes this and has API-compatible `new/2`, `expect/3`, and `passthrough/1` — the only meck APIs flame_on uses (see `lib/flame_on/capture/server.ex`, `lib/flame_on/capture/mock_function.ex`). The constraint is widened to `~> 0.9 or ~> 1.0` so existing users on OTP <= 28 with `meck 0.9.x` already in their lock are unaffected — only OTP 29 users will pick up 1.x. The included `mix.lock` bump moves this repo's pinned `meck` to 1.1.1 so the test suite installs a working version. Tested locally on Elixir 1.20.0-rc.6 / OTP 29.0: $ mix deps.get $ mix test ... 73 passed --- mix.exs | 2 +- mix.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.exs b/mix.exs index 41fe589..b893d74 100644 --- a/mix.exs +++ b/mix.exs @@ -60,7 +60,7 @@ defmodule FlameOn.MixProject do {:mix_test_watch, "~> 1.4", only: :dev, runtime: false}, {:ex_doc, "~> 0.40", only: :dev, runtime: false}, {:ecto, "~> 3.7"}, - {:meck, "~> 0.9.2"}, + {:meck, "~> 0.9 or ~> 1.0"}, {:gettext, "~> 0.21 or ~> 1.0"}, {:jason, "~> 1.0"}, {:phoenix_ecto, "~> 4.7.0"}, diff --git a/mix.lock b/mix.lock index b75a172..987ed3e 100644 --- a/mix.lock +++ b/mix.lock @@ -14,7 +14,7 @@ "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.3", "4252d5d4098da7415c390e847c814bad3764c94a814a0b4245176215615e1035", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "953297c02582a33411ac6208f2c6e55f0e870df7f80da724ed613f10e6706afd"}, - "meck": {:hex, :meck, "0.9.2", "85ccbab053f1db86c7ca240e9fc718170ee5bda03810a6292b5306bf31bae5f5", [:rebar3], [], "hexpm", "81344f561357dc40a8344afa53767c32669153355b626ea9fcbc8da6b3045826"}, + "meck": {:hex, :meck, "1.1.1", "8ca9c1363d982feab8ba9f441dfddadbcba96add9c4501a762568273f06b2af8", [:rebar3], [], "hexpm", "23a51200af1f1c5571633b6fa3e3b121f45d4b553f837bfca387307bd2be95ac"}, "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "mix_test_watch": {:hex, :mix_test_watch, "1.4.0", "d88bcc4fbe3198871266e9d2f00cd8ae350938efbb11d3fa1da091586345adbb", [:mix], [{:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "2b4693e17c8ead2ef56d4f48a0329891e8c2d0d73752c0f09272a2b17dc38d1b"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},