<div class="gmail_quote">On 18 December 2011 18:56, eigenfunction <span dir="ltr"><<a href="mailto:emeka_1978@yahoo.com">emeka_1978@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi everybody,<br>
I have been doing some erlang programming recently and have always<br>
generated the release manually and never really used neither rebar nor<br>
sinan. It seems like most people in the community have settled for<br>
rebar. Before i spend the next couple of days playing with those<br>
tools, can someone pls give me a quick recap on the differences<br>
between both?<br>
<br></blockquote><div><br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>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.</div><div>
<br></div><div>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.</div><div><br>
</div><div>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 <a href="http://erlang.org/pipermail/erlang-questions/2011-June/059195.html">http://erlang.org/pipermail/erlang-questions/2011-June/059195.html</a>. 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.</div>
<div><br></div><div>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).</div>
<div><br></div><div>Hope that's a useful start - I'm sure lots of others will pipe up about this as it's a popular topic.</div><div><br></div></div>