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