AndyL

AndyL

Elixir 1.9 Release vs Distillery

It looks like Elixir 1.9 Releases are a subset of Distillery. (Is that right?)

When should someone use Elixir 1.9 Releases vs Distillery?

Are the two approaches mutually exclusive? Are there situations where you would want to use both toolsets?

Most Liked

hubertlepicki

hubertlepicki

You want one or another, I think. I was sort of forced to switch to 1.9 releases because stumbled upon bugs with distillery + erlang + elixir in most recent versons. Which is a recurring pattern, and something to expect from external library.

Elixir releases are now internal part of Elixir, which means the chances are they won’t break as much on updating as distillery did. There’s absolutely no blame on distillery side, it’s just that carrying about multiple Elixir versions is obviously more difficult than carrying about one single current Elixir version. So the code base is in several places overcomplicated / bug prone because of that requirement, I suppose.

I was pleasantly surprised with the migration. I am very happy with how runtime config is handled. I kind of miss deploy hooks not being there but easy to work around, and probably for the best.

So in the long run, I think Elixir releases are the way to go for pretty much everyone. I suspect there’ll be a way to extend them with tools built on top of them, rather than distillery soon, so if you need some of the missing functionality you’ll be able to add it this way.

16
Post #3
LostKobrakai

LostKobrakai

Elixir releases are a subset of distillery that’s correct. Currently there’s a bunch of overlap in functionality, as distillery basically had/has to do all the stuff elixir releases do. Especially as it’s still used for elixir <1.9 projects. Distillery also does more than elixir core releases. Most notably is the support for hot code updates in distillery.

As for when to use which: If you’re on elixir 1.9 (possibly without distillery already) I’d use core releases unless you need features only distillery provides. I’ve also heard people in slack note that elixir releases seem smaller than distillery ones, but I cannot confirm that, but might be worth looking into if file size is a concern.

I’d not try to mix them, as they are similar, but also very different: e.g. the cli in bin/ is completely different. Instead of changing distillery though I’d rather hope that distillery’s functionality will over time be extracted in (possibly smaller, more purpose build) new libraries, which hook into core releases using the :steps configuration available. I’m not sure how well this is possible for e.g. hot updates, but I’d expect adding things like build hooks or custom cli commands should be possible this way.

Where Next?

Popular in Questions Top

greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New

Other popular topics Top

WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36432 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54250 245
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement