# VersionCheck

[![Build Status](]( [![Hex pm](]( [![ downloads](]( [![Deps Status](]( [![Inline docs](](

This module defines an application and a macro to generate alerts about new
versions of applications in Hex. The messages are shown using `Logger` as a

When starting an app using the function or the `VersionCheck` application you
should see something like:

% iex -S mix
Erlang/OTP 19 [erts-8.1] [source-4cc2ce3] [64-bit] [smp:8:8] [async-threads:10]
[hipe] [kernel-poll:false]

Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)

17:30:42.454 [warn] A new yggdrasil version is available (2.0.8 > 2.0.7)
17:30:42.454 [debug] Using the latest version of :version_check (0.1.0)

## Using VersionCheck

When adding `use VersionCheck` to a module, the module adds the public
function `check_version/0`. If it is called from inside the `start/2`
function of the `Application` behaviour it'll check the current application
version against `` before it starts i.e:

defmodule MyApp do
  use Application
  use VersionCheck, application: :my_app

  def start(_type, _args) do
    import Supervisor.Spec, warn: false


    children = [
    opts = (...)

    Supervisor.start_link(children, opts)

## VersionCheck App

It is also possible to add `VersionCheck` to your required applications in
your `mix.exs` file i.e:

def application do
  [applications: [:version_check]]

This app will check the version of every application started. That's why it
should be the last application in the list.

## Installation

Just add it to your deps:

def deps do
  [{:version_check, "~> 0.1"}]

To use it as an application, ensure it is started before your application and
after all the applications required by your application:

def application do
  [applications: [(...), :version_check]]

## Credits

`VersionCheck` owns its existence to the study and "code borrowing" from
`Credo`'s function that checks for updates.

## Author

Alexander de Sousa.

## License

`Yggdrasil` is released under the MIT License. See the LICENSE file for further