This seems so much more complex then needed.

I would also question why path is the be all and end all of the
conversation. I could just as easily have different git repos for a
dependency based on environment.

So why not a dead simple change to the way we can assign dependencies and
have fun.

For example - if one were to add an ability to declare deps as a map (which
could easily be reduced back to the exact same format internally so it's as
small a change as possible) - we would be able to do something like this

  def project do
    [
     deps: Map.merge(deps, deps_env)
    ]
  end

  defp deps do
    %{
      dep_x:, {"~> 2.1"}
    }
  end

  defp deps_env do
    case Mix.env do
      :prod -> %{}
      :test -> %{}
      :dev  -> %{
                  dep_x: {git: "https:/xxx", tag: "3.0-dev"},
                  dep_y: {"-> 1.0"}
                }
    end
  end

The merge would override dep_x with the local version in dev (or test or
prod if you wanted) with the exact same format as you would normally
declare it with (assuming the map option).

Doesn't that do everything you would want? More importantly it doesn't set
any "rules" on anything at all - it just allows for very nicely laid out
options.

John

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAPhAwGwvR_n1AHxYPUyqMzML6XRoOmypvDWQzRbGCs3PxbV%2BPg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to