[erlang-questions] how do you build your releases with/without rebar?
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.
More information about the erlang-questions