Upcoming 1.9 Mix releases and config

Just been reading @josevalim post on the upcoming 1.9 features (http://blog.plataformatec.com.br/2019/04/whats-new-in-elixir-apr-19/)

Is anyone else super excited about these??

I definitely am, and it has already cleared up some confusion for me about how to handle config at build/run time, and releases in general. Really happy to see progress here. :slight_smile:

17 Likes

I am SO EXCITED for these particular improvements! Releases and configuration (in general but more specifically for releases) have been really the only two pain points for me in my time using Elixir. I am so glad Jose and the others have decided to make these two points a priority.

I’m looking forward to blog posts and articles covering these new features :slight_smile:

4 Likes

Basic release handling and the config changes are certainly a big deal. Also the docs for mix release are incredibly well written. I’m just a bit sad my contributions to EEx didn’t make the cut into the blogpost. It’ll allow the use of functions with more than one callback/do/end block allowing to build things like complex components with multiple “slots”.

8 Likes

Ooo really? I’ve been having to do workarounds for that. Awesome!!

Is there an estimate on when 1.9 will be released? I’m also incredibly excited for these features and have been reading the docs for them already.

1 Like

Elixir minor releases are done twice a year, usually around January and July.

10 Likes

Can anybody provide an example how it would looks like, replacing regular config for own app and app’s config for 3rd party libs?

1 Like

Hmm, can you elaborate with a code block about what you mean? I’m intrigued.

1 Like

The original issue holds some examples.

4 Likes

I’ve been waiting for 1.9 to start looking seriously at releases. Right now I build a docker container with MIX_ENV=prod as part of the build process, then I just mix run in production.

One of the things I’m wondering is what about when I want to use mix in production, e.g. to run migrations, or to import a seeds file. My understanding is that mix isn’t available inside a release.

What should I be doing instead?

I haven’t seen any examples of running migrations with the 1.9 releases, but I imagine it would be similar to distillery https://hexdocs.pm/distillery/guides/running_migrations.html. While distillery has some conveniences for this, I haven’t seen anything for 1.9 releases.

But basically setting up the code or a script that runs the same code that the command mix ecto.migrate does (look at the example code I linked).

3 Likes

Just took mix release for a spin, can’t wait for 1.9 to get out. Well done guys!

4 Likes