[erlang-questions] how do you build your releases with/without rebar?

Yuri Lukyanov <>
Wed Apr 16 14:03:14 CEST 2014


What a big and valid question! 34 messages for the moment and counting :)

Well, I can add our story.

In the beginning, we had a single repository for everything. And even
without apps dir. It was a single monster with everything inside the
src dir. At some point, it became obvious that it couldn't go on like
this and we started separating the code into apps. 'apps' directory
looked like a good fit.

Then we came across Riak and its sources. The way they organised their
code seemed so gorgeous. A tiny repository for each application! Super
easy to think of as a separate unit of your system. Different teams
work on different repositories. Independent testing. Ability to open
certain parts of your project to the community. Superb!

And we started a 'big move' to that world. At the beginning,
everything was smooth. Later, we even created a project template that
uses that every-app-is-a-repo structure
(https://github.com/EchoTeam/rebar-templates).

But what we ended up with is what Björn-Egil Dahlberg said above. The
team is divided. Some of us just couldn't stand the growing number of
repositories. The tree of dependencies started to be so big that it
was a nightmare to change anything inside. Imagine that you need to
update, say, lager version. We heavily use lager in all deps. You will
need to update the deps list of one application, then the deps list of
the application which is dependant on the first one, then 10
application which depend on the latter, etc...

At the moment, we are still having different repos for different apps.
But some people are already thinking to put _everything_ in one single
repository. Not only all deps, but all projects as well :)

There is no one-size-fits-all solution. Right, "In the long run,
everything fails".
Just don't be too religious about things. If you think that either
approach is _the_ best, perhaps you just don't have use cases that can
help your approach fail or your project is not big/small enough.


On Thu, Apr 10, 2014 at 11:18 AM, Benoit Chesneau <> wrote:
> Hi all,
>
> I would like to rework the way I am building releases and find a good way to
> handle the inclusion of dependencies in them. I am generally using the easy
> path for now by mostly using rebar to get the dependencies but I wonder what
> others are doing.
>
> How do you get the dependencies, build them and adding them to the release?
> Are you using your own scripts? Using a makefile like some? In that case how
> do you maintain the dependencies list and their upgrades?
>
> Any feedback is appreciated :)
>
> - benoit
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list