mad icon indicating copy to clipboard operation
mad copied to clipboard

Dependency manager for Erlang

  • Mad [[https://travis-ci.org/s1n4/mad][https://travis-ci.org/s1n4/mad.png?branch=master]]

    Mad is a simple dependency manager for Erlang.

    Mad can read your rebar configuration file, evaluate your rebar script (rebar.config.script), fetch and cache dependencies.

    Moreover, Mad can compile dependencies and your application.

** Requirement

  • Erlang/OTP R14 or newer

** Get it

Clone it and just run ~make~. This builds the standalone escript executable ~mad~, then put it in your ~$PATH~.

** Test it #+BEGIN_SRC $ make test #+END_SRC

** Use it #+BEGIN_SRC $ mad -h Usage: ./mad [-h] [-C [<config_file>]] [--version]

 -h, --help    Displays this message
 -C, --config  Rebar config file to use [default: rebar.config]
 --version     Displays version information

 fetch-deps    Fetches dependencies
 compile-deps  Compiles dependencies
 compile-app   Compiles application
 compile       Compiles dependencies and application

#+END_SRC

** Goals

  • Making a sane dependency manager for Erlang
  • Making a faster build system since dependencies need to be compiled

** Roadmap

*** v0.1 - cache dependencies (DONE) - support ~deps_dir~ ~deps~, ~erl_opts~, ~lib_dirs~, ~sub_dirs~, ~erlydtl_opts~ (DONE) - support compiling ~erl~, ~yrl~, ~xrl~ and assembler files (INCOMPLETE) - support Git, SVN and Mercurial (INCOMPLETE) - support compiling NIFs

*** v0.2 - make a global configuration for overriding cache path and which protocol to fetch repository from (HTTPS, Git or SSH) - make a local configuration for handling dependencies (an alternative for rebar.config)

** Contribute

  • Open up [[https://github.com/s1n4/mad/issues][issues]]
  • Share your thoughts
  • Send pull-request