Upgrade deps and fix all Elixir 1.19 compile errors/warnings#7
Merged
badubizzle merged 6 commits intomasterfrom Mar 4, 2026
Merged
Upgrade deps and fix all Elixir 1.19 compile errors/warnings#7badubizzle merged 6 commits intomasterfrom
badubizzle merged 6 commits intomasterfrom
Conversation
Co-authored-by: badubizzle <1519511+badubizzle@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update Elixir to version 1.19 in project and CI
Update Elixir to 1.19
Mar 4, 2026
Co-authored-by: badubizzle <1519511+badubizzle@users.noreply.github.com>
Copilot
AI
changed the title
Update Elixir to 1.19
ci: upgrade deprecated actions/cache and actions/checkout from v2 to v4
Mar 4, 2026
Co-authored-by: badubizzle <1519511+badubizzle@users.noreply.github.com>
Copilot
AI
changed the title
ci: upgrade deprecated actions/cache and actions/checkout from v2 to v4
ci: fix OTP install failure by upgrading deprecated GitHub Actions
Mar 4, 2026
Co-authored-by: badubizzle <1519511+badubizzle@users.noreply.github.com>
Co-authored-by: badubizzle <1519511+badubizzle@users.noreply.github.com>
Copilot
AI
changed the title
ci: fix OTP install failure by upgrading deprecated GitHub Actions
Upgrade deps and fix all Elixir 1.19 compile errors/warnings
Mar 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The project was pinned to old dependency versions incompatible with Elixir 1.19, and the codebase had several errors and warnings introduced by Elixir 1.19's stricter type inference, protocol derivation rules, and removed/deprecated APIs.
Dependency updates (
mix.exs+ deletedmix.lock)table_rex ~> 3.0.0→~> 3.1(removed patch-precision lock)ecto_sql ~> 3.0→~> 3.10postgrex >= 0.0.0→~> 0.17jason ~> 1.2→~> 1.4libgraph ~> 0.7→~> 0.13libcluster ~> 3.2→~> 3.3credo ~> 1.5→~> 1.7Compile error fix
Elixir 1.19 raises
ArgumentErrorwhen:__struct__appears in@deriveexcept/only lists — it is now an implicit field not subject to filtering:Type inference warnings (new in 1.19)
Elixir 1.19's type system flags struct updates where the variable isn't proven to be a struct at compile time. Fixed by adding pattern matches at binding sites:
Same pattern applied across
dag.ex(update_graph/2,add_dependency/3,clear_failed_tasks_runs/1) andserver.ex(multiplehandle_*callbacks andstart_workers/2). Function head patterns also tightened from%{status: status}to%DAG{status: status} = dag.Other fixes
tracker.ex:handle_call/3was returning{:noreply, state}(caller would hang forever) →{:reply, :ok, state}file_store.ex: added missing@impl trueonget_dag/2; silenced unused rescue variablee→_dag.ex: removed duplicate@status_init :initmodule attributeserver.ex: removed dead@registry DAGRegisterattributeWarning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
api.hex.pm/usr/bin/curl curl -sv --max-time 5 REDACTED t/erlang/27/lib/erlang ebin /bin/sh APP=common_test TESTROOT=/opt/er--norc update /bin/sh -c \ if test -f vsn.mk; theninfo/diameter_info.erl /otp_src_27.3/bootstrap/lib/erl_/opt/erlang/27/lib/erlang/lib/diameter-2.4.1/src/info /autoconf/config.sub ang/27/lib/erlan/opt/erlang/27/lib/erlang/erts-15.2.3/bin/erlexec strap/lib/wx//eb-noshell e /autoconf/config/opt/elixir/1.19.5/bin/../lib(dns block)binaries2.erlang-solutions.com/usr/bin/curl curl -fsSO REDACTED(dns block)builds.hex.pm/usr/bin/curl curl -sL --max-time 10 REDACTED -o /tmp/otp_test2.tar.gz k/_temp/ghcca-node/node/bin/git(dns block)/usr/bin/curl curl -sv --max-time 10 REDACTED(dns block)/opt/erlang/27/lib/erlang/erts-15.2.3/bin/inet_gethost 4(dns block)cdn.hex.pm/usr/bin/getent getent hosts cdn.hex.pm /autoconf/config/opt/erlang/27/lib/erlang/lib/dialyzer-5.3.1/ebin -c src" /opt/erlang/27/lib/erlang/lib/co../ebin/ssl_session_cache_api.beam(dns block)cloudflare-dns.com/usr/bin/curl curl -sL --max-time 5 REDACTED -H accept: application/dns-json /usr/bin/installerl /usr/libexec/gccdirname e_tools//ebin/ob/opt/erlang/27/bin/erl e t.beam ../ebin/eto_erl -c 4004_mip.dia ..typer ypto-5.5.3/priv/escript e beam ../ebin/cdvbash hdlt_client.erl hdlt_logger.erl /bin/sh(dns block)dns.google/usr/bin/curl curl -sL --max-time 5 REDACTED /lib/erlang/lib/ssl-11.2.9/examples"; tar xf -)) /tmp/otp-build/orelease_spec /tmp/otp-build/otp_src_27.3/make/autoconf/config.sub /usr/bin/g++ e_tools//ebin/ru-noshell e /tmp/otp-build/o/opt/elixir/1.19.5/bin/../lib x86_�� otp_test_engine./opt/elixir/1.19.5/bin/../lib/elixir/ebin ypto-5.5.3/priv/-s tp_src_27.3/makeelixir ttpd_acceptor.erbash _test//ebin/ct_m--norc .sub tp_src_27.3/makelocal.hex(dns block)hex.pm/usr/bin/curl curl -s --max-time 5 REDACTED untu4.6_amd64.deb(dns block)/usr/bin/getent getent hosts hex.pm tp_src_27.3/make644 gnu h_connect.hrl ss../ebin/dialyzer.beam 644(dns block)hexdocs.pm/usr/bin/curl curl -sv --max-time 5 REDACTED -c -d "/opt/erlang/27/lib/erlang/lib/edoc-1.3.2/priv" rm /autoconf/config.sub /tmp/otp-build/obash ebin/snmpc_mib_t--norc /usr/bin/mkdir transport.erl transport/diamete -c ver_defs.hrl crashdump_viewer.hrl etop_defs.hrl "/opt/erlang/27/lib/erlang/lib/observer-2.17/srcbash /opt/erlang/27/lib/erlang/lib/inets-9.3.2/ebin tp_src_27.3/make/autoconf/config.sub 3/src" /ebin/xmerl_rege4 /usr/bin/find tp_src_27.3/make/autoconf/config.sub(dns block)https://api.github.com//usr/bin/curl curl -s --max-time 5 -I REDACTED(http block)https://api.github.com/repos/elixir-lang/elixir/releases/usr/bin/curl curl -s --max-time 10 REDACTED(http block)packages.erlang-solutions.com/usr/bin/wget wget -q --timeout=5 REDACTED -O /tmp/esl.asc(dns block)/usr/bin/wget wget -q -O /usr/share/keyrings/erlang-solutions.asc REDACTED(dns block)/usr/lib/apt/methods/https /usr/lib/apt/methods/https(dns block)registry.hex.pm/usr/bin/curl curl -sv --max-time 5 REDACTED t/erlang/27/lib/erlang/releases/27" ; \ if test ! -f "/opt/erlang/27/lib/erlang/releases/27/inerl_child_setup /tmp/otp-build/o/opt/erlang/27/lib/erlang/erts-15.2.3/include/internal/gcc /usr/bin/make rlang/27/lib/erlbash strap/lib/wx//eb--norc ib/erlang/lib/ed--noprofile make rele�� /src" ples /usr/bin/sed g/releases/27/in/usr/bin/git strap/lib/wx//eb--git-dir=.git e sed(dns block)repo.hex.pm/usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4(dns block)/opt/erlang/27/lib/erlang/erts-15.2.3/bin/inet_gethost 4(dns block)/usr/bin/curl curl -sv --max-time 5 REDACTED t/erlang/27/lib/erlang/releases/27" ; \ if test ! -f "/opt/erlang/27/lib/erlang/releases/27/inbash /opt/erlang/27/lib/erlang/lib/common_test-1.27.7../ebin/int.beam(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.