diff --git a/README.md b/README.md index 222f1bd2..886a3426 100644 --- a/README.md +++ b/README.md @@ -44,10 +44,17 @@ Applications can be used. ``` elixir {:opentelemetry_api, github: "open-telemetry/opentelemetry-erlang", sparse: -"apps/opentelemetry_api"}, -{:opentelemetry, github: "open-telemetry/opentelemetry-erlang", sparse: "apps/opentelemetry"}, +"apps/opentelemetry_api", override: true}, +{:opentelemetry, github: "open-telemetry/opentelemetry-erlang", sparse: "apps/opentelemetry", override: true}, ``` +The `override: true` is required because the SDK Application, `opentelemetry`, has +the API in its `deps` list of its `rebar.config` as a hex dependency and this will +clash when `mix` tries to resolve the dependencies and fail without the +override. `override: true` is also used on the SDK because the +`opentelemetry_exporter` application depends on it and the API as hex deps so if +it is included the override is necessary. + ### Including in Release In an Erlang project add `opentelemetry` as the first element of the release's applications: diff --git a/apps/opentelemetry/rebar.config b/apps/opentelemetry/rebar.config index 2656fd55..13250b24 100644 --- a/apps/opentelemetry/rebar.config +++ b/apps/opentelemetry/rebar.config @@ -1,2 +1,2 @@ {erl_opts, [debug_info]}. -{deps, []}. +{deps, [opentelemetry_api]}. diff --git a/apps/opentelemetry_exporter/rebar.config b/apps/opentelemetry_exporter/rebar.config index 5f23086a..b003e227 100644 --- a/apps/opentelemetry_exporter/rebar.config +++ b/apps/opentelemetry_exporter/rebar.config @@ -1,5 +1,7 @@ {erl_opts, [debug_info]}. -{deps, [grpcbox]}. +{deps, [grpcbox, + opentelemetry, + opentelemetry_api]}. {grpc, [{protos, ["opentelemetry-proto/opentelemetry/proto/collector/trace/v1"]}, {gpb_opts, [{module_name_prefix, "opentelemetry_exporter_"}, diff --git a/mix.exs b/mix.exs index 5da7c42e..5d43122c 100644 --- a/mix.exs +++ b/mix.exs @@ -11,6 +11,6 @@ defmodule OtelElixirTests.MixProject do def deps do [{:opentelemetry, path: "apps/opentelemetry", only: :test}, - {:opentelemetry_api, path: "apps/opentelemetry_api", only: :test}] + {:opentelemetry_api, path: "apps/opentelemetry_api", only: :test, override: true}] end end