I recently ran into an issue with an app that is installed in multiple locations needing to warn users when a new version is available.

In Elixir, we put the release version in the Mix file, but Mix is not available in an Elixir release. So, doing something like:

Mix.Project.get().project[:version]

will not work.

The solution is to use the application spec:

:app_name 
|> Application.spec(:vsn) 
|> to_string()