Hi everyone, We are working actually on an Elixir project which involves several subprojects. I'd rather prefer to think about like several frameworks and one application which uses modules from those frameworks, and so has compile dependencies on them.
So let's say we have *Model* and *Core* frameworks and then *Presentation* application. Now the strange think happens from time to time (not always, this is a problem) when suddenly when we launch mix deps.get we get following message: Dependencies have diverged: * model ([email protected]:playrz/model.git) the dependency model in mix.exs is overriding a child dependency: > In mix.exs: {:model, nil, [git: "[email protected]:playrz/model.git", tag: "builds/57", manager: :mix]} > In deps/core/mix.exs: {:model, nil, [git: "[email protected]:playrz/model.git", tag: "builds/42"]} However in bitbucket those projects are all correctly tagged, with: Core is tagged builds/40 in bitbucket, Core's mix.exs deps: @common_deps [ {:model, git: "[email protected]:playrz/model.git", tag: "builds/57"}, {:exlager, github: "intellicore/exlager", tag: "r1.2"}, {:logger_lager_backend, "~> 0.0"}, {:tzdata, "~> 0.5"}, {:unit_fun, "~> 0.5"}, {:amnesia, "~> 0.2"}, {:poison, "~> 2.1", override: :true}, # dep overriden from ecto, where it is declared as optional {:gproc, "~> 0.5"}, {:exprof, "~> 0.2"}, {:eflame, ~r/.*/, git: "https://github.com/proger/eflame.git", compile: "rebar compile"}, {:meck, github: "eproxus/meck", tag: "0.8.2", override: true}, {:edown, github: "uwiger/edown", tag: "0.7", override: true}, {:lager, github: "basho/lager", tag: "2.1.0", override: true}, {:elixometer, github: "intellicore/elixometer"}, {:ex_machina, "~> 0.6"}, {:faker, "~> 0.6"} ] defp deps(:test) do [ {:cobertura_cover, "~> 0.9"} ] ++ @common_deps end defp deps(:docs) do [ {:ex_doc, "~> 0.11", only: :docs}, {:earmark, "~> 0.2", only: :docs} ] ++ @common_deps end defp deps(_) do @common_deps end And mix.exs from Presentation (top-level) app: @common_deps [ {:model, git: "[email protected]:playrz/model.git", tag: "builds/57"}, {:core, git: "[email protected]:playrz/core.git", tag: "builds/40"}, {:ex_machina, "~> 0.6"}, {:faker, "~> 0.6"}, {:logger_lager_backend, "~> 0.0"}, {:poison, "~> 2.1", override: true}, {:gproc, "~> 0.5"}, {:timex, "~> 1.0"}, {:erlcloud, "~> 0.13", manager: :rebar3}, {:meck, github: "eproxus/meck", tag: "0.8.2", override: true}, {:edown, github: "uwiger/edown", tag: "0.7", override: true}, {:lager, github: "basho/lager", tag: "2.1.0", override: true} ] defp deps(:test) do [ {:cobertura_cover, "~> 0.9"}, {:temp, "~> 0.4"}, {:exprof, "~> 0.2"}, {:ex_machina, "~> 0.6"}, {:faker, "~> 0.6"} ] ++ @common_deps end defp deps(:docs) do [ {:ex_doc, "~> 0.11", only: :docs}, {:earmark, "~> 0.2", only: :docs} ] ++ @common_deps end defp deps(_) do @common_deps end Could someone explain to me how mix deps.get can get msimatched on the tag of the model dependency ? And more importnatly only from time to time.... We'd like to use Jenkins automated builds but we have issues finding a correct way of handling dependencies. We've already tried to do mix deps.clean --all, or to completely remove the deps and _build directories. Any clues ? Thx -- You received this message because you are subscribed to the Google Groups "elixir-lang-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-talk/7f150965-2465-4ce0-a9f6-67cd09c7fcf7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
