Build log
nerves_system_rpi4
islands_vue_client 0.1.16 · fail · run islands_vue_client-0.1.16-1790960379549
1897 of 1897 lines
1Resolving Hex dependencies...2Resolution completed in 0.648s3Unchanged:4 circular_buffer 1.1.05 cowboy 2.19.06 cowboy_telemetry 0.3.17 cowlib 2.20.0 VULNERABLE!8 EEF-CVE-2026-43966 (MEDIUM)9 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c10 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/211 https://osv.dev/vulnerability/EEF-CVE-2026-439661213 EEF-CVE-2026-43969 (LOW)14 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5615 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/116 https://osv.dev/vulnerability/EEF-CVE-2026-4396917 dynamic_supervisor_proxy 0.1.7118 elixir_make 0.10.019 expo 1.1.120 file_only_logger 0.2.7021 gen_server_proxy 0.1.7222 gettext 0.26.223 interactive_cmd 0.1.424 io_ansi_plus 0.1.8425 io_ansi_table 1.0.4026 islands_board 0.1.4427 islands_board_cache 0.1.3928 islands_client_island_type 0.1.2929 islands_client_random_guess 0.1.3930 islands_client_state 0.1.2831 islands_coord 0.1.4332 islands_engine 0.2.6533 islands_game 0.1.5334 islands_grid 0.1.4635 islands_guesses 0.1.4036 islands_island 0.1.4237 islands_player 0.1.4238 islands_player_id 0.1.2939 islands_request 0.1.4040 islands_response 0.1.2941 islands_score 0.1.5142 islands_state 0.1.3443 islands_tally 0.1.3044 islands_vue_client 0.1.1645 jason 1.4.546 log_reset 0.1.7047 map_sorter 0.2.7048 mime 2.0.749 nerves 2.0.0-pre.250 nerves_discovery 0.1.551 nerves_logging 0.2.452 nerves_runtime 0.13.1353 nerves_system_bbb 2.30.254 nerves_system_br 1.34.455 nerves_system_mangopi_mq_pro 0.17.256 nerves_system_qemu_aarch64 0.4.257 nerves_system_rpi0 2.1.258 nerves_system_rpi4 2.1.259 nerves_system_rpi5 2.1.260 nerves_system_trellis 0.5.061 nerves_system_x86_64 1.34.262 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.163 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.164 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.165 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.166 nerves_toolchain_x86_64_nerves_linux_musl 15.3.167 nerves_uevent 0.1.768 persist_config 0.4.5669 phoenix 1.5.15 VULNERABLE!70 GHSA-p8f7-22gq-m7j9 (HIGH)71 aka: CVE-2022-4297572 Phoenix before 1.6.14 mishandles check_origin wildcarding73 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j974 phoenix_html 2.14.3 VULNERABLE!75 GHSA-5g2h-9x5v-5h3x (MEDIUM)76 aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q277 phoenix_html allows Cross-site Scripting in HEEx class attributes78 https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x79 phoenix_live_dashboard 0.4.080 phoenix_live_view 0.15.7 VULNERABLE!81 EEF-CVE-2026-64941 (LOW)82 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf83 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR84 https://osv.dev/vulnerability/EEF-CVE-2026-6494185 phoenix_pubsub 2.3.086 plug 1.20.387 plug_cowboy 2.9.088 plug_crypto 1.2.589 property_table 0.3.490 ranch 2.3.091 ring_logger 0.11.792 tablet 0.3.393 telemetry 0.4.394 telemetry_metrics 0.6.295 telemetry_poller 0.5.196 toolshed 0.5.097 uboot_env 1.0.298* Getting islands_vue_client (Hex package)99* Getting nerves (Hex package)100* Getting ring_logger (Hex package)101* Getting toolshed (Hex package)102* Getting nerves_runtime (Hex package)103* Getting nerves_system_bbb (Hex package)104* Getting nerves_system_mangopi_mq_pro (Hex package)105* Getting nerves_system_qemu_aarch64 (Hex package)106* Getting nerves_system_rpi0 (Hex package)107* Getting nerves_system_rpi4 (Hex package)108* Getting nerves_system_rpi5 (Hex package)109* Getting nerves_system_trellis (Hex package)110* Getting nerves_system_x86_64 (Hex package)111* Getting nerves_system_br (Hex package)112* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)113* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)114* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)115* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)116* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)117* Getting nerves_logging (Hex package)118* Getting nerves_uevent (Hex package)119* Getting uboot_env (Hex package)120* Getting elixir_make (Hex package)121* Getting property_table (Hex package)122* Getting circular_buffer (Hex package)123* Getting interactive_cmd (Hex package)124* Getting nerves_discovery (Hex package)125* Getting tablet (Hex package)126* Getting gettext (Hex package)127* Getting islands_client_random_guess (Hex package)128* Getting islands_engine (Hex package)129* Getting jason (Hex package)130* Getting log_reset (Hex package)131* Getting phoenix (Hex package)132* Getting phoenix_html (Hex package)133* Getting phoenix_live_dashboard (Hex package)134* Getting plug_cowboy (Hex package)135* Getting telemetry_metrics (Hex package)136* Getting telemetry_poller (Hex package)137* Getting telemetry (Hex package)138* Getting cowboy (Hex package)139* Getting cowboy_telemetry (Hex package)140* Getting plug (Hex package)141* Getting mime (Hex package)142* Getting plug_crypto (Hex package)143* Getting cowlib (Hex package)144* Getting ranch (Hex package)145* Getting phoenix_live_view (Hex package)146* Getting phoenix_pubsub (Hex package)147* Getting file_only_logger (Hex package)148* Getting persist_config (Hex package)149* Getting dynamic_supervisor_proxy (Hex package)150* Getting gen_server_proxy (Hex package)151* Getting io_ansi_plus (Hex package)152* Getting islands_board (Hex package)153* Getting islands_board_cache (Hex package)154* Getting islands_coord (Hex package)155* Getting islands_game (Hex package)156* Getting islands_grid (Hex package)157* Getting islands_guesses (Hex package)158* Getting islands_island (Hex package)159* Getting islands_player (Hex package)160* Getting islands_player_id (Hex package)161* Getting islands_request (Hex package)162* Getting islands_response (Hex package)163* Getting islands_score (Hex package)164* Getting islands_state (Hex package)165* Getting islands_tally (Hex package)166* Getting io_ansi_table (Hex package)167* Getting map_sorter (Hex package)168* Getting islands_client_island_type (Hex package)169* Getting islands_client_state (Hex package)170* Getting expo (Hex package)171Found packages with security advisories, see above for details172You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more173==> nerves_system_br174Generated nerves_system_br app175==> mime176Compiling 1 file (.ex)177Generated mime app178==> circular_buffer179Compiling 1 file (.ex)180Generated circular_buffer app181==> islands_coord182Compiling 1 file (.ex)183Generated islands_coord app184==> islands_player_id185Compiling 1 file (.ex)186Generated islands_player_id app187==> jason188Compiling 10 files (.ex)189Generated jason app190==> islands_state191Compiling 1 file (.ex)192Generated islands_state app193==> plug_crypto194Compiling 5 files (.ex)195Generated plug_crypto app196==> nerves_compatibility_test197===> Analyzing applications...198===> Compiling ranch199==> tablet200Compiling 2 files (.ex)201Generated tablet app202==> elixir_make203Compiling 8 files (.ex)204Generated elixir_make app205==> nerves_logging206 CC kmsg_tailer.o207 LD kmsg_tailer208Compiling 5 files (.ex)209Generated nerves_logging app210==> islands_island211Compiling 2 files (.ex)212Generated islands_island app213==> islands_board214Compiling 2 files (.ex)215Generated islands_board app216==> islands_guesses217Compiling 1 file (.ex)218Generated islands_guesses app219==> islands_client_island_type220Compiling 1 file (.ex)221Generated islands_client_island_type app222==> nerves_compatibility_test223===> Analyzing applications...224===> Compiling cowlib225==> persist_config226Compiling 1 file (.ex)227Generated persist_config app228==> file_only_logger229Compiling 5 files (.ex)230Generated file_only_logger app231==> log_reset232Compiling 5 files (.ex)233Generated log_reset app234==> dynamic_supervisor_proxy235Compiling 3 files (.ex)236Generated dynamic_supervisor_proxy app237==> gen_server_proxy238Compiling 6 files (.ex)239Generated gen_server_proxy app240==> map_sorter241Compiling 8 files (.ex)242Generated map_sorter app243==> nerves_discovery244Compiling 5 files (.ex)245Generated nerves_discovery app246==> ring_logger247Compiling 7 files (.ex)248Generated ring_logger app249==> interactive_cmd250Compiling 1 file (.ex)251Generated interactive_cmd app252==> nerves253Compiling 65 files (.ex)254 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)255 │256 6 │ defmodule Mix.Tasks.Nerves.Init do257 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~258 │259 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)260261 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.beam)262 │263 6 │ defmodule Nerves do264 │ ~~~~~~~~~~~~~~~~~~~265 │266 └─ lib/nerves.ex:6: Nerves (module)267268 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)269 │270 5 │ defmodule Nerves.ArtifactResolver do271 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~272 │273 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)274275 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)276 │277 6 │ defmodule Nerves.BuildAction.AppModes do278 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~279 │280 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)281282 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)283 │284 5 │ defmodule Nerves.BuildAction.CheckExecutables do285 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~286 │287 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)288289 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)290 │291 8 │ defmodule Nerves.BuildAction.Erlinit do292 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~293 │294 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)295296 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)297 │298 5 │ defmodule Nerves.BuildAction.Firmware do299 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~300 │301 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)302303 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)304 │305 7 │ defmodule Nerves.BuildAction.IExStartupCheck do306 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~307 │308 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)309310 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)311 │312 5 │ defmodule Nerves.BuildAction.NervesV1System do313 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~314 │315 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)316317 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)318 │319 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do320 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~321 │322 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)323324 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)325 │326 6 │ defmodule Nerves.BuildAction.SortApps do327 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~328 │329 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)330331 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)332 │333 5 │ defmodule Nerves.BuildAction.Rootfs do334 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~335 │336 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)337338 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)339 │340 5 │ defmodule Nerves.BuildAction.StripAll do341 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~342 │343 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)344345 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)346 │347 5 │ defmodule Nerves.BuildAction.Trimmer do348 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~349 │350 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)351352 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)353 │354 5 │ defmodule Nerves.BuildPlan do355 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~356 │357 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)358359 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)360 │361 5 │ defmodule Nerves.BuildPlan.Checks do362 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~363 │364 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)365366 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Container.beam)367 │368 6 │ defmodule Nerves.Container do369 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~370 │371 └─ lib/nerves/container.ex:6: Nerves.Container (module)372373 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)374 │375 5 │ defmodule Nerves.Fingerprint do376 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~377 │378 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)379380 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)381 │382 5 │ defmodule Nerves.MixPackage do383 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~384 │385 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)386387 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Paths.beam)388 │389 5 │ defmodule Nerves.Paths do390 │ ~~~~~~~~~~~~~~~~~~~~~~~~~391 │392 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)393394 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)395 │396 5 │ defmodule Nerves.TargetTuple do397 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~398 │399 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)400401Generated nerves app402==> nerves_toolchain_aarch64_nerves_linux_gnu403Compiling 1 file (.ex)404Generated nerves_toolchain_aarch64_nerves_linux_gnu app405==> nerves_system_rpi4406Generated nerves_system_rpi4 app407==> islands_response408Compiling 1 file (.ex)409Generated islands_response app410==> islands_player411Compiling 1 file (.ex)412Generated islands_player app413==> nerves_compatibility_test414===> Analyzing applications...415===> Compiling telemetry416==> telemetry_metrics417Compiling 7 files (.ex)418 warning: unused require Logger419 │420 391 │ require Logger421 │ ~422 │423 └─ lib/telemetry_metrics.ex:391:3424425Generated telemetry_metrics app426==> nerves_compatibility_test427===> Analyzing applications...428===> Compiling telemetry_poller429==> islands_request430Compiling 1 file (.ex)431Generated islands_request app432==> islands_game433Compiling 1 file (.ex)434Generated islands_game app435==> nerves_compatibility_test436===> Analyzing applications...437===> Compiling cowboy438==> expo439Compiling 2 files (.erl)440Compiling 22 files (.ex)441Generated expo app442==> gettext443Compiling 18 files (.ex)444 warning: unused require Gettext.Macros445 │446 594 │ require Gettext.Macros447 │ ~448 │449 └─ lib/gettext.ex:594:3450451 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead452 │453 426 │ Kernel.ParallelCompiler.async(fn ->454 │ ~455 │456 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3457458 warning: the following clause is redundant:459460 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)461462 it has type:463464 dynamic(%Expo.Message.Plural{})465466 previous clauses have already matched on the following types:467468 %Expo.Message.Singular{}469 %Expo.Message.Plural{}470471 │472 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do473 │ ~474 │475 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1476477Generated gettext app478==> phoenix_pubsub479Compiling 12 files (.ex)480Generated phoenix_pubsub app481==> io_ansi_plus482Compiling 1 file (.ex)483Generated io_ansi_plus app484==> islands_grid485Compiling 2 files (.ex)486Generated islands_grid app487==> islands_score488Compiling 1 file (.ex)489Generated islands_score app490==> io_ansi_table491Compiling 23 files (.ex)492Generated io_ansi_table app493==> islands_board_cache494Compiling 5 files (.ex)495Generated islands_board_cache app496==> plug497Compiling 1 file (.erl)498Compiling 42 files (.ex)499Generated plug app500==> phoenix_html501Compiling 8 files (.ex)502 warning: using single-quoted strings to represent charlists is deprecated.503 Use ~c"" if you indeed want a charlist or use "" instead.504 You may run "mix format --migrate" to change all single-quoted505 strings to use the ~c sigil and fix this warning.506 │507 12 │ @anno (if :erlang.system_info(:otp_release) >= '19' do508 │ ~509 │510 └─ lib/phoenix_html/engine.ex:12:50511512 warning: the 1st pattern in clause will never match:513514 60515516 because it is expected to receive type:517518 dynamic(empty_list() or non_empty_list(term(), term()))519520 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())521522 type warning found at:523 │524 56 │ def to_iodata(?<), do: "<"525 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~526 │527 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1528529 warning: the 1st pattern in clause will never match:530531 62532533 because it is expected to receive type:534535 dynamic(empty_list() or non_empty_list(term(), term()))536537 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())538539 type warning found at:540 │541 57 │ def to_iodata(?>), do: ">"542 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~543 │544 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1545546 warning: the 1st pattern in clause will never match:547548 38549550 because it is expected to receive type:551552 dynamic(empty_list() or non_empty_list(term(), term()))553554 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())555556 type warning found at:557 │558 58 │ def to_iodata(?&), do: "&"559 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~560 │561 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1562563 warning: the 1st pattern in clause will never match:564565 34566567 because it is expected to receive type:568569 dynamic(empty_list() or non_empty_list(term(), term()))570571 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())572573 type warning found at:574 │575 59 │ def to_iodata(?"), do: """576 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~577 │578 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1579580 warning: the 1st pattern in clause will never match:581582 39583584 because it is expected to receive type:585586 dynamic(empty_list() or non_empty_list(term(), term()))587588 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())589590 type warning found at:591 │592 60 │ def to_iodata(?'), do: "'"593 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~594 │595 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1596597 warning: the 1st pattern in clause will never match:598599 {:safe, data}600601 because it is expected to receive type:602603 dynamic(empty_list() or non_empty_list(term(), term()))604605 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())606607 type warning found at:608 │609 76 │ def to_iodata({:safe, data}) do610 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~611 │612 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1613614 warning: the following clause is redundant:615616 def to_iodata(other)617618 it has type:619620 dynamic(empty_list() or non_empty_list(term(), term()))621622 previous clauses have already matched on the following types:623624 non_empty_list(term(), term())625 empty_list()626627 │628 80 │ def to_iodata(other) do629 │ ~630 │631 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1632633 warning: the 1st pattern in clause will never match:634635 h636637 because it is expected to receive type:638639 dynamic(empty_list() or non_empty_list(term(), term()))640641 where "h" was given the type:642643 # type: integer()644 # from: lib/phoenix_html/safe.ex:62:25645 is_integer(h)646647 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())648649 type warning found at:650 │651 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do652 │ ~653 │654 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1655656 warning: the 1st pattern in clause will never match:657658 h659660 because it is expected to receive type:661662 dynamic(empty_list() or non_empty_list(term(), term()))663664 where "h" was given the type:665666 # type: integer()667 # from: lib/phoenix_html/safe.ex:66:25668 is_integer(h)669670 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())671672 type warning found at:673 │674 66 │ def to_iodata(h) when is_integer(h) do675 │ ~676 │677 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1678679 warning: the 1st pattern in clause will never match:680681 h682683 because it is expected to receive type:684685 dynamic(empty_list() or non_empty_list(term(), term()))686687 where "h" was given the type:688689 # type: binary()690 # from: lib/phoenix_html/safe.ex:72:25691 is_binary(h)692693 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())694695 type warning found at:696 │697 72 │ def to_iodata(h) when is_binary(h) do698 │ ~699 │700 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1701702Generated phoenix_html app703==> uboot_env704Compiling 5 files (.ex)705Generated uboot_env app706==> property_table707Compiling 8 files (.ex)708Generated property_table app709==> nerves_uevent710 CC uevent.o711 LD uevent712Compiling 5 files (.ex)713Generated nerves_uevent app714==> nerves_runtime715Compiling 14 files (.ex)716Generated nerves_runtime app717==> toolshed718Compiling 5 files (.ex)719Generated toolshed app720==> nerves_compatibility_test721===> Analyzing applications...722===> Compiling cowboy_telemetry723==> plug_cowboy724Compiling 5 files (.ex)725Generated plug_cowboy app726warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"727 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2728 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1729 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5730 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2731 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4732 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2733734==> phoenix735Compiling 66 files (.ex)736 warning: the variable "prefix" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator737 │738 194 │ <<attr::size(prefix)-binary, ":unique">> -> attr739 │ ~740 │741 └─ lib/mix/phoenix/schema.ex:194:20: Mix.Phoenix.Schema.drop_unique/1742743 warning: using single-quoted strings to represent charlists is deprecated.744 Use ~c"" if you indeed want a charlist or use "" instead.745 You may run "mix format --migrate" to change all single-quoted746 strings to use the ~c sigil and fix this warning.747 │748 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},749 │ ~750 │751 └─ lib/mix/tasks/phx.gen.cert.ex:258:33752753 warning: using single-quoted strings to represent charlists is deprecated.754 Use ~c"" if you indeed want a charlist or use "" instead.755 You may run "mix format --migrate" to change all single-quoted756 strings to use the ~c sigil and fix this warning.757 │758 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}759 │ ~760 │761 └─ lib/mix/tasks/phx.gen.cert.ex:259:32762763 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead764 │765 55 │ Logger.warn(766 │ ~767 │768 └─ lib/phoenix/code_reloader/server.ex:55:20: Phoenix.CodeReloader.Server.handle_call/3769770 warning: unused require Logger771 │772 9 │ require Logger773 │ ~774 │775 └─ lib/phoenix/config.ex:9:3776777 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.778779 This error happens when you have function calls without parentheses inside keywords. For example:780781 function(arg, one: nested_call a, b, c)782 function(arg, one: if expr, do: :this, else: :that)783784 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:785786 function(arg, one: if(expr, do: :this, else: :that))787 function(arg, one: nested_call(a, b, c))788789 Ambiguity found at:790 │791 1002 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"792 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~793 │794 └─ lib/phoenix/controller.ex:1002795796 warning: unused require Logger797 │798 240 │ require Logger799 │ ~800 │801 └─ lib/phoenix/endpoint.ex:240:3802803 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead804 │805 1013 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>806 │ ~807 │808 └─ lib/phoenix/controller.ex:1013:14: Phoenix.Controller.warn_if_ajax/1809810 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead811 │812 82 │ Logger.warn "Phoenix.Endpoint.CowboyAdapter is deprecated and it will be removed in next versions. " <>813 │ ~814 │815 └─ lib/phoenix/endpoint/cowboy_adapter.ex:82:12: Phoenix.Endpoint.CowboyAdapter.child_specs/2816817 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead818 │819 71 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")820 │ ~821 │822 └─ lib/phoenix/endpoint/supervisor.ex:71:20: Phoenix.Endpoint.Supervisor.init/1823824 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead825 │826 95 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")827 │ ~828 │829 └─ lib/phoenix/endpoint/supervisor.ex:95:14: Phoenix.Endpoint.Supervisor.init/1830831 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead832 │833 116 │ Logger.warn """834 │ ~835 │836 └─ lib/phoenix/endpoint/supervisor.ex:116:14: Phoenix.Endpoint.Supervisor.pubsub_children/2837838 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead839 │840 166 │ Logger.warn "Phoenix.Endpoint.CowboyHandler is deprecated, please use Phoenix.Endpoint.CowboyAdapter instead"841 │ ~842 │843 └─ lib/phoenix/endpoint/supervisor.ex:166:16: Phoenix.Endpoint.Supervisor.user_adapter/2844845 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead846 │847 170 │ Logger.warn "The :handler option in #{inspect endpoint} is deprecated, please use :adapter instead"848 │ ~849 │850 └─ lib/phoenix/endpoint/supervisor.ex:170:16: Phoenix.Endpoint.Supervisor.user_adapter/2851852 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead853 │854 346 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")855 │ ~856 │857 └─ lib/phoenix/endpoint/supervisor.ex:346:14: Phoenix.Endpoint.Supervisor.build_url/2858859 warning: unused require Phoenix.Endpoint860 │861 6 │ require Phoenix.Endpoint862 │ ~863 │864 └─ lib/phoenix/controller.ex:6:3865866 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 operator867 │868 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix869 │ ~870 │871 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2872873 warning: using single-quoted strings to represent charlists is deprecated.874 Use ~c"" if you indeed want a charlist or use "" instead.875 You may run "mix format --migrate" to change all single-quoted876 strings to use the ~c sigil and fix this warning.877 │878 411 │ @anno (if :erlang.system_info(:otp_release) >= '19' do879 │ ~880 │881 └─ lib/phoenix/router.ex:411:50882883 warning: unused require Phoenix.Endpoint884 │885 19 │ require Phoenix.Endpoint886 │ ~887 │888 └─ lib/phoenix/endpoint/render_errors.ex:19:3889890 warning: using single-quoted strings to represent charlists is deprecated.891 Use ~c"" if you indeed want a charlist or use "" instead.892 You may run "mix format --migrate" to change all single-quoted893 strings to use the ~c sigil and fix this warning.894 │895 8 │ @anno (if :erlang.system_info(:otp_release) >= '19' do896 │ ~897 │898 └─ lib/phoenix/router/helpers.ex:8:50899900 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.901902 This error happens when you have function calls without parentheses inside keywords. For example:903904 function(arg, one: nested_call a, b, c)905 function(arg, one: if expr, do: :this, else: :that)906907 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:908909 function(arg, one: if(expr, do: :this, else: :that))910 function(arg, one: nested_call(a, b, c))911912 Ambiguity found at:913 │914 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """915 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~916 │917 └─ lib/phoenix/router/resource.ex:71918919 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead920 │921 734 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(handler)}" end922 │ ~923 │924 └─ lib/phoenix/socket.ex:734:12: Phoenix.Socket.encode_ignore/2925926 warning: unused require Phoenix.Endpoint927 │928 6 │ require Phoenix.Endpoint929 │ ~930 │931 └─ lib/phoenix/channel/server.ex:6:3932933 warning: unused require Phoenix.Endpoint934 │935 188 │ require Phoenix.Endpoint936 │ ~937 │938 └─ lib/phoenix/socket.ex:188:3939940 warning: unused require Logger941 │942 93 │ require Logger943 │ ~944 │945 └─ lib/phoenix/token.ex:93:3946947 warning: using single-quoted strings to represent charlists is deprecated.948 Use ~c"" if you indeed want a charlist or use "" instead.949 You may run "mix format --migrate" to change all single-quoted950 strings to use the ~c sigil and fix this warning.951 │952 178 │ @anno (if :erlang.system_info(:otp_release) >= '19' do953 │ ~954 │955 └─ lib/phoenix/view.ex:178:50956957 warning: a struct for Plug.Conn is expected on struct update:958959 %Plug.Conn{conn | state: :sent}960961 but got type:962963 dynamic()964965 where "conn" was given the type:966967 # type: dynamic()968 # from: lib/phoenix/endpoint/render_errors.ex:57:17969 conn970971 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"972973 type warning found at:974 │975 61 │ %Plug.Conn{conn | state: :sent}976 │ ~977 │978 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/5979980 warning: a struct for Plug.Conn is expected on struct update:981982 %Plug.Conn{conn | query_params: %{}, params: %{}}983984 but got type:985986 dynamic(%{..., params: %Plug.Conn.Unfetched{}})987988 where "conn" was given the types:989990 # type: dynamic(%{..., params: term()})991 # from: lib/phoenix/endpoint/render_errors.ex:124:17992 conn.params993994 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})995 # from: lib/phoenix/endpoint/render_errors.ex:124:17996 conn.params997998 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"9991000 type warning found at:1001 │1002 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1003 │ ~1004 │1005 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110061007 warning: a struct for Plug.Conn is expected on struct update:10081009 %Plug.Conn{conn | query_params: %{}, params: params}10101011 but got type:10121013 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})10141015 where "conn" was given the types:10161017 # type: dynamic(%{..., params: term()})1018 # from: lib/phoenix/endpoint/render_errors.ex:124:171019 conn.params10201021 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1022 # from: lib/phoenix/endpoint/render_errors.ex:124:171023 conn.params10241025 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10261027 type warning found at:1028 │1029 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1030 │ ~1031 │1032 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110331034 warning: incompatible types given to socket_children/1:10351036 socket_children(mod)10371038 given types:10391040 -dynamic(atom())-10411042 but expected one of:10431044 %{..., __sockets__: term()}10451046 where "mod" was given the types:10471048 # type: dynamic(atom() or binary())1049 # from: lib/phoenix/endpoint/supervisor.ex:64:411050 defaults(otp_app, mod)10511052 # type: dynamic(atom())1053 # from: lib/phoenix/endpoint/supervisor.ex:68:161054 mod.init(:supervisor, env_conf)10551056 type warning found at:1057 │1058 105 │ socket_children(mod) ++1059 │ ~1060 │1061 └─ lib/phoenix/endpoint/supervisor.ex:105:7: Phoenix.Endpoint.Supervisor.init/110621063 warning: a struct for Plug.Conn is expected on struct update:10641065 %Plug.Conn{conn | params: params}10661067 but got type:10681069 dynamic(%{..., params: map()})10701071 where "conn" was given the type:10721073 # type: dynamic(%{..., params: map()})1074 # from: lib/phoenix/controller.ex:1040:171075 Map.get(conn.params, required_key)10761077 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10781079 type warning found at:1080 │1081 1047 │ %Plug.Conn{conn | params: params}1082 │ ~1083 │1084 └─ lib/phoenix/controller.ex:1047:5: Phoenix.Controller.scrub_params/210851086Generated phoenix app1087warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1088 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21089 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11090 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51091 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21092 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41093 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/210941095==> phoenix_live_view1096Compiling 22 files (.ex)1097 warning: unused require Logger1098 │1099 25 │ require Logger1100 │ ~1101 │1102 └─ lib/phoenix_live_view/socket.ex:25:311031104 warning: unused require Phoenix.ChannelTest1105 │1106 141 │ require Phoenix.ChannelTest1107 │ ~1108 │1109 └─ lib/phoenix_live_view/test/live_view_test.ex:141:311101111 warning: unused require Phoenix.ConnTest1112 │1113 140 │ require Phoenix.ConnTest1114 │ ~1115 │1116 └─ lib/phoenix_live_view/test/live_view_test.ex:140:311171118 warning: unused require Phoenix.ChannelTest1119 │1120 4 │ require Phoenix.ChannelTest1121 │ ~1122 │1123 └─ lib/phoenix_live_view/test/upload_client.ex:4:311241125 warning: unused require Logger1126 │1127 6 │ require Logger1128 │ ~1129 │1130 └─ lib/phoenix_live_view/upload_channel.ex:6:311311132 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:11331134 %Phoenix.LiveView.Socket{1135 socket1136 | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1137 }11381139 but got type:11401141 dynamic()11421143 where "socket" was given the type:11441145 # type: dynamic()1146 # from: lib/phoenix_live_view/utils.ex:464:211147 socket11481149 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"11501151 type warning found at:1152 │1153 465 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1154 │ ~1155 │1156 └─ lib/phoenix_live_view/utils.ex:465:5: Phoenix.LiveView.Utils.do_mount_opt/311571158 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:11591160 %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}11611162 but got type:11631164 dynamic()11651166 where "socket" was given the type:11671168 # type: dynamic()1169 # from: lib/phoenix_live_view/utils.ex:468:211170 socket11711172 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"11731174 type warning found at:1175 │1176 469 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1177 │ ~1178 │1179 └─ lib/phoenix_live_view/utils.ex:469:5: Phoenix.LiveView.Utils.do_mount_opt/311801181 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:11821183 %Phoenix.LiveView.Socket{1184 socket1185 | assigns: Map.merge(temp_assigns, socket.assigns),1186 private: Map.put(socket.private, :temporary_assigns, temp_assigns)1187 }11881189 but got type:11901191 dynamic()11921193 where "socket" was given the type:11941195 # type: dynamic()1196 # from: lib/phoenix_live_view/utils.ex:478:211197 socket11981199 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"12001201 type warning found at:1202 │1203 485 │ %Socket{1204 │ ~1205 │1206 └─ lib/phoenix_live_view/utils.ex:485:5: Phoenix.LiveView.Utils.do_mount_opt/312071208 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:12091210 %Phoenix.LiveView.Socket{1211 socket1212 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1213 }12141215 but got type:12161217 dynamic(%{..., assigns: term(), changed: term()})12181219 where "socket" was given the type:12201221 # type: dynamic(%{..., assigns: term(), changed: term()})1222 # from: lib/phoenix_live_view/utils.ex:496:611223 %{assigns: assigns, changed: changed} = socket12241225 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"12261227 type warning found at:1228 │1229 497 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1230 │ ~1231 │1232 └─ lib/phoenix_live_view/utils.ex:497:14: Phoenix.LiveView.Utils.render_assigns/112331234 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1235 │1236 56 │ Logger.disable(self())1237 │ ~1238 │1239 └─ lib/phoenix_live_view/test/client_proxy.ex:56:12: Phoenix.LiveViewTest.ClientProxy.init/112401241 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:12421243 %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}12441245 but got type:12461247 dynamic()12481249 where "entry" was given the type:12501251 # type: dynamic()1252 # from: lib/phoenix_live_view/upload_config.ex:341:281253 entry <- conf.entries12541255 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"12561257 type warning found at:1258 │1259 341 │ | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1260 │ ~1261 │1262 └─ lib/phoenix_live_view/upload_config.ex:341:49: Phoenix.LiveView.UploadConfig.mark_preflighted/112631264 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:12651266 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}12671268 but got type:12691270 dynamic(%{..., rendered: term()})12711272 where "view" was given the type:12731274 # type: dynamic(%{..., rendered: term()})1275 # from: lib/phoenix_live_view/test/client_proxy.ex:600:241276 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)12771278 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"12791280 type warning found at:1281 │1282 601 │ new_view = %ClientProxy{view | rendered: rendered}1283 │ ~1284 │1285 └─ lib/phoenix_live_view/test/client_proxy.ex:601:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/312861287 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:12881289 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}12901291 but got type:12921293 dynamic()12941295 where "entry" was given the type:12961297 # type: dynamic()1298 # from: lib/phoenix_live_view/upload_config.ex:541:301299 entry13001301 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"13021303 type warning found at:1304 │1305 542 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1306 │ ~1307 │1308 └─ lib/phoenix_live_view/upload_config.ex:542:13: Phoenix.LiveView.UploadConfig.put_valid_entry/213091310 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:13111312 %Phoenix.LiveView.UploadEntry{entry | valid?: false}13131314 but got type:13151316 dynamic()13171318 where "entry" was given the type:13191320 # type: dynamic()1321 # from: lib/phoenix_live_view/upload_config.ex:554:321322 entry13231324 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"13251326 type warning found at:1327 │1328 555 │ entry = %UploadEntry{entry | valid?: false}1329 │ ~1330 │1331 └─ lib/phoenix_live_view/upload_config.ex:555:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/313321333 warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead1334 │1335 986 │ Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)1336 │ ~1337 │1338 └─ lib/phoenix_live_view/test/client_proxy.ex:986:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/31339 └─ lib/phoenix_live_view/test/client_proxy.ex:991:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/31340 └─ lib/phoenix_live_view/test/client_proxy.ex:1001:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/31341 └─ lib/phoenix_live_view/test/client_proxy.ex:1010:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/313421343 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:13441345 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}13461347 but got type:13481349 dynamic()13501351 where "entry" was given the type:13521353 # type: dynamic()1354 # from: lib/phoenix_live_view/upload_config.ex:638:421355 entry13561357 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"13581359 type warning found at:1360 │1361 638 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1362 │ ~1363 │1364 └─ lib/phoenix_live_view/upload_config.ex:638:51: Phoenix.LiveView.UploadConfig.cancel_entry/213651366 warning: the following clause is redundant:13671368 def to_iodata(%_{} = struct)13691370 it has type:13711372 dynamic(%Phoenix.LiveView.Rendered{})13731374 previous clauses have already matched on the following types:13751376 %Phoenix.LiveView.Rendered{}13771378 │1379 126 │ def to_iodata(%_{} = struct) do1380 │ ~1381 │1382 └─ lib/phoenix_live_view/engine.ex:126:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/113831384 warning: the 1st pattern in clause will never match:13851386 nil13871388 because it is expected to receive type:13891390 dynamic(%Phoenix.LiveView.Rendered{})13911392 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}13931394 type warning found at:1395 │1396 130 │ def to_iodata(nil) do1397 │ ~~~~~~~~~~~~~~~~~~~~~1398 │1399 └─ lib/phoenix_live_view/engine.ex:130: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/114001401 warning: the following clause is redundant:14021403 def to_iodata(other)14041405 it has type:14061407 dynamic(%Phoenix.LiveView.Rendered{})14081409 previous clauses have already matched on the following types:14101411 %Phoenix.LiveView.Rendered{}14121413 │1414 134 │ def to_iodata(other) do1415 │ ~1416 │1417 └─ lib/phoenix_live_view/engine.ex:134:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/114181419Generated phoenix_live_view app1420warning: Phoenix now requires you to explicitly list which engine to use1421for Phoenix JSON encoding. We recommend everyone to upgrade to1422Jason by setting in your config/config.exs:14231424 config :phoenix, :json_library, Jason14251426And then adding {:jason, "~> 1.0"} as a dependency.14271428If instead you would rather continue using Poison, then add to1429your config/config.exs:14301431 config :phoenix, :json_library, Poison14321433 (phoenix 1.5.15) lib/phoenix.ex:38: Phoenix.start/21434 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/414351436warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1437 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21438 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11439 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51440 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21441 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41442 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214431444==> phoenix_live_dashboard1445Compiling 36 files (.ex)1446 warning: using single-quoted strings to represent charlists is deprecated.1447 Use ~c"" if you indeed want a charlist or use "" instead.1448 You may run "mix format --migrate" to change all single-quoted1449 strings to use the ~c sigil and fix this warning.1450 │1451 41 │ '#Port' ++ rest = :erlang.port_to_list(ref)1452 │ ~1453 │1454 └─ lib/phoenix/live_dashboard/helpers.ex:41:514551456 warning: using single-quoted strings to represent charlists is deprecated.1457 Use ~c"" if you indeed want a charlist or use "" instead.1458 You may run "mix format --migrate" to change all single-quoted1459 strings to use the ~c sigil and fix this warning.1460 │1461 49 │ '#Ref' ++ rest = :erlang.ref_to_list(ref)1462 │ ~1463 │1464 └─ lib/phoenix/live_dashboard/helpers.ex:49:514651466warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1467 lib/phoenix/live_dashboard/pages/home_page.ex:176: Phoenix.LiveDashboard.HomePage.render/114681469warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1470 lib/phoenix/live_dashboard/pages/home_page.ex:184: Phoenix.LiveDashboard.HomePage.render/114711472warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1473 lib/phoenix/live_dashboard/pages/home_page.ex:192: Phoenix.LiveDashboard.HomePage.render/114741475warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1476 lib/phoenix/live_dashboard/pages/os_mon_page.ex:213: Phoenix.LiveDashboard.OSMonPage.render/114771478warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1479 lib/phoenix/live_dashboard/pages/os_mon_page.ex:235: Phoenix.LiveDashboard.OSMonPage.render/114801481 warning: using single-quoted strings to represent charlists is deprecated.1482 Use ~c"" if you indeed want a charlist or use "" instead.1483 You may run "mix format --migrate" to change all single-quoted1484 strings to use the ~c sigil and fix this warning.1485 │1486 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1487 │ ~1488 │1489 └─ lib/phoenix/live_dashboard/system_info.ex:397:1614901491 warning: using single-quoted strings to represent charlists is deprecated.1492 Use ~c"" if you indeed want a charlist or use "" instead.1493 You may run "mix format --migrate" to change all single-quoted1494 strings to use the ~c sigil and fix this warning.1495 │1496 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1497 │ ~1498 │1499 └─ lib/phoenix/live_dashboard/system_info.ex:397:2815001501 warning: using single-quoted strings to represent charlists is deprecated.1502 Use ~c"" if you indeed want a charlist or use "" instead.1503 You may run "mix format --migrate" to change all single-quoted1504 strings to use the ~c sigil and fix this warning.1505 │1506 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1507 │ ~1508 │1509 └─ lib/phoenix/live_dashboard/system_info.ex:397:4015101511 warning: using single-quoted strings to represent charlists is deprecated.1512 Use ~c"" if you indeed want a charlist or use "" instead.1513 You may run "mix format --migrate" to change all single-quoted1514 strings to use the ~c sigil and fix this warning.1515 │1516 543 │ [{'none', 0, 0}] -> []1517 │ ~1518 │1519 └─ lib/phoenix/live_dashboard/system_info.ex:543:1115201521warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1522 lib/phoenix/live_dashboard/page_live.ex:211: Phoenix.LiveDashboard.PageLive.render_page/315231524warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1525 lib/phoenix/live_dashboard/page_live.ex:236: Phoenix.LiveDashboard.PageLive.live_modal/315261527warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1528 lib/phoenix/live_dashboard/components/nav_bar_component.ex:142: Phoenix.LiveDashboard.NavBarComponent.render_content/315291530warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1531 lib/phoenix/live_dashboard/components/card_usage_component.ex:7: Phoenix.LiveDashboard.CardUsageComponent.render/115321533 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:15341535 Phoenix.LiveView.Helpers.__live_component__(1536 component.__live__(),1537 Phoenix.LiveDashboard.ModalComponent,1538 nil1539 )15401541 given types:15421543 dynamic(), -Phoenix.LiveDashboard.ModalComponent-, nil15441545 but expected one of:15461547 (1548 %{..., kind: :component, module: term()},1549 empty_list() or map() or non_empty_list(term(), term()),1550 term()1551 )15521553 where "component" (context Phoenix.LiveView.Helpers) was given the types:15541555 # type: dynamic(not %Phoenix.LiveView.Socket{})1556 # from: lib/phoenix/live_dashboard/page_live.ex:2361557 component15581559 # type: dynamic(atom())1560 # from: lib/phoenix/live_dashboard/page_live.ex:2361561 component.__live__()15621563 type warning found at:1564 │1565 236 │ live_component(socket, Phoenix.LiveDashboard.ModalComponent, modal_opts)1566 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1567 │1568 └─ lib/phoenix/live_dashboard/page_live.ex:236: Phoenix.LiveDashboard.PageLive.live_modal/315691570 warning: the following clause will never match:15711572 %{__changed__: changed} when track_changes? ->15731574 because it attempts to match on the result of:15751576 assigns15771578 which has type:15791580 dynamic(%{text: term()})15811582 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:15831584 # type: dynamic(true)1585 # from: lib/phoenix/live_dashboard/page_live.ex:3121586 track_changes?15871588 type warning found at:1589 │1590 312 │ ~L"""1591 │ ~~~~~1592 │1593 └─ lib/phoenix/live_dashboard/page_live.ex:312: Phoenix.LiveDashboard.PageLive.maybe_link/315941595 warning: the following clause will never match:15961597 %{__changed__: changed} when track_changes? ->15981599 because it attempts to match on the result of:16001601 assigns16021603 which has type:16041605 dynamic(%{more_info_url: term(), text: term()})16061607 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:16081609 # type: dynamic(true)1610 # from: lib/phoenix/live_dashboard/page_live.ex:3221611 track_changes?16121613 type warning found at:1614 │1615 322 │ ~L"""1616 │ ~~~~~1617 │1618 └─ lib/phoenix/live_dashboard/page_live.ex:322: Phoenix.LiveDashboard.PageLive.maybe_link/316191620 warning: the following clause will never match:16211622 %{__changed__: changed} when track_changes? ->16231624 because it attempts to match on the result of:16251626 assigns16271628 which has type:16291630 dynamic(%{checked_param: binary()})16311632 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:16331634 # type: dynamic(true)1635 # from: lib/phoenix/live_dashboard/pages/request_logger_page.ex:1781636 track_changes?16371638 type warning found at:1639 │1640 178 │ ~L"""1641 │ ~~~~~1642 │1643 └─ lib/phoenix/live_dashboard/pages/request_logger_page.ex:178: Phoenix.LiveDashboard.RequestLoggerPage.autoscroll_checkbox/116441645 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:16461647 Phoenix.LiveView.Helpers.__live_component__(1648 component.__live__(),1649 Phoenix.LiveDashboard.ColorBarComponent,1650 nil1651 )16521653 given types:16541655 dynamic(), -Phoenix.LiveDashboard.ColorBarComponent-, nil16561657 but expected one of:16581659 (1660 %{..., kind: :component, module: term()},1661 empty_list() or map() or non_empty_list(term(), term()),1662 term()1663 )16641665 where "component" (context Phoenix.LiveView.Helpers) was given the types:16661667 # type: dynamic(not %Phoenix.LiveView.Socket{})1668 # from: lib/phoenix/live_dashboard/pages/os_mon_page.ex:1911669 component16701671 # type: dynamic(atom())1672 # from: lib/phoenix/live_dashboard/pages/os_mon_page.ex:1911673 component.__live__()16741675 type warning found at:1676 │1677 191 │ <%= live_component @socket, ColorBarComponent, dom_id: "cpu-#{num_cpu}", data: cpu_usage_sections(usage), title: "CPU #{num_cpu+1}", csp_nonces: @csp_nonces %>1678 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1679 │1680 └─ lib/phoenix/live_dashboard/pages/os_mon_page.ex:191: Phoenix.LiveDashboard.OSMonPage.render/116811682 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:16831684 Phoenix.LiveView.Helpers.__live_component__(1685 component.__live__(),1686 Phoenix.LiveDashboard.ColorBarComponent,1687 nil1688 )16891690 given types:16911692 dynamic(), -Phoenix.LiveDashboard.ColorBarComponent-, nil16931694 but expected one of:16951696 (1697 %{..., kind: :component, module: term()},1698 empty_list() or map() or non_empty_list(term(), term()),1699 term()1700 )17011702 where "component" (context Phoenix.LiveView.Helpers) was given the types:17031704 # type: dynamic(not %Phoenix.LiveView.Socket{})1705 # from: lib/phoenix/live_dashboard/pages/home_page.ex:2061706 component17071708 # type: dynamic(atom())1709 # from: lib/phoenix/live_dashboard/pages/home_page.ex:2061710 component.__live__()17111712 type warning found at:1713 │1714 206 │ <%= live_component @socket, ColorBarComponent, data: memory_usage_sections_percent(@system_usage.memory, @system_usage.memory.total), csp_nonces: @csp_nonces, dom_id: "system_usage_memory_total" %>1715 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1716 │1717 └─ lib/phoenix/live_dashboard/pages/home_page.ex:206: Phoenix.LiveDashboard.HomePage.render/117181719 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:17201721 Phoenix.LiveView.Helpers.__live_component__(1722 component.__live__(),1723 Phoenix.LiveDashboard.ChartComponent,1724 nil1725 )17261727 given types:17281729 dynamic(), -Phoenix.LiveDashboard.ChartComponent-, nil17301731 but expected one of:17321733 (1734 %{..., kind: :component, module: term()},1735 empty_list() or map() or non_empty_list(term(), term()),1736 term()1737 )17381739 where "component" (context Phoenix.LiveView.Helpers) was given the types:17401741 # type: dynamic(not %Phoenix.LiveView.Socket{})1742 # from: lib/phoenix/live_dashboard/pages/metrics_page.ex:761743 component17441745 # type: dynamic(atom())1746 # from: lib/phoenix/live_dashboard/pages/metrics_page.ex:761747 component.__live__()17481749 type warning found at:1750 │1751 76 │ <%= live_component @socket, ChartComponent, id: id, metric: metric %>1752 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1753 │1754 └─ lib/phoenix/live_dashboard/pages/metrics_page.ex:76: Phoenix.LiveDashboard.MetricsPage.render_metrics/117551756 warning: the following clause will never match:17571758 %{__changed__: changed} when track_changes? ->17591760 because it attempts to match on the result of:17611762 assigns17631764 which has type:17651766 dynamic(%{block: term()})17671768 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:17691770 # type: dynamic(true)1771 # from: lib/phoenix/live_dashboard/helpers.ex:2081772 track_changes?17731774 type warning found at:1775 │1776 208 │ ~L"""1777 │ ~~~~~1778 │1779 └─ lib/phoenix/live_dashboard/helpers.ex:208: Phoenix.LiveDashboard.Helpers.hint/117801781 warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1782 │1783 8 │ Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)1784 │ ~1785 │1786 └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/217871788 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1789 │1790 146 │ do: struct.to_string(value)1791 │ ~1792 │1793 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:146:16: Phoenix.LiveDashboard.EctoStatsPage.format/217941795Generated phoenix_live_dashboard app1796==> islands_tally1797Compiling 16 files (.ex)1798Generated islands_tally app1799==> islands_engine1800Compiling 17 files (.ex)1801Generated islands_engine app1802==> islands_client_state1803Compiling 1 file (.ex)1804Generated islands_client_state app1805==> islands_client_random_guess1806Compiling 1 file (.ex)1807Generated islands_client_random_guess app1808warning: the :gettext compiler is no longer required in your mix.exs.18091810Please find the following line in your mix.exs and remove the :gettext entry:18111812 compilers: [..., :gettext, ...] ++ Mix.compilers(),18131814 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11815 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51816 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21817 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41818 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21819 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/518201821==> islands_vue_client1822Compiling 36 files (.ex)1823 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1824 │1825 8 │ Logger.warn("Ending game '#{game_name}'...")1826 │ ~1827 │1828 └─ lib/islands_vue_client_web/channels/game_channel/game_ender.ex:8:12: Islands.Vue.ClientWeb.GameChannel.GameEnder.end_game/118291830 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1831 │1832 21 │ Logger.warn("#{player_name} (#{player_id}) has left game '#{game_name}'.")1833 │ ~1834 │1835 └─ lib/islands_vue_client_web/channels/game_channel/terminator.ex:21:12: Islands.Vue.ClientWeb.GameChannel.Terminator.terminate/218361837 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1838 │1839 22 │ Logger.warn("Reason: #{inspect(reason)}")1840 │ ~1841 │1842 └─ lib/islands_vue_client_web/channels/game_channel/terminator.ex:22:12: Islands.Vue.ClientWeb.GameChannel.Terminator.terminate/218431844 warning: unused require Logger1845 │1846 7 │ require Logger1847 │ ~1848 │1849 └─ lib/islands_vue_client_web/channels/game_channel/opponent_left.ex:7:318501851 warning: unused require Logger1852 │1853 9 │ require Logger1854 │ ~1855 │1856 └─ lib/islands_vue_client_web/channels/game_channel/game_over.ex:9:318571858 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1859 │1860 4 │ @salt Application.get_env(:islands_vue_client, :salt)1861 │ ~1862 │1863 └─ lib/islands_vue_client_web/channels/user_socket.ex:4:21: Islands.Vue.ClientWeb.UserSocket (module)18641865warning: defining a Gettext backend by calling18661867 use Gettext, otp_app: ...18681869is deprecated. To define a backend, call:18701871 use Gettext.Backend, otp_app: :my_app18721873Then, instead of importing your backend, call this in your module:18741875 use Gettext, backend: MyApp.Gettext18761877 lib/islands_vue_client_web/gettext.ex:23: Islands.Vue.ClientWeb.Gettext (module)18781879 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1880 │1881 9 │ @salt Application.get_env(:islands_vue_client, :salt)1882 │ ~1883 │1884 └─ lib/islands_vue_client_web/controllers/game_controller.ex:9:21: Islands.Vue.ClientWeb.GameController (module)188518861887== Compilation error in file lib/islands_vue_client_web/endpoint.ex ==1888** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found1889 (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/11890 (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/11891 (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/21892 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21893 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21894 (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/11895 (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/41896 (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/31897could not compile dependency :islands_vue_client, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile islands_vue_client --force", update it with "mix deps.update islands_vue_client" or clean it with "mix deps.clean islands_vue_client"