-
Notifications
You must be signed in to change notification settings - Fork 107
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
Upgrade Elixir and OTP in GitHub Workflow #254
Conversation
Codecov Report
@@ Coverage Diff @@
## main #254 +/- ##
==========================================
+ Coverage 36.26% 36.34% +0.08%
==========================================
Files 37 37
Lines 3157 3161 +4
==========================================
+ Hits 1145 1149 +4
Misses 2012 2012
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
Why remove OTP 21? |
.github/workflows/elixir.yml
Outdated
@@ -33,8 +33,8 @@ jobs: | |||
name: Test on Elixir ${{ matrix.elixir_version }} (OTP ${{ matrix.otp_version }}) and ${{ matrix.os }} | |||
strategy: | |||
matrix: | |||
otp_version: ['23.1', '22.3.4.2', '21.3.8.16'] | |||
elixir: ['1.11.1'] | |||
otp_version: ['24.0.1', '23.3.4.1', '22.3.4.19'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As we are supporting Elixir 1.11 we shouldn't remove OTP 21 from matrix, just ignore such set of options.
The discussion is in #253. And Elixir 1.12 requires to run on OTP 22+. That’s why I decide to drop it. Or do you have any suggestions? |
We can exclude only Elixir 1.12 and OTP 21 and still run them - https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-excluding-configurations-from-a-matrix |
@hauleth Thanks for your suggestion. Do you mind if I upgrade to 21.3.8.23? |
Not at all. |
This change do: * Add Elixir 1.12.1 and upgrade 1.11 to latest release. * Add OTP 24.0.1 and upgrade major OTP release to latest release.
The OTP 21 is added back to the CI on both Elixir and OTP workflow. Please kindly review. |
I’ve found similar issue with #253. Not sure why it happens on otp21
|
I thought it was because of rebar3 only being built on recent otp's now (otp-24 dropped deprecated stuff so couldn't use older builds with it). But I Thought 21 was new enough... @ferd ? |
We used the opportunity of clamping down on the rebar3 vs OTP compatibility window to just line up directly with what the OTP team supports all at once rather than doing it progressively, with the rationale that OTP24's JIT would provide enough of an incentive. Versions 3.16.x are 22..24 so far. We can still build and compile on 21, but that's not what ships pre-built. |
@ferd i see in you mentioned in the blog (https://ferd.ca/you-ve-got-to-upgrade-rebar3.html) that 3.15.2 support OTP 19-23. Can we use that one? I just see that setup-beam allow us to set rebar3 version (https://github.com/erlef/setup-beam#matrix-example-rebar3). So if we want to keep otp21, we might set the rebar3 to 3.15.2 to the pipeline and use the latest version for otp 22+. And I notice that erlef change to setup-beam. Do you need me to change it instead of setup-elixir? |
There's no reason it wouldn't work to use 3.15.2 for OTP-21 specifically. We cut the security release on that one specifically to still provide support as far back as posslbe (and eventually added 13.3.x with user contribs as well for people either needing older behaviour or OTP-18). For a while this will be plenty, but over time the differences may accumulate and cause divergences. |
Aaah, 22, not 21. |
rebar3 v3.16.1 ship support OTP 22+, this cause ci fail on OTP 21. Fixes by using rebar3 v3.15.2 with OTP 21 and add it with include matrix instead. In this changes, upgrade OTP 24 from 24.0.1 to 24.0.2 and change setup-elixir to setup-beam instead.
@tsloughter @hauleth I have a fix for OTP 21 issue by using OTP 21 with rebar3 3.15.2 instead. Please kindly review. |
Is it normal that the 4 checks that passed don't contain Erlang? Looking at the checks I can see the following is broken for Erlang: https://github.com/open-telemetry/opentelemetry-erlang/actions/runs/896362703 I think we can't merge this, it appears the CI is broken but still showing as 4 successful checks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CI steps appear to still be broken.
Umm, if i understand it correctly. The run-on empty because I forget adding os into the include. Let me investigate. |
The ci will pass with error empty value on `runs-on`. The root cause is the field `os` needs to add to matrix.include. This change fix this issue.
I've added |
Done, it seems to be running them all now. It seems to be failing about some of the pre-compiled module issues that are common across versions. |
@ferd Thanks for your help. It's because I accidentally change Elixir to 1.12 in Erlang dialyzer which does not require since change to setup-beam. And I found the All of this should fixed in latest changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything seems to work successfully now, let's get this merged!
@hauleth @ferd @tsloughter Thanks for your help. :) |
💚 💙 💜 💛 ❤️ |
This change do: