Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow for other Erlang versions #52

Closed
VitorTrin opened this issue May 17, 2021 · 16 comments · Fixed by #71
Closed

Allow for other Erlang versions #52

VitorTrin opened this issue May 17, 2021 · 16 comments · Fixed by #71
Assignees
Labels
enhancement New feature or request

Comments

@VitorTrin
Copy link
Contributor

These images do not allow for a different elixir - erlang combinations, which are crucial, as the versions we use in prod must match with the versions used to build the application. Consider the solution used by hexpm/elixir, that builds a lot of elixir-erlang images

@dokie
Copy link

dokie commented Jun 3, 2021

Yes, since there are breaking changes in many dependent libs on OTP 24 that work fine with Elxiir 1.12.1 and OTP 23.

@VitorTrin What did you pick then for your CircleCI build/test image if not this one?

@VitorTrin
Copy link
Contributor Author

@dokie We are doing the compile and build application steps in the hexpm images and building the image and pushing it in a circleci/buildpack-deps:stable-curl image

@dokie
Copy link

dokie commented Jun 9, 2021

@VitorTrin Also be aware that some of the Hex images contain vulnerabilities which you can find if you usedocker scan against your choices.

@FelicianoTech
Copy link
Contributor

Hey folks, I wanted to chim in here. We don't currently support this due to added complexity and demand. So far this is the first request I'm seeing for this. Everything here who wants this, if you can upvote the first post, that would be a great. Also sharing this Issue around to garner interests from others would help.

I'm curious, if something like this were to be implemented, how many versions of Erlang would you expect to have? For how many Elixir versions would you expect new Erlang versions to land for?

@VitorTrin
Copy link
Contributor Author

The full compatibilty table is here: https://hexdocs.pm/elixir/1.12.1/compatibility-and-deprecations.html
image
If building a script so every combination is too much, at least the oldest suported erlang version and the newest, so people can upgrade one at a time

@mattste
Copy link

mattste commented Jun 25, 2021

Ran into this issue today with our upgrade to Elixir v1.12. I'm investigating switching us over to bob's images since that's what we already use in production.

@jersearls
Copy link

jersearls commented Jul 14, 2021

also ran into this while attempting to upgrade to Elixir v1.12.

@FelicianoTech
Copy link
Contributor

It looks to me that there's a decent demand here. We will get this implemented. I'll follow in the near future with a GitHub Issue detailing how we see this working, and then with a PR beginning to implement it.

@ckoch-cars
Copy link

Bump and cross-posting from a support ticket per Zach Hudson.

There are upstream changes (bug fixes) in OTP 24.0.3 that have not been captured in the CircleCI elixir (V 1.12 images). Specifically one of these fixes is for a bug that dialyzer needs to work correctly.

Please update the version of Erlang/OTP in the circle ci elixir image, or add some additional options for users to select alternate combinations or Elixir and OTP.

@FelicianoTech
Copy link
Contributor

This Issue will be to track the request for multiple Erlang versions. For OTP v24.0.3 specifically, I made this Issue: #58

@john-griffin
Copy link

Specific selection of the OTP version is crucial for us to guarantee CI runs the same as prod.

@eskelley
Copy link

The Elixir 1.10.4 image uses a version of Erlang (22.3.4) with a known issue where the compiler hangs: elixir-lang/elixir#9980 This results in random pipeline failures due to timeouts.

I understand it's not realistic to offer every Elixir-Erlang combination, but would it at least be possible for the 1.10.4 version to use Erlang 22.3.4.1, if not 22.3.4.12?

@FelicianoTech
Copy link
Contributor

Waiting for this upstream issue: CircleCI-Public/cimg-shared#51

@JalexChen JalexChen self-assigned this Mar 30, 2022
@JalexChen JalexChen added the enhancement New feature or request label Mar 30, 2022
@JalexChen
Copy link

this request has been handled and currently waiting on PR to update submodule for multiple erlang version support

@JalexChen
Copy link

Hi @VitorTrin - I just want to give an update here that the feature you requested has been merged and you are able to choose which version you'd like to use. There is currently a PR open that updates the README, but the functionality of gen-dockerfiles for a specific version should generate dockerfiles for specific versions of erlang!

@john-griffin
Copy link

Thanks just tried this and it works great. Any chance you could support patch releases? Seems like it only works up to minor version numbers. We need to be able to specify a specific OTP release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
9 participants