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

Loïc Hoguin essen@REDACTED
Sat Apr 12 16:59:49 CEST 2014

On 04/12/2014 03:39 PM, Fred Hebert wrote:
>> To take a well known example, look at what OTP does. Basically they pull
>> patches, put them in a nightly test build and then depending on the results
>> can decide whether to merge things. Now imagine how faster it could be if
>> when you send a patch to the ssl app you don't have to worry about anything
>> else? It could be tested faster, you would get feedback faster and fix
>> things faster and get it merged faster. Smaller iterations = faster
>> development speed. Now OTP would still need to do nightly test of
>> everything, but they would only need to do so when they bump the version of
>> an included application.
> Right, for patches and fixes, that model is simpler and usually faster.
> Even for big ones within one app, that's usually super flexible.
> But when it comes to bigger coordination -- say the task at hand is
> "improve httpd to have it support SNI", then you *need* to coordinate
> changes across httpd, inets, private_key, ssl, etc. and this is where
> the cognitive load can increase with multiple respositories.

You need to coordinate changes, yes. But it's much easier to do it if 
the repositories are separate. Because you can start by changing 
private_key and then release a new version of that. OTP itself still 
uses the previous version so nothing breaks. Then you can change ssl and 
release a new version of that. Similarly, OTP doesn't break. So on and 
so forth until all the applications are updated. Then you can think of 
bumping the versions used by the OTP release, and you can bump all at 
once and only then make sure it still works with everything else. The 
big difference here is that you didn't need to worry about "the rest of 
OTP" while you were making the changes, only at the very end. So you can 
focus on implementing the new feature and nothing else until it time 
comes to bump the versions used by OTP.

Anyway I get your points, and hopefully one day someone will take a 
serious look at the apps/* layout and make something beautiful.

Loïc Hoguin

More information about the erlang-questions mailing list