legendary_core

Build log

nerves_system_rpi4

legendary_core 8.12.0 · fail · run legendary_core-8.12.0-1790974005865
1790 of 1790 lines
1Resolving Hex dependencies...2Resolution completed in 0.669s3Unchanged:4  bamboo 1.6.05  bamboo_smtp 3.0.06  castore 0.1.227  certifi 2.15.08  circular_buffer 1.1.09  cldr_utils 2.29.710  connection 1.1.011  cowboy 2.19.012  cowboy_telemetry 0.4.013  cowlib 2.20.0 VULNERABLE!14    EEF-CVE-2026-43966 (MEDIUM)15    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c16    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/217    https://osv.dev/vulnerability/EEF-CVE-2026-439661819    EEF-CVE-2026-43969 (LOW)20    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5621    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/122    https://osv.dev/vulnerability/EEF-CVE-2026-4396923  db_connection 2.10.224  decimal 2.4.1 VULNERABLE!25    EEF-CVE-2026-32686 (MEDIUM)26    aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v27    Unbounded exponent in decimal enables unauthenticated DoS28    https://osv.dev/vulnerability/EEF-CVE-2026-3268629  ecto 3.11.230  ecto_sql 3.11.331  elixir_make 0.10.032  ex_aws 2.4.433  ex_aws_s3 2.5.934  ex_cldr 2.33.235  ex_prompt 0.2.036  ex_url 1.4.037  expo 1.1.138  fun_with_flags 1.9.039  fun_with_flags_ui 0.8.140  gen_smtp 0.15.041  gettext 0.26.242  hackney 1.25.0 VULNERABLE!43    EEF-CVE-2026-47071 (HIGH)44    aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr45    SOCKS5 TLS upgrade ignores caller timeout in hackney46    https://osv.dev/vulnerability/EEF-CVE-2026-470714748    EEF-CVE-2026-47076 (MEDIUM)49    aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq50    SSRF allowlist bypass via percent-encoded host in hackney51    https://osv.dev/vulnerability/EEF-CVE-2026-470765253    EEF-CVE-2026-47069 (LOW)54    aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw255    CRLF injection in cookie domain/path options in hackney56    https://osv.dev/vulnerability/EEF-CVE-2026-470695758    EEF-CVE-2026-47075 (MEDIUM)59    aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf60    CR/LF injection in query parameter in hackney61    https://osv.dev/vulnerability/EEF-CVE-2026-4707562  idna 6.1.163  interactive_cmd 0.1.464  jason 1.4.565  legendary_core 8.12.066  libcluster 3.5.067  linguist 0.3.268  metrics 1.0.169  mime 2.0.770  mimerl 1.5.071  nerves 2.0.0-pre.272  nerves_discovery 0.1.573  nerves_logging 0.2.474  nerves_runtime 0.13.1375  nerves_system_bbb 2.30.276  nerves_system_br 1.34.477  nerves_system_mangopi_mq_pro 0.17.278  nerves_system_qemu_aarch64 0.4.279  nerves_system_rpi0 2.1.280  nerves_system_rpi4 2.1.281  nerves_system_rpi5 2.1.282  nerves_system_trellis 0.5.083  nerves_system_x86_64 1.34.284  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.185  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.186  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.187  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.188  nerves_toolchain_x86_64_nerves_linux_musl 15.3.189  nerves_uevent 0.1.790  nimble_parsec 1.4.291  oban 2.19.492  parse_trans 3.4.193  phoenix 1.7.2494  phoenix_ecto 4.7.095  phoenix_html 3.3.496  phoenix_live_view 0.18.18 VULNERABLE!97    EEF-CVE-2026-64941 (LOW)98    aka: CVE-2026-64941, GHSA-36m4-rm57-3prf99    Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR100    https://osv.dev/vulnerability/EEF-CVE-2026-64941101  phoenix_pubsub 2.3.0102  phoenix_template 1.0.4103  phoenix_view 2.0.4104  plug 1.20.3105  plug_cowboy 2.9.0106  plug_crypto 2.2.0107  postgrex 0.16.5 VULNERABLE!108    EEF-CVE-2026-32687 (HIGH)109    aka: CVE-2026-32687, GHSA-r73h-97w8-m54h110    SQL injection via channel name in Postgrex.Notifications.listen/3 and unlisten/3111    https://osv.dev/vulnerability/EEF-CVE-2026-32687112113    EEF-CVE-2026-58225 (LOW)114    aka: CVE-2026-58225, GHSA-4mw9-4qgj-m97w115    SQL injection via unescaped dollar-quote in Postgrex.Notifications reconnect replay causes notification denial of service116    https://osv.dev/vulnerability/EEF-CVE-2026-58225117  pow 1.0.39118  property_table 0.3.4119  ranch 2.3.0120  ring_logger 0.11.7121  shorter_maps 2.2.5122  ssl_verify_fun 1.1.7123  sweet_xml 0.7.5124  tablet 0.3.3125  telemetry 1.4.2126  telemetry_metrics 0.6.2127  telemetry_poller 1.3.0128  toolshed 0.5.0129  uboot_env 1.0.2130  unicode_util_compat 0.7.1131  waffle 1.1.10132  websock 0.5.3133  websock_adapter 0.5.9134  yamerl 0.10.0135  yaml_elixir 2.12.2136* Getting legendary_core (Hex package)137* Getting nerves (Hex package)138* Getting ring_logger (Hex package)139* Getting toolshed (Hex package)140* Getting nerves_runtime (Hex package)141* Getting nerves_system_bbb (Hex package)142* Getting nerves_system_mangopi_mq_pro (Hex package)143* Getting nerves_system_qemu_aarch64 (Hex package)144* Getting nerves_system_rpi0 (Hex package)145* Getting nerves_system_rpi4 (Hex package)146* Getting nerves_system_rpi5 (Hex package)147* Getting nerves_system_trellis (Hex package)148* Getting nerves_system_x86_64 (Hex package)149* Getting nerves_system_br (Hex package)150* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)151* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)152* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)153* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)154* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)155* Getting nerves_logging (Hex package)156* Getting nerves_uevent (Hex package)157* Getting uboot_env (Hex package)158* Getting elixir_make (Hex package)159* Getting property_table (Hex package)160* Getting circular_buffer (Hex package)161* Getting interactive_cmd (Hex package)162* Getting nerves_discovery (Hex package)163* Getting tablet (Hex package)164* Getting bamboo (Hex package)165* Getting bamboo_smtp (Hex package)166* Getting ecto_sql (Hex package)167* Getting ex_aws (Hex package)168* Getting ex_aws_s3 (Hex package)169* Getting ex_cldr (Hex package)170* Getting ex_prompt (Hex package)171* Getting ex_url (Hex package)172* Getting fun_with_flags (Hex package)173* Getting fun_with_flags_ui (Hex package)174* Getting gettext (Hex package)175* Getting jason (Hex package)176* Getting libcluster (Hex package)177* Getting linguist (Hex package)178* Getting mime (Hex package)179* Getting oban (Hex package)180* Getting phoenix (Hex package)181* Getting phoenix_ecto (Hex package)182* Getting phoenix_html (Hex package)183* Getting phoenix_live_view (Hex package)184* Getting phoenix_pubsub (Hex package)185* Getting phoenix_template (Hex package)186* Getting phoenix_view (Hex package)187* Getting plug_cowboy (Hex package)188* Getting postgrex (Hex package)189* Getting pow (Hex package)190* Getting shorter_maps (Hex package)191* Getting sweet_xml (Hex package)192* Getting telemetry_metrics (Hex package)193* Getting telemetry_poller (Hex package)194* Getting waffle (Hex package)195* Getting hackney (Hex package)196* Getting certifi (Hex package)197* Getting idna (Hex package)198* Getting metrics (Hex package)199* Getting mimerl (Hex package)200* Getting parse_trans (Hex package)201* Getting ssl_verify_fun (Hex package)202* Getting unicode_util_compat (Hex package)203* Getting telemetry (Hex package)204* Getting ecto (Hex package)205* Getting decimal (Hex package)206* Getting connection (Hex package)207* Getting db_connection (Hex package)208* Getting cowboy (Hex package)209* Getting cowboy_telemetry (Hex package)210* Getting plug (Hex package)211* Getting plug_crypto (Hex package)212* Getting cowlib (Hex package)213* Getting ranch (Hex package)214* Getting castore (Hex package)215* Getting websock_adapter (Hex package)216* Getting websock (Hex package)217* Getting yaml_elixir (Hex package)218* Getting yamerl (Hex package)219* Getting expo (Hex package)220* Getting nimble_parsec (Hex package)221* Getting cldr_utils (Hex package)222* Getting gen_smtp (Hex package)223Found packages with security advisories, see above for details224You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more225==> nerves_system_br226Generated nerves_system_br app227==> connection228Compiling 1 file (.ex)229     warning: using single-quoted strings to represent charlists is deprecated.230     Use ~c"" if you indeed want a charlist or use "" instead.231     You may run "mix format --migrate" to change all single-quoted232     strings to use the ~c sigil and fix this warning.233     │234 553 │         [{:data, [{'State', mod_state}]}]235     │                    ~236     │237     └─ lib/connection.ex:553:20238239     warning: using single-quoted strings to represent charlists is deprecated.240     Use ~c"" if you indeed want a charlist or use "" instead.241     You may run "mix format --migrate" to change all single-quoted242     strings to use the ~c sigil and fix this warning.243     │244 680 │     format = '** Generic server ~p terminating \n' ++245     │              ~246     │247     └─ lib/connection.ex:680:14248249     warning: using single-quoted strings to represent charlists is deprecated.250     Use ~c"" if you indeed want a charlist or use "" instead.251     You may run "mix format --migrate" to change all single-quoted252     strings to use the ~c sigil and fix this warning.253     │254 681 │       '** Last message in was ~p~n' ++ ## No last message255     │       ~256     │257     └─ lib/connection.ex:681:7258259     warning: using single-quoted strings to represent charlists is deprecated.260     Use ~c"" if you indeed want a charlist or use "" instead.261     You may run "mix format --migrate" to change all single-quoted262     strings to use the ~c sigil and fix this warning.263     │264 682 │       '** When Server state == ~p~n' ++265     │       ~266     │267     └─ lib/connection.ex:682:7268269     warning: using single-quoted strings to represent charlists is deprecated.270     Use ~c"" if you indeed want a charlist or use "" instead.271     You may run "mix format --migrate" to change all single-quoted272     strings to use the ~c sigil and fix this warning.273     │274 683 │       '** Reason for termination == ~n** ~p~n'275     │       ~276     │277     └─ lib/connection.ex:683:7278279Generated connection app280==> mime281Compiling 1 file (.ex)282Generated mime app283==> circular_buffer284Compiling 1 file (.ex)285Generated circular_buffer app286==> nerves_compatibility_test287===> Analyzing applications...288===> Compiling gen_smtp289     ┌─ src/gen_smtp_server_session.erl:290     │291 265 │  		case catch Module:code_change(OldVsn, State#state.callbackstate, Extra) of292     │  		     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.293Compile directive 'nowarn_deprecated_catch' can be used to suppress294warnings in selected modules.295296     ┌─ src/gen_smtp_server_session.erl:297     │298 389 │  							crypto:start(), % ensure crypto is started, we're gonna need it299     │  							╰── Warning: crypto:start/0 is deprecated; use application:start(crypto) instead300301302     ┌─ src/gen_smtp_server.erl:303     │304 225 │  	lists:foreach(fun(#listener{socket=S}) -> catch smtp_socket:close(S) end, State#state.listeners),305     │  	                                          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.306Compile directive 'nowarn_deprecated_catch' can be used to suppress307warnings in selected modules.308309310    ┌─ src/gen_smtp_application.erl:311    │312 12 │  start_ok(_App, {error, {already_started, _App}}) -> ok;313    │           ╰── Warning: variable '_App' is bound multiple times in this pattern.314If you mean to ignore this value, use '_' or315a different underscore-prefixed name316317    ┌─ src/gen_smtp_application.erl:318    │319 12 │  start_ok(_App, {error, {already_started, _App}}) -> ok;320    │                                           ╰── Warning: variable '_App' is bound multiple times in this pattern.321If you mean to ignore this value, use '_' or322a different underscore-prefixed name323324325    ┌─ src/smtp_util.erl:326    │327 73 │  	Bin = crypto:hmac(md5, Key, Data),328    │  	      ╰── Warning: crypto:hmac/3 is removed; use crypto:mac/4 instead329330331     ┌─ src/gen_smtp_client.erl:332     │333 620 │  			case catch smtp_socket:to_ssl_client(Socket, proplists:get_value(tls_options, Options, []), 5000) of334     │  			     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.335Compile directive 'nowarn_deprecated_catch' can be used to suppress336warnings in selected modules.337338339==> plug_crypto340Compiling 5 files (.ex)341Generated plug_crypto app342==> nerves_compatibility_test343===> Analyzing applications...344===> Compiling mimerl345==> ex_prompt346Compiling 1 file (.ex)347Generated ex_prompt app348==> nerves_compatibility_test349===> Analyzing applications...350===> Compiling ranch351==> ssl_verify_fun352Compiling 7 files (.erl)353Generated ssl_verify_fun app354==> tablet355Compiling 2 files (.ex)356Generated tablet app357==> elixir_make358Compiling 8 files (.ex)359Generated elixir_make app360==> nerves_logging361 CC kmsg_tailer.o362 LD kmsg_tailer363Compiling 5 files (.ex)364Generated nerves_logging app365warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"366  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2367  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1368  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5369  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2370  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4371  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2372373==> castore374Compiling 1 file (.ex)375Generated castore app376==> nerves_compatibility_test377===> Analyzing applications...378===> Compiling cowlib379==> nerves_discovery380Compiling 5 files (.ex)381Generated nerves_discovery app382==> ring_logger383Compiling 7 files (.ex)384Generated ring_logger app385==> decimal386Compiling 4 files (.ex)387      warning: this clause of defp check_dbl_min_max/1 is never used (or it will always fail/warn when invoked)388      │389 2842 │   defp check_dbl_min_max(%Decimal{coef: :inf} = infinity), do: infinity390      │        ~391      │392      └─ lib/decimal.ex:2842:8: Decimal.check_dbl_min_max/1393394Generated decimal app395==> jason396Compiling 10 files (.ex)397Generated jason app398==> interactive_cmd399Compiling 1 file (.ex)400Generated interactive_cmd app401==> nerves402Compiling 65 files (.ex)403    warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)404    │405  6 │ defmodule Mix.Tasks.Nerves.Init do406    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~407    │408    └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)409410    warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.beam)411    │412  6 │ defmodule Nerves do413    │ ~~~~~~~~~~~~~~~~~~~414    │415    └─ lib/nerves.ex:6: Nerves (module)416417    warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)418    │419  5 │ defmodule Nerves.ArtifactResolver do420    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~421    │422    └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)423424    warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)425    │426  6 │ defmodule Nerves.BuildAction.AppModes do427    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~428    │429    └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)430431    warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)432    │433  5 │ defmodule Nerves.BuildAction.CheckExecutables do434    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~435    │436    └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)437438    warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)439    │440  8 │ defmodule Nerves.BuildAction.Erlinit do441    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~442    │443    └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)444445    warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)446    │447  5 │ defmodule Nerves.BuildAction.Firmware do448    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~449    │450    └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)451452    warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)453    │454  7 │ defmodule Nerves.BuildAction.IExStartupCheck do455    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~456    │457    └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)458459    warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)460    │461  5 │ defmodule Nerves.BuildAction.NervesV1System do462    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~463    │464    └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)465466    warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)467    │468  5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do469    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~470    │471    └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)472473    warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)474    │475  5 │ defmodule Nerves.BuildAction.Rootfs do476    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~477    │478    └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)479480    warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)481    │482  6 │ defmodule Nerves.BuildAction.SortApps do483    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~484    │485    └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)486487    warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)488    │489  5 │ defmodule Nerves.BuildAction.StripAll do490    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~491    │492    └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)493494    warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)495    │496  5 │ defmodule Nerves.BuildAction.Trimmer do497    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~498    │499    └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)500501    warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)502    │503  5 │ defmodule Nerves.BuildPlan do504    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~505    │506    └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)507508    warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)509    │510  5 │ defmodule Nerves.BuildPlan.Checks do511    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~512    │513    └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)514515    warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Container.beam)516    │517  6 │ defmodule Nerves.Container do518    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~519    │520    └─ lib/nerves/container.ex:6: Nerves.Container (module)521522    warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)523    │524  5 │ defmodule Nerves.Fingerprint do525    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~526    │527    └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)528529    warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)530    │531  5 │ defmodule Nerves.MixPackage do532    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~533    │534    └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)535536    warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Paths.beam)537    │538  5 │ defmodule Nerves.Paths do539    │ ~~~~~~~~~~~~~~~~~~~~~~~~~540    │541    └─ lib/nerves/paths.ex:5: Nerves.Paths (module)542543    warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)544    │545  5 │ defmodule Nerves.TargetTuple do546    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~547    │548    └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)549550Generated nerves app551==> nerves_toolchain_aarch64_nerves_linux_gnu552Compiling 1 file (.ex)553Generated nerves_toolchain_aarch64_nerves_linux_gnu app554==> nerves_system_rpi4555Generated nerves_system_rpi4 app556==> nimble_parsec557Compiling 4 files (.ex)558Generated nimble_parsec app559==> nerves_compatibility_test560===> Analyzing applications...561===> Compiling unicode_util_compat562===> Analyzing applications...563===> Compiling idna564===> Analyzing applications...565===> Compiling telemetry566==> libcluster567Compiling 13 files (.ex)568Generated libcluster app569==> telemetry_metrics570Compiling 7 files (.ex)571     warning: unused require Logger572     │573 391 │   require Logger574     │   ~575     │576     └─ lib/telemetry_metrics.ex:391:3577578Generated telemetry_metrics app579==> nerves_compatibility_test580===> Analyzing applications...581===> Compiling telemetry_poller582==> ecto583Compiling 56 files (.ex)584     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead585     │586 297 │   @spec insert(587     │   ~~~~~~~~~~~~~588     │589     └─ lib/ecto/multi.ex:297: Ecto.Multi (module)590591     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead592     │593 338 │   @spec update(t, name, Changeset.t() | fun(Changeset.t()), Keyword.t()) :: t594     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~595     │596     └─ lib/ecto/multi.ex:338: Ecto.Multi (module)597598     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead599     │600 371 │   @spec insert_or_update(t, name, Changeset.t() | fun(Changeset.t()), Keyword.t()) :: t601     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~602     │603     └─ lib/ecto/multi.ex:371: Ecto.Multi (module)604605     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead606     │607 417 │   @spec delete(608     │   ~~~~~~~~~~~~~609     │610     └─ lib/ecto/multi.ex:417: Ecto.Multi (module)611612     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead613     │614 451 │   @spec one(615     │   ~~~~~~~~~~616     │617     └─ lib/ecto/multi.ex:451: Ecto.Multi (module)618619     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead620     │621 482 │   @spec all(622     │   ~~~~~~~~~~623     │624     └─ lib/ecto/multi.ex:482: Ecto.Multi (module)625626     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead627     │628 513 │   @spec exists?(629     │   ~~~~~~~~~~~~~~630     │631     └─ lib/ecto/multi.ex:513: Ecto.Multi (module)632633     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead634     │635 623 │   @spec insert_all(636     │   ~~~~~~~~~~~~~~~~~637     │638     └─ lib/ecto/multi.ex:623: Ecto.Multi (module)639640     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead641     │642 667 │   @spec update_all(643     │   ~~~~~~~~~~~~~~~~~644     │645     └─ lib/ecto/multi.ex:667: Ecto.Multi (module)646647     warning: fun/1 is not valid in typespecs. Either specify fun() or use (... -> return) instead648     │649 712 │   @spec delete_all(t, name, Ecto.Queryable.t() | fun(Ecto.Queryable.t()), Keyword.t()) :: t650     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~651     │652     └─ lib/ecto/multi.ex:712: Ecto.Multi (module)653654     warning: BadStructError.exception/1 is undefined (module BadStructError is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)655     │656 347 │         raise BadStructError, struct: struct, term: data657     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~658     │659     └─ lib/ecto/repo/queryable.ex:347: Ecto.Repo.Queryable.process/4660661Generated ecto app662==> db_connection663Compiling 18 files (.ex)664Generated db_connection app665==> nerves_compatibility_test666===> Analyzing applications...667===> Compiling cowboy668==> expo669Compiling 2 files (.erl)670Compiling 22 files (.ex)671Generated expo app672==> gettext673Compiling 18 files (.ex)674     warning: unused require Gettext.Macros675     │676 594 │   require Gettext.Macros677     │   ~678     │679     └─ lib/gettext.ex:594:3680681     warning: the following clause is redundant:682683         defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)684685     it has type:686687         dynamic(%Expo.Message.Plural{})688689     previous clauses have already matched on the following types:690691         %Expo.Message.Singular{}692         %Expo.Message.Plural{}693694     │695 391 │   defp ensure_empty_msgstr!(%Message.Plural{} = message) do696     │        ~697     │698     └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1699700     warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead701     │702 426 │               Kernel.ParallelCompiler.async(fn ->703     │                                       ~704     │705     └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3706707Generated gettext app708==> phoenix_pubsub709Compiling 12 files (.ex)710Generated phoenix_pubsub app711==> nerves_compatibility_test712===> Analyzing applications...713===> Compiling certifi714==> cldr_utils715Compiling 12 files (.ex)716Generated cldr_utils app717==> ex_cldr718warning: in order to compile .yrl files, you must add "compilers: [:yecc] ++ Mix.compilers()" to the "def project" section of ex_cldr's mix.exs719Compiling 1 file (.yrl)720warning: in order to compile .xrl files, you must add "compilers: [:leex] ++ Mix.compilers()" to the "def project" section of ex_cldr's mix.exs721Compiling 1 file (.xrl)722Compiling 2 files (.erl)723Compiling 41 files (.ex)724    warning: unused require Logger725    │726 89 │     require Logger727    │     ~728    │729    └─ lib/cldr/install.ex:89:5730731    warning: using single-quoted strings to represent charlists is deprecated.732    Use ~c"" if you indeed want a charlist or use "" instead.733    You may run "mix format --migrate" to change all single-quoted734    strings to use the ~c sigil and fix this warning.735    │736 41 │   defmacro sigil_l(locale_name, 'u') do737    │                                 ~738    │739    └─ lib/cldr/language_tag/sigil.ex:41:33740741    warning: unused require Logger742    │743  8 │   require Logger744    │   ~745    │746    └─ lib/cldr/locale/cache.ex:8:3747748Compiling lib/cldr/language_tag/rfc5646_parser.ex (it's taking more than 10s)749    warning: unused require Cldr.Backend.Compiler750    │751 47 │   require Cldr.Backend.Compiler752    │   ~753    │754    └─ lib/cldr.ex:47:3755756Compiling lib/cldr/validity/subdivision.ex (it's taking more than 10s)757Compiling lib/cldr/validity/language.ex (it's taking more than 10s)758     warning: the following clause is redundant:759760         defp encode_key("x0", private_use) when is_list(private_use)761762     it has type:763764         binary(), dynamic(empty_list() or non_empty_list(term(), term()))765766     previous clauses have already matched on the following types:767768         term(), empty_list() or non_empty_list(term(), term())769         term(), {term()}770         term(), {term(), term()}771         term(), {term(), term(), term()}772773     │774 113 │   defp encode_key("x0", private_use) when is_list(private_use) do775     │        ~776     │777     └─ lib/cldr/validity/t.ex:113:8: Cldr.Validity.T.encode_key/2778779    warning: the following clause is redundant:780781        def normalize(nil)782783    it has type:784785        nil786787    previous clauses have already matched on the following types:788789        binary()790        atom()791792    │793 36 │   def normalize(nil) do794    │       ~795    │796    └─ lib/cldr/validity/script.ex:36:7: Cldr.Validity.Script.normalize/1797798     warning: the following clause will never match:799800         {:error, {exception, reason}} ->801802     it is expected to match on type:803804         dynamic(false)805806     type warning found at:807     │808 137 │       {:error, {exception, reason}} ->809     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~810     │811     └─ lib/cldr/config/rbnf_config.ex:137: Cldr.Rbnf.Config.for_locale/1812813     warning: the 1st pattern in clause will never match:814815         nil816817     because it is expected to receive type:818819         dynamic(bitstring())820821     hint: defimpl for BitString requires its callbacks to match exclusively on bitstring()822823     type warning found at:824     │825 335 │     def to_string(nil) do826     │     ~~~~~~~~~~~~~~~~~~~~~827     │828     └─ lib/cldr/language_tag.ex:335: Cldr.LanguageTag.Chars.BitString.to_string/1829830Generated ex_cldr app831==> ex_url832Compiling 12 files (.ex)833    warning: variable "territory" is unused (if the variable is not meant to be used, prefix it with an underscore)834    │835 70 │     defp parse_phone_number(number, territory \\ nil) do836    │                                     ~~~~~~~~~837    │838    └─ lib/url/tel.ex:70:37: URL.Tel.parse_phone_number/2839840    warning: variable "format" is unused (if the variable is not meant to be used, prefix it with an underscore)841    │842 74 │     defp format(%__MODULE__{tel: tel}, format \\ :international) do843    │                                        ~~~~~~844    │845    └─ lib/url/tel.ex:74:40: URL.Tel.format/2846847    warning: function phone_context/1 is unused848    │849 78 │     defp phone_context(_) do850    │          ~851    │852    └─ lib/url/tel.ex:78:10: URL.Tel (module)853854    warning: function parse_phone_number/2 is unused855    │856 70 │     defp parse_phone_number(number, territory \\ nil) do857    │          ~858    │859    └─ lib/url/tel.ex:70:10: URL.Tel (module)860861    warning: function gettext_territory/0 is unused862    │863 98 │     defp gettext_territory do864    │          ~865    │866    └─ lib/url/tel.ex:98:10: URL.Tel (module)867868    warning: function get_territory/0 is unused869    │870 83 │   defp get_territory do871    │        ~872    │873    └─ lib/url/tel.ex:83:8: URL.Tel (module)874875    warning: function cldr_territory/0 is unused876    │877 88 │     defp cldr_territory do878    │          ~879    │880    └─ lib/url/tel.ex:88:10: URL.Tel (module)881882Generated ex_url app883==> linguist884Compiling 5 files (.ex)885Generating Linguist.Cldr for 2 locales named [:en, :und] with a default locale named :en886Generated linguist app887==> plug888Compiling 1 file (.erl)889Compiling 42 files (.ex)890Generated plug app891==> phoenix_html892Compiling 9 files (.ex)893    warning: comparison between distinct types found:894895        id == nil896897    given types:898899        dynamic(not false and not nil and not binary()) == nil900901    where "id" was given the types:902903        # type: dynamic(not false and not nil)904        # from: lib/phoenix_html/form_data.ex:92:8905        id = Keyword.get(opts, :id) || name906907        # type: dynamic(not false and not nil and not binary())908        # from: lib/phoenix_html/form_data.ex:94:12909        is_binary(id)910911    While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false912913    type warning found at:914    │915 94 │     unless is_binary(id) or is_nil(id) do916    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~917    │918    └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2919920    warning: the 1st pattern in clause will never match:921922        60923924    because it is expected to receive type:925926        dynamic(empty_list() or non_empty_list(term(), term()))927928    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())929930    type warning found at:931    │932 56 │   def to_iodata(?<), do: "&lt;"933    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~934    │935    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1936937    warning: the 1st pattern in clause will never match:938939        62940941    because it is expected to receive type:942943        dynamic(empty_list() or non_empty_list(term(), term()))944945    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())946947    type warning found at:948    │949 57 │   def to_iodata(?>), do: "&gt;"950    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~951    │952    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1953954    warning: the 1st pattern in clause will never match:955956        38957958    because it is expected to receive type:959960        dynamic(empty_list() or non_empty_list(term(), term()))961962    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())963964    type warning found at:965    │966 58 │   def to_iodata(?&), do: "&amp;"967    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~968    │969    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1970971    warning: the 1st pattern in clause will never match:972973        34974975    because it is expected to receive type:976977        dynamic(empty_list() or non_empty_list(term(), term()))978979    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())980981    type warning found at:982    │983 59 │   def to_iodata(?"), do: "&quot;"984    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~985    │986    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1987988    warning: the 1st pattern in clause will never match:989990        39991992    because it is expected to receive type:993994        dynamic(empty_list() or non_empty_list(term(), term()))995996    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())997998    type warning found at:999    │1000 60 │   def to_iodata(?'), do: "&#39;"1001    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1002    │1003    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/110041005    warning: the 1st pattern in clause will never match:10061007        {:safe, data}10081009    because it is expected to receive type:10101011        dynamic(empty_list() or non_empty_list(term(), term()))10121013    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())10141015    type warning found at:1016    │1017 76 │   def to_iodata({:safe, data}) do1018    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1019    │1020    └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/110211022    warning: the following clause is redundant:10231024        def to_iodata(other)10251026    it has type:10271028        dynamic(empty_list() or non_empty_list(term(), term()))10291030    previous clauses have already matched on the following types:10311032        non_empty_list(term(), term())1033        empty_list()10341035    │1036 80 │   def to_iodata(other) do1037    │       ~1038    │1039    └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/110401041    warning: the 1st pattern in clause will never match:10421043        h10441045    because it is expected to receive type:10461047        dynamic(empty_list() or non_empty_list(term(), term()))10481049    where "h" was given the type:10501051        # type: integer()1052        # from: lib/phoenix_html/safe.ex:62:251053        is_integer(h)10541055    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())10561057    type warning found at:1058    │1059 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do1060    │                 ~1061    │1062    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/110631064    warning: the 1st pattern in clause will never match:10651066        h10671068    because it is expected to receive type:10691070        dynamic(empty_list() or non_empty_list(term(), term()))10711072    where "h" was given the type:10731074        # type: integer()1075        # from: lib/phoenix_html/safe.ex:66:251076        is_integer(h)10771078    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())10791080    type warning found at:1081    │1082 66 │   def to_iodata(h) when is_integer(h) do1083    │                 ~1084    │1085    └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/110861087    warning: the 1st pattern in clause will never match:10881089        h10901091    because it is expected to receive type:10921093        dynamic(empty_list() or non_empty_list(term(), term()))10941095    where "h" was given the type:10961097        # type: binary()1098        # from: lib/phoenix_html/safe.ex:72:251099        is_binary(h)11001101    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())11021103    type warning found at:1104    │1105 72 │   def to_iodata(h) when is_binary(h) do1106    │                 ~1107    │1108    └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/111091110Generated phoenix_html app1111==> phoenix_template1112Compiling 4 files (.ex)1113     warning: the variable "prefix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1114     │1115 505 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1116     │                             ~1117     │1118     └─ lib/phoenix/template.ex:505:29: Phoenix.Template.unsuffix/211191120Generated phoenix_template app1121==> phoenix_view1122Compiling 1 file (.ex)1123     warning: the variable "prefix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1124     │1125 655 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1126     │                             ~1127     │1128     └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/211291130Generated phoenix_view app1131warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1132  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21133  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11134  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51135  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21136  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41137  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/211381139==> postgrex1140Compiling 64 files (.ex)1141    warning: the variable "positions_bytes" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1142    │1143 52 │     <<positions::binary-size(positions_bytes), remaining_data::binary>> = rest1144    │                              ~1145    │1146    └─ lib/postgrex/extensions/tsvector.ex:52:30: Postgrex.Extensions.TSVector.decode_tsvector_values/111471148    warning: the variable "rest_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1149    │1150 98 │           <<data::size(rest_size)>> = rest1151    │                        ~1152    │1153    └─ lib/postgrex/messages.ex:98:24: Postgrex.Messages.parse/311541155    warning: unused require Postgrex.Messages1156    │1157 55 │   require Postgrex.Messages1158    │   ~1159    │1160    └─ lib/postgrex/query.ex:55:311611162      warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1163      │1164 3201 │       <<body::binary(size), rest::binary>> ->1165      │                      ~1166      │1167      └─ lib/postgrex/protocol.ex:3201:22: Postgrex.Protocol.msg_decode/111681169    warning: the variable "last_pos" (context Postgrex.Extensions.BitString) is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1170    │1171 16 │         <<binary::binary-size(last_pos), last::bits>> = val1172    │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1173    │1174    └─ lib/postgrex/extensions/bit_string.ex:16: Postgrex.DefaultTypes."Elixir.Postgrex.Extensions.BitString"/111751176      warning: the following clause will never match:11771178          {:error, %Postgrex.Error{} = err, s, buffer} ->11791180      because it attempts to match on the result of:11811182          msg_send(%{s | buffer: nil}, msgs, buffer)11831184      which has type:11851186          dynamic(:ok or {:disconnect, term(), term()})11871188      type warning found at:1189      │1190 1128 │       {:error, %Postgrex.Error{} = err, s, buffer} ->1191      │       ~1192      │1193      └─ lib/postgrex/protocol.ex:1128:7: Postgrex.Protocol.handle_simple/311941195      warning: the following clause will never match:11961197          {:error, %Postgrex.Error{} = err, s, buffer} ->11981199      because it attempts to match on the result of:12001201          msg_send(%{s | buffer: nil}, msgs, buffer)12021203      which has type:12041205          dynamic(:ok or {:disconnect, term(), term()})12061207      type warning found at:1208      │1209 1238 │       {:error, %Postgrex.Error{} = err, s, buffer} ->1210      │       ~1211      │1212      └─ lib/postgrex/protocol.ex:1238:7: Postgrex.Protocol.handle_streaming/212131214      warning: a struct for Postgrex.Query is expected on struct update:12151216          %Postgrex.Query{1217            query1218            | param_oids: param_oids,1219              param_formats: param_formats,1220              param_types: param_types1221          }12221223      but got type:12241225          dynamic()12261227      where "query" was given the type:12281229          # type: dynamic()1230          # from: lib/postgrex/protocol.ex:1637:411231          query12321233      when defining the variable "query", you must also pattern match on "%Postgrex.Query{}"12341235      type warning found at:1236      │1237 1640 │       query = %Query{1238      │               ~1239      │1240      └─ lib/postgrex/protocol.ex:1640:15: Postgrex.Protocol.describe_params/312411242      warning: a struct for Postgrex.Query is expected on struct update:12431244          %Postgrex.Query{1245            query1246            | ref: make_ref(),1247              types: types,1248              columns: nil,1249              result_oids: nil,1250              result_formats: [],1251              result_types: nil1252          }12531254      but got type:12551256          dynamic()12571258      where "query" was given the type:12591260          # type: dynamic()1261          # from: lib/postgrex/protocol.ex:1668:411262          query12631264      when defining the variable "query", you must also pattern match on "%Postgrex.Query{}"12651266      type warning found at:1267      │1268 1669 │     query = %Query{1269      │             ~1270      │1271      └─ lib/postgrex/protocol.ex:1669:13: Postgrex.Protocol.describe_result/412721273      warning: a struct for Postgrex.Query is expected on struct update:12741275          %Postgrex.Query{1276            query1277            | ref: make_ref(),1278              types: types,1279              columns: columns,1280              result_oids: result_oids,1281              result_formats: result_formats,1282              result_types: result_types1283          }12841285      but got type:12861287          dynamic()12881289      where "query" was given the type:12901291          # type: dynamic()1292          # from: lib/postgrex/protocol.ex:1682:411293          query12941295      when defining the variable "query", you must also pattern match on "%Postgrex.Query{}"12961297      type warning found at:1298      │1299 1685 │       query = %Query{1300      │               ~1301      │1302      └─ lib/postgrex/protocol.ex:1685:15: Postgrex.Protocol.describe_result/413031304      warning: the following clause will never match:13051306          {:error, %Postgrex.Error{} = err, s, buffer} ->13071308      because it attempts to match on the result of:13091310          msg_send(%{s | buffer: nil}, msgs, buffer)13111312      which has type:13131314          dynamic(:ok or {:disconnect, term(), term()})13151316      type warning found at:1317      │1318 2865 │       {:error, %Postgrex.Error{} = err, s, buffer} ->1319      │       ~1320      │1321      └─ lib/postgrex/protocol.ex:2865:7: Postgrex.Protocol.handle_transaction/313221323Generated postgrex app1324warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1325  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21326  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11327  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51328  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21329  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41330  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/213311332==> ecto_sql1333Compiling 25 files (.ex)1334    warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator1335    │1336 93 │       <<_, unquoted::binary-size(size), _>> = quoted1337    │                                  ~1338    │1339    └─ lib/ecto/adapters/postgres/connection.ex:93:34: Ecto.Adapters.Postgres.Connection.strip_quotes/113401341     warning: unused require Ecto.Query1342     │1343 140 │   require Ecto.Query1344     │   ~1345     │1346     └─ lib/ecto/adapters/tds.ex:140:313471348     warning: unused require Logger1349     │1350 139 │   require Logger1351     │   ~1352     │1353     └─ lib/ecto/adapters/tds.ex:139:313541355     warning: unused require Ecto.Query1356     │1357 107 │   require Ecto.Query1358     │   ~1359     │1360     └─ lib/ecto/migrator.ex:107:313611362      warning: this clause of defp drop_reference_if_exists_expr/3 is never used (or it will always fail/warn when invoked)1363      │1364 1732 │     defp drop_reference_if_exists_expr(_, _, _),1365      │          ~1366      │1367      └─ lib/ecto/adapters/postgres/connection.ex:1732:10: Ecto.Adapters.Postgres.Connection.drop_reference_if_exists_expr/313681369      warning: this clause of defp validate_index_opts!/1 is never used (or it will always fail/warn when invoked)1370      │1371 1558 │   defp validate_index_opts!(opts), do: opts1372      │        ~1373      │1374      └─ lib/ecto/migration.ex:1558:8: Ecto.Migration.validate_index_opts!/113751376     warning: List.zip/1 is deprecated. Use Enum.zip/1 instead1377     │1378 681 │       |> List.zip()1379     │               ~1380     │1381     └─ lib/ecto/adapters/sql.ex:681:15: Ecto.Adapters.SQL.format_table/11382     └─ lib/ecto/adapters/sql.ex:712:15: Ecto.Adapters.SQL.cells/213831384Generated ecto_sql app1385==> fun_with_flags1386Compiling 21 files (.ex)1387    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1388    │1389 28 │     Logger.warn "FunWithFlags: couldn't load flag '#{flag_name}' from storage, falling back to stale cached value from ETS"1390    │            ~1391    │1392    └─ lib/fun_with_flags/store.ex:28:12: FunWithFlags.Store.try_to_use_the_cached_value/313931394Generated fun_with_flags app1395warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1396  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21397  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11398  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51399  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21400  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41401  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214021403==> oban1404Compiling 61 files (.ex)1405     warning: struct MyXQL.Error is undefined (module MyXQL.Error is not available or is yet to be defined)1406     │1407 123 │     error in [DBConnection.ConnectionError, Postgrex.Error, MyXQL.Error] ->1408     │           ~1409     │1410     └─ lib/oban/peers/database.ex:123:11: Oban.Peers.Database.handle_info/214111412     warning: struct MyXQL.Error is undefined (module MyXQL.Error is not available or is yet to be defined)1413     │1414 158 │     error in [DBConnection.ConnectionError, Postgrex.Error, MyXQL.Error] ->1415     │           ~1416     │1417     └─ lib/oban/repo.ex:158:11: Oban.Repo.transaction/414181419Generated oban app1420warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1421  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21422  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11423  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51424  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21425  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41426  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214271428==> phoenix_ecto1429Compiling 7 files (.ex)1430Generated phoenix_ecto app1431==> nerves_compatibility_test1432===> Analyzing applications...1433===> Compiling parse_trans1434==> uboot_env1435Compiling 5 files (.ex)1436Generated uboot_env app1437==> shorter_maps1438Compiling 1 file (.ex)1439     warning: using single-quoted strings to represent charlists is deprecated.1440     Use ~c"" if you indeed want a charlist or use "" instead.1441     You may run "mix format --migrate" to change all single-quoted1442     strings to use the ~c sigil and fix this warning.1443     │1444 192 │   defp modifier([mod], _default) when mod in 'as', do: mod1445     │                                              ~1446     │1447     └─ lib/shorter_maps.ex:192:4614481449    warning: the following clause will never match:14501451        {:error, step, reason} ->14521453    it is expected to match on type:14541455        none()14561457    type warning found at:1458    │1459 84 │       {:error, step, reason} ->1460    │       ~1461    │1462    └─ lib/shorter_maps.ex:84:7: ShorterMaps.do_sigil_m/314631464Generated shorter_maps app1465==> nerves_compatibility_test1466===> Analyzing applications...1467===> Compiling metrics1468===> Analyzing applications...1469===> Compiling hackney1470     ┌─ src/hackney_manager.erl:1471     │1472 114 │    catch ets:delete(?MODULE, Ref),1473     │    ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1474Compile directive 'nowarn_deprecated_catch' can be used to suppress1475warnings in selected modules.14761477     ┌─ src/hackney_manager.erl:1478     │1479 125 │            catch Transport:close(Socket);1480     │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1481Compile directive 'nowarn_deprecated_catch' can be used to suppress1482warnings in selected modules.14831484     ┌─ src/hackney_manager.erl:1485     │1486 129 │            catch Handler:checkin(SocketRef, Socket)1487     │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1488Compile directive 'nowarn_deprecated_catch' can be used to suppress1489warnings in selected modules.14901491     ┌─ src/hackney_manager.erl:1492     │1493 133 │          catch Transport:controlling_process(Socket, self()),1494     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1495Compile directive 'nowarn_deprecated_catch' can be used to suppress1496warnings in selected modules.14971498     ┌─ src/hackney_manager.erl:1499     │1500 134 │          catch Transport:close(Socket),1501     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1502Compile directive 'nowarn_deprecated_catch' can be used to suppress1503warnings in selected modules.15041505     ┌─ src/hackney_manager.erl:1506     │1507 227 │            catch ets:delete(?MODULE, Ref),1508     │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1509Compile directive 'nowarn_deprecated_catch' can be used to suppress1510warnings in selected modules.15111512     ┌─ src/hackney_manager.erl:1513     │1514 255 │    catch ets:delete(?MODULE, Ref),1515     │    ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1516Compile directive 'nowarn_deprecated_catch' can be used to suppress1517warnings in selected modules.15181519     ┌─ src/hackney_manager.erl:1520     │1521 269 │          catch Transport:controlling_process(Socket, self()),1522     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1523Compile directive 'nowarn_deprecated_catch' can be used to suppress1524warnings in selected modules.15251526     ┌─ src/hackney_manager.erl:1527     │1528 270 │          catch Transport:close(Socket),1529     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1530Compile directive 'nowarn_deprecated_catch' can be used to suppress1531warnings in selected modules.15321533     ┌─ src/hackney_manager.erl:1534     │1535 383 │          catch unlink(Stream),1536     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1537Compile directive 'nowarn_deprecated_catch' can be used to suppress1538warnings in selected modules.15391540     ┌─ src/hackney_manager.erl:1541     │1542 416 │        catch ets:delete(?REFS, Ref),1543     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1544Compile directive 'nowarn_deprecated_catch' can be used to suppress1545warnings in selected modules.15461547     ┌─ src/hackney_manager.erl:1548     │1549 426 │        catch ets:delete(?REFS, Ref),1550     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1551Compile directive 'nowarn_deprecated_catch' can be used to suppress1552warnings in selected modules.15531554     ┌─ src/hackney_manager.erl:1555     │1556 470 │    case catch hackney_stream:start_link(StreamTo2, Ref, Client) of1557     │         ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1558Compile directive 'nowarn_deprecated_catch' can be used to suppress1559warnings in selected modules.15601561     ┌─ src/hackney_manager.erl:1562     │1563 487 │           catch Transport:close(Socket),1564     │           ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1565Compile directive 'nowarn_deprecated_catch' can be used to suppress1566warnings in selected modules.15671568     ┌─ src/hackney_manager.erl:1569     │1570 543 │        catch ets:delete(?REFS, Ref),1571     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1572Compile directive 'nowarn_deprecated_catch' can be used to suppress1573warnings in selected modules.15741575     ┌─ src/hackney_manager.erl:1576     │1577 544 │        catch ets:delete(?MODULE, Ref),1578     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1579Compile directive 'nowarn_deprecated_catch' can be used to suppress1580warnings in selected modules.15811582     ┌─ src/hackney_manager.erl:1583     │1584 559 │        catch ets:delete(?REFS, Ref),1585     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1586Compile directive 'nowarn_deprecated_catch' can be used to suppress1587warnings in selected modules.15881589     ┌─ src/hackney_manager.erl:1590     │1591 560 │        catch ets:delete(?MODULE, Ref),1592     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1593Compile directive 'nowarn_deprecated_catch' can be used to suppress1594warnings in selected modules.15951596     ┌─ src/hackney_manager.erl:1597     │1598 618 │        catch unlink(Pid),1599     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1600Compile directive 'nowarn_deprecated_catch' can be used to suppress1601warnings in selected modules.160216031604     ┌─ src/hackney_happy.erl:1605     │1606 101 │    catch exit(Pid, normal),1607     │    ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1608Compile directive 'nowarn_deprecated_catch' can be used to suppress1609warnings in selected modules.16101611     ┌─ src/hackney_happy.erl:1612     │1613 128 │    case (catch inet_res:getbyname(Hostname, Type)) of1614     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1615Compile directive 'nowarn_deprecated_catch' can be used to suppress1616warnings in selected modules.16171618     ┌─ src/hackney_happy.erl:1619     │1620 151 │    case (catch inet:gethostbyname(Hostname, InetType)) of1621     │          ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1622Compile directive 'nowarn_deprecated_catch' can be used to suppress1623warnings in selected modules.162416251626     ┌─ src/hackney_trace.erl:1627     │1628 132 │    (catch io:format(standard_io, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1629     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1630Compile directive 'nowarn_deprecated_catch' can be used to suppress1631warnings in selected modules.16321633     ┌─ src/hackney_trace.erl:1634     │1635 139 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1636     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1637Compile directive 'nowarn_deprecated_catch' can be used to suppress1638warnings in selected modules.16391640     ┌─ src/hackney_trace.erl:1641     │1642 146 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1643     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1644Compile directive 'nowarn_deprecated_catch' can be used to suppress1645warnings in selected modules.16461647     ┌─ src/hackney_trace.erl:1648     │1649 147 │    (catch file:close(Fd)),1650     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1651Compile directive 'nowarn_deprecated_catch' can be used to suppress1652warnings in selected modules.16531654     ┌─ src/hackney_trace.erl:1655     │1656 154 │    (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1657     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1658Compile directive 'nowarn_deprecated_catch' can be used to suppress1659warnings in selected modules.16601661     ┌─ src/hackney_trace.erl:1662     │1663 155 │    (catch file:close(Fd)),1664     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1665Compile directive 'nowarn_deprecated_catch' can be used to suppress1666warnings in selected modules.16671668     ┌─ src/hackney_trace.erl:1669     │1670 161 │    (catch print_hackney_trace(Fd, Sev, Timestamp, Who,1671     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1672Compile directive 'nowarn_deprecated_catch' can be used to suppress1673warnings in selected modules.16741675     ┌─ src/hackney_trace.erl:1676     │1677 165 │    (catch print_trace(Fd, Event)),1678     │     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1679Compile directive 'nowarn_deprecated_catch' can be used to suppress1680warnings in selected modules.168116821683    ┌─ src/hackney_pool.erl:1684    │1685 80 │    case catch gen_server:call(Pool, {checkout, Connection, Requester, RequestRef}, CheckoutTimeout) of1686    │         ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1687Compile directive 'nowarn_deprecated_catch' can be used to suppress1688warnings in selected modules.16891690     ┌─ src/hackney_pool.erl:1691     │1692 101 │                _ = catch hackney_connection:close(Connection, Socket),1693     │                    ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1694Compile directive 'nowarn_deprecated_catch' can be used to suppress1695warnings in selected modules.16961697     ┌─ src/hackney_pool.erl:1698     │1699 130 │            _ = catch hackney_connection:close(Connection, Socket),1700     │                ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1701Compile directive 'nowarn_deprecated_catch' can be used to suppress1702warnings in selected modules.17031704     ┌─ src/hackney_pool.erl:1705     │1706 134 │        catch hackney_connection:close(Connection, Socket),1707     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1708Compile directive 'nowarn_deprecated_catch' can be used to suppress1709warnings in selected modules.17101711     ┌─ src/hackney_pool.erl:1712     │1713 319 │                 catch Transport:close(Socket),1714     │                 ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1715Compile directive 'nowarn_deprecated_catch' can be used to suppress1716warnings in selected modules.17171718     ┌─ src/hackney_pool.erl:1719     │1720 417 │                case catch hackney_connection:controlling_process(Connection, S, self()) of1721     │                     ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1722Compile directive 'nowarn_deprecated_catch' can be used to suppress1723warnings in selected modules.17241725     ┌─ src/hackney_pool.erl:1726     │1727 423 │                    _ = catch hackney_connection:close(Connection, S),1728     │                        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1729Compile directive 'nowarn_deprecated_catch' can be used to suppress1730warnings in selected modules.17311732     ┌─ src/hackney_pool.erl:1733     │1734 444 │        catch hackney_connection:close(Connection, Socket),1735     │        ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1736Compile directive 'nowarn_deprecated_catch' can be used to suppress1737warnings in selected modules.17381739     ┌─ src/hackney_pool.erl:1740     │1741 543 │            _ = (catch hackney_connection:close(Connection, Socket)),1742     │                 ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1743Compile directive 'nowarn_deprecated_catch' can be used to suppress1744warnings in selected modules.174517461747==> bamboo1748Compiling 26 files (.ex)1749    warning: redefining @doc attribute previously set at line 33.17501751    Please remove the duplicate docs. If instead you want to override a previously defined @doc, attach the @doc attribute to a function head (the function signature not followed by any do-block). For example:17521753        @doc """1754        new docs1755        """1756        def deliver(...)17571758    │1759 39 │   @doc "Adds email to `Bamboo.SentEmail`"1760    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1761    │1762    └─ lib/bamboo/adapters/local_adapter.ex:39: Bamboo.LocalAdapter.deliver/217631764     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1765     │1766 276 │     Logger.warn(1767     │            ~1768     │1769     └─ lib/bamboo/mailer.ex:276:12: Bamboo.Mailer.parse_opts/217701771    error: module Plug.Router is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module1772    │1773  2 │   use Plug.Router1774    │   ^^^^^^^^^^^^^^^1775    │1776    └─ lib/bamboo/plug/sent_email_api/sent_email_api_plug.ex:2: Bamboo.SentEmailApiPlug (module)17771778    error: module Plug.Router is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module1779    │1780  2 │   use Plug.Router1781    │   ^^^^^^^^^^^^^^^1782    │1783    └─ lib/bamboo/plug/sent_email_viewer/email_preview_plug.ex:2: Bamboo.SentEmailViewerPlug (module)178417851786== Compilation error in file lib/bamboo/plug/sent_email_api/sent_email_api_plug.ex ==1787** (CompileError) lib/bamboo/plug/sent_email_api/sent_email_api_plug.ex: cannot compile module Bamboo.SentEmailApiPlug (errors have been logged)1788    (elixir 1.20.3) expanding macro: Kernel.use/11789    lib/bamboo/plug/sent_email_api/sent_email_api_plug.ex:2: Bamboo.SentEmailApiPlug (module)1790could not compile dependency :bamboo, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile bamboo --force", update it with "mix deps.update bamboo" or clean it with "mix deps.clean bamboo"