Skip to main content

Non-OTP dependencies in (distillery) release

1 min read

Adding Erlang libraries to your Elixir project and having them included in your (Distillery based) release should work the same way as adding any Elixir library. But sometimes you stumble upon a library that does not implement the OTP application behaviour - thus it can not be added to the applications key - and is not automatically detected by Distillery as a runtime dependency.

Frankly I do not know the exact reason for that but digging through the source and documentation I found a way to solve this problem for my case. You need to specify your library with the :load option in your release configuration (rel/config.exs).

release :myapp do
  set version: "0.1.0"
  set applications: [:app_a, :app_b, some_dep: :load]
end>

This defines some_dep as runtime dependency but not being started (OTP).

Hope this saves you some time. =)

No love for SOAP

1 min read

So I had to do some SOAPy work this week and since it is some pre-war tech I had to dive in again. Here is the essence of what I got (from other ppl) :)

Well, SOAP isn't a "modern" specification, so it's only (somewhat) well supported by the technology stacks that were mainstream when the big vendors were pushing WS-Deathstar (Java, .NET) - so all that technology is already in place. (via)

Ohh death star you say? That gives me ...

I have PTSD from my experience with SOAP/WSDL. I'm even having problems typing these words. [...] (via)

No, it could not be that hard. No. Let's ask s/o who actually has build a library around this death star:

Detergent helps make SOAP interactions in Erlang uhh... cleaner (pun totally intended)! (via)

m)