mix manager: default erlang toolchain constraint is hardcoded to ^26 and can resolve an Elixir/OTP combination that's incompatible #44149
-
How are you running Renovate?A Mend.io-hosted app Which platform you running Renovate on?GitHub.com Which version of Renovate are you using?43.234.1 Please tell us more about your question or problemWhen the https://github.com/renovatebot/renovate/blob/43.234.1/lib/modules/manager/mix/artifacts.ts#L160: toolConstraints: [
{
toolName: 'erlang',
// https://hexdocs.pm/elixir/1.14.5/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
constraint: config.constraints?.erlang ?? '^26',
},
{
toolName: 'elixir',
constraint: config.constraints?.elixir,
},
],The Why it's a problem
For recent Elixir this still happens to work, but Elixir 1.20 requires OTP 27+. The defaults would then resolve newest-Elixir against OTP 26 (an incompatible toolchain) and Possible fixes
Workaround (for anyone hitting this)Set it explicitly: { "constraints": { "erlang": "^27" } }Logs (if relevant)Logs |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
|
OK, I've got a PR ready for (2): #44180
renovate/lib/util/exec/containerbase.ts Lines 67 to 71 in 9d0ddbd Edit: no, that's OK |
Beta Was this translation helpful? Give feedback.
We'll collect dependency updates as part of #44180 - unsure if we'll be safe to update the default major version in a non-major Renovate version, but will discuss with the maintainers when we get the first dependency update. Thanks for flagging!