Thanks @josevalim
By v1.4 branches I take that to mean all phoenix versions: 1.4.x but obviously that is wrong as I have the following dependency: {:phoenix, "~> 1.4.14"}.
When updating to {:phoenix, git: "https://github.com/phoenixframework/phoenix.git"} I can see that both the function plug or the module plug do not create these implicit compile time dependencies.
In case anyone else is coming across this, the following does still of course cause implicit compile time dependency:
defmodule DeleteWeb.FunctionPlugs do
def user_plug(_, _), do: Delete.Users.get_user()
end
defmodule DeleteWeb.PageController do
use DeleteWeb, :controller
# plug(DeleteWeb.Plugs.User)
# defp user_plug(_, _), do: Delete.Users.get_user()
# plug(:user_plug)
import DeleteWeb.FunctionPlugs, only: [user_plug: 2]
plug(:user_plug)
def index(conn, _params) do
render(conn, "index.html")
end
end
So shared plugs are better to be Module Plugs rather than imported function plugs.






















