[erlang-questions] erlang package manager

Tim Watson watson.timothy@REDACTED
Mon Dec 19 02:44:50 CET 2011

On 18 December 2011 18:56, eigenfunction <emeka_1978@REDACTED> wrote:

> Hi everybody,
> I have been doing some erlang programming recently and have always
> generated the release manually and never really used neither rebar nor
> sinan. It seems like most people in the community have settled for
> rebar. Before i spend the next couple of days playing with those
> tools, can someone pls give me a quick recap on the differences
> between both?
In terms of building your code, there isn't much difference really. In
terms of package management, there's a big difference. The Erlware tool
chain relies on a custom repository that holds binary (i.e., pre-built)
artefacts and fetches the right ones for your system (based on OTP/erts
version, OS, etc) - this is a good thing IMHO as I like just grabbing a
thing once and not having to worry about the build steps, incompatibilities
in build config, etc. The down side of the Erlware stack is that it hasn't
been heavily adopted, so not that many of the libs/apps you want are
available through the package manager. There are ways around this, but it's
put me off to date.

Now rebar on the other hand, doesn't do *package management* as such. It
has a facility for fetching dependencies from the internet using version
control tools (git, mercurial, subversion, bazaar) and puts these into a
local build folder. All the commands you run at the top level basically
recurse into the dependencies folder(s), so running `rebar get-deps
compile` will fetch the stuff the build config needs and compile everything.

There are other tools out there that do package management of sorts, agner
probably being the most heavily adopted, but also there is sutro and epm.
Of these, only agner integrates with rebar.

There appears to be an effort by the erlware guys to produce another
package manager that supports rebar and sinan based builds - they have
repos on github and I'm sure will comment on this.

There is also meant to be a successor to cean coming out soon, which will
probably be quite similar in spirit (support numerous build tools and/or
dependency management strategies) but we heard about it on the list some
time ago and it hasn't materialised yet - see
http://erlang.org/pipermail/erlang-questions/2011-June/059195.html. I do
hope that the major players will collaborate if only to standardise their
configuration handling, as it'd be nice to *write once, install using
anything* as it were.

I have been considering hacking together an alternative dependency manager
for rebar, but I'm waiting to see if cean 2.0 comes out soon and how well
it is adopted (or whether it will fetch stuff from alternative locations
besides the main artefact repository).

Hope that's a useful start - I'm sure lots of others will pipe up about
this as it's a popular topic.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111219/fb4146c5/attachment.htm>

More information about the erlang-questions mailing list