From 930ec697398517f2b255c5660adf30ac2689ca33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 21 Feb 2025 11:01:36 +0100 Subject: [PATCH] Support --no-listeners in loadpaths --- lib/mix/lib/mix/tasks/deps.loadpaths.ex | 5 ++++- lib/mix/lib/mix/tasks/loadpaths.ex | 1 + lib/mix/test/mix/tasks/compile_test.exs | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/mix/lib/mix/tasks/deps.loadpaths.ex b/lib/mix/lib/mix/tasks/deps.loadpaths.ex index d7daa070738..b8bba13e019 100644 --- a/lib/mix/lib/mix/tasks/deps.loadpaths.ex +++ b/lib/mix/lib/mix/tasks/deps.loadpaths.ex @@ -23,6 +23,7 @@ defmodule Mix.Tasks.Deps.Loadpaths do * `--no-compile` - does not compile even if files require compilation * `--no-deps-check` - does not check or compile deps, only load available ones * `--no-elixir-version-check` - does not check Elixir version + * `--no-listeners` - does not start Mix listeners * `--no-optional-deps` - does not compile or load optional deps """ @@ -71,7 +72,9 @@ defmodule Mix.Tasks.Deps.Loadpaths do # For now we only allow listeners defined in dependencies, so # we start them right after adding adding deps to the path - Mix.PubSub.start_listeners() + if "--no-listeners" not in args do + Mix.PubSub.start_listeners() + end :ok end diff --git a/lib/mix/lib/mix/tasks/loadpaths.ex b/lib/mix/lib/mix/tasks/loadpaths.ex index fffe930f5fc..5d0cc2bc4d8 100644 --- a/lib/mix/lib/mix/tasks/loadpaths.ex +++ b/lib/mix/lib/mix/tasks/loadpaths.ex @@ -21,6 +21,7 @@ defmodule Mix.Tasks.Loadpaths do * `--no-compile` - does not compile dependencies, only check and load them * `--no-deps-check` - does not check dependencies, only load available ones * `--no-elixir-version-check` - does not check Elixir version + * `--no-listeners` - does not start Mix listeners * `--no-optional-deps` - does not compile or load optional deps """ diff --git a/lib/mix/test/mix/tasks/compile_test.exs b/lib/mix/test/mix/tasks/compile_test.exs index 2ecf29cbeb7..088887403d1 100644 --- a/lib/mix/test/mix/tasks/compile_test.exs +++ b/lib/mix/test/mix/tasks/compile_test.exs @@ -389,6 +389,10 @@ defmodule Mix.Tasks.CompileTest do File.write!("src/b.erl", "-module(b).") File.write!("src/c.erl", "-module(c).") + # Ensure we can boot with compilation and listeners if desired + assert mix(["loadpaths", "--no-compile", "--no-listeners"]) == "" + + # Now setup dependencies mix(["deps.compile"]) parent = self()