[erlang-questions] Dependencies on library applications

Loïc Hoguin essen@REDACTED
Mon Dec 17 15:25:56 CET 2012


On 12/17/2012 03:20 PM, Garrett Smith wrote:
> On Mon, Dec 17, 2012 at 3:05 AM, Loïc Hoguin <essen@REDACTED> wrote:
>
> -snip-
>
>> On 12/17/2012 04:48 AM, Anders Nygren wrote:
>>> In the documentation it says, in
>>> http://www.erlang.org/doc/design_principles/applications.html#id73720
>>> about the .app file
>>> "applications
>>> All applications which must be started before this application is
>>> started. systools uses this list to generate correct boot scripts.
>>> Defaults to [], but note that all applications have dependencies to at
>>> least kernel and stdlib."
>>>
>>> a few years ago I complained about an OTP application that did not
>>> list a library application that it depended on, but did not have to be
>>> started and was told that I was wrong.
>>>
>>> see, http://erlang.org/pipermail/erlang-bugs/2007-April/000333.html
>>> for more details
>>
>>
>> Alright.
>>
>> But, directing my question to OTP guys now, wouldn't it be simpler if we'd
>> list library applications there too? Building releases would be much easier
>> if all dependencies were listed somewhere and it appears this has no
>> negative impact to put them in applications. Correct me if I'm wrong.
>
> Are you not talking about included applications?
>
> http://www.erlang.org/doc/design_principles/included_applications.html

No.

Included applications are normal applications that are included into 
another application's supervision tree directly.

Library applications are applications that do not need to be started 
(like stdlib).

Problem is with the exception of stdlib it's recommended to not put 
library applications in the {applications, [...]} startup dependencies, 
which means there is no way to know all the dependencies of an 
application without some complex analysis of the source. However, if you 
go against current recommendations and put them in the startup 
dependencies (even though they don't need to be started, it still 
works), then everything is much clearer.

But I do not know if there's more concerns than just starting and stopping.

-- 
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu



More information about the erlang-questions mailing list