CityBaseInc / airbrake_client

Airbrake client to report errors and exceptions to Airbrake.io.
Other
0 stars 1 forks source link

Rename the app to `:airbrake_client` #10

Closed jdfrens closed 3 years ago

jdfrens commented 3 years ago

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).