The mismatch between the hex/dependency name (:airbrake_client) and the app name (:airbrake) confuses the runtime system:
Unchecked dependencies for environment test:
* airbrake_client (/Users/jfrens/Code/CityBase/airbrake_client)
could not find an app file at "_build/test/lib/airbrake_client/ebin/airbrake_client.app". Another app file was found in the same directory "_build/test/lib/airbrake_client/ebin/airbrake.app", try changing the dependency name to :airbrake
** (Mix) Can't continue due to errors on dependencies
There must be a solution for this where we keep the two different names, but I can't find it.
If we change the app name to :airbrake_client, then the library and anything using this library will need to update their configs to configure :airbrake_client instead of :airbrake. Conceptually this actually makes more sense: use the same name all around. I was able to make this change with a search-and-replace-in-project on config :airbrake in less than 10 seconds. The runtime system also complains if an app tries to configure :airbrake:
You have configured application :airbrake in your configuration file,
but the application is not available.
This usually means one of:
1. You have not added the application as a dependency in a mix.exs file.
2. You are configuring an application that does not really exist.
Please ensure :airbrake exists or remove the configuration.
I don't think it's necessary to rename the modules (i.e., Airbrake becomes AirbrakeClient).
The mismatch between the hex/dependency name (
:airbrake_client
) and the app name (:airbrake
) confuses the runtime system:There must be a solution for this where we keep the two different names, but I can't find it.
If we change the app name to
:airbrake_client
, then the library and anything using this library will need to update their configs to configure:airbrake_client
instead of:airbrake
. Conceptually this actually makes more sense: use the same name all around. I was able to make this change with a search-and-replace-in-project onconfig :airbrake
in less than 10 seconds. The runtime system also complains if an app tries to configure:airbrake
:I don't think it's necessary to rename the modules (i.e.,
Airbrake
becomesAirbrakeClient
).