Build log
nerves_system_trellis
prexent 0.2.1 · fail · run prexent-0.2.1-1791074204228
1607 of 1607 lines
1Resolving Hex dependencies...2Resolution completed in 0.204s3Unchanged: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 earmark 1.4.49 RETIRED! VULNERABLE!18 (deprecated) Earmark is no longer maintained. Migrate to a replacement, for example MDEx (https://hex.pm/packages/mdex).1920 EEF-CVE-2026-48591 (MEDIUM)21 aka: CVE-2026-48591, GHSA-52mm-h59v-f3c722 Stored XSS via unescaped HTML attribute values in earmark23 https://osv.dev/vulnerability/EEF-CVE-2026-4859124 elixir_make 0.10.025 erlexec 1.21.0 RETIRED!26 (deprecated) Deprecated27 exexec 0.2.028 expo 1.1.129 file_system 1.1.130 gettext 0.26.231 interactive_cmd 0.1.432 jason 1.4.533 mime 2.0.734 nerves 2.0.0-pre.235 nerves_discovery 0.1.536 nerves_logging 0.2.437 nerves_runtime 0.13.1338 nerves_system_bbb 2.30.239 nerves_system_br 1.34.440 nerves_system_mangopi_mq_pro 0.17.241 nerves_system_qemu_aarch64 0.4.242 nerves_system_rpi0 2.1.243 nerves_system_rpi4 2.1.244 nerves_system_rpi5 2.1.245 nerves_system_trellis 0.5.046 nerves_system_x86_64 1.34.247 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.148 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.149 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.150 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.151 nerves_toolchain_x86_64_nerves_linux_musl 15.3.152 nerves_uevent 0.1.753 phoenix 1.4.18 VULNERABLE!54 GHSA-p8f7-22gq-m7j9 (HIGH)55 aka: CVE-2022-4297556 Phoenix before 1.6.14 mishandles check_origin wildcarding57 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j95859 EEF-CVE-2026-56812 (MEDIUM)60 aka: CVE-2026-56812, GHSA-63mc-hw7g-86rr61 Phoenix JavaScript presence client crashes on presence keys colliding with Object.prototype members in Presence.syncState/syncDiff62 https://osv.dev/vulnerability/EEF-CVE-2026-568126364 EEF-CVE-2026-56811 (HIGH)65 aka: CVE-2026-56811, GHSA-6983-jfq8-485w66 Phoenix transports do not limit channel joins per connection, enabling process-exhaustion denial of service67 https://osv.dev/vulnerability/EEF-CVE-2026-5681168 phoenix_html 2.13.4 VULNERABLE!69 GHSA-5g2h-9x5v-5h3x (MEDIUM)70 aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q271 phoenix_html allows Cross-site Scripting in HEEx class attributes72 https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x73 phoenix_live_reload 1.7.074 phoenix_live_view 0.3.175 phoenix_pubsub 1.1.276 plug 1.20.377 plug_cowboy 2.9.078 plug_crypto 2.2.079 prexent 0.2.180 property_table 0.3.481 ranch 2.3.082 ring_logger 0.11.783 tablet 0.3.384 telemetry 0.4.385 toolshed 0.5.086 uboot_env 1.0.287* Getting prexent (Hex package)88* Getting nerves (Hex package)89* Getting ring_logger (Hex package)90* Getting toolshed (Hex package)91* Getting nerves_runtime (Hex package)92* Getting nerves_system_bbb (Hex package)93* Getting nerves_system_mangopi_mq_pro (Hex package)94* Getting nerves_system_qemu_aarch64 (Hex package)95* Getting nerves_system_rpi0 (Hex package)96* Getting nerves_system_rpi4 (Hex package)97* Getting nerves_system_rpi5 (Hex package)98* Getting nerves_system_trellis (Hex package)99* Getting nerves_system_x86_64 (Hex package)100* Getting nerves_system_br (Hex package)101* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)102* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)103* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)104* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)105* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)106* Getting nerves_logging (Hex package)107* Getting nerves_uevent (Hex package)108* Getting uboot_env (Hex package)109* Getting elixir_make (Hex package)110* Getting property_table (Hex package)111* Getting circular_buffer (Hex package)112* Getting interactive_cmd (Hex package)113* Getting nerves_discovery (Hex package)114* Getting tablet (Hex package)115* Getting earmark (Hex package)116* Getting exexec (Hex package)117* Getting gettext (Hex package)118* Getting jason (Hex package)119* Getting phoenix (Hex package)120* Getting phoenix_html (Hex package)121* Getting phoenix_live_reload (Hex package)122* Getting phoenix_live_view (Hex package)123* Getting phoenix_pubsub (Hex package)124* Getting plug_cowboy (Hex package)125* Getting cowboy (Hex package)126* Getting cowboy_telemetry (Hex package)127* Getting plug (Hex package)128* Getting mime (Hex package)129* Getting plug_crypto (Hex package)130* Getting telemetry (Hex package)131* Getting cowlib (Hex package)132* Getting ranch (Hex package)133* Getting file_system (Hex package)134* Getting expo (Hex package)135* Getting erlexec (Hex package)136Found retired packages, see above for details137Found packages with security advisories, see above for details138You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more139==> nerves_system_br140Generated nerves_system_br app141==> file_system142Compiling 7 files (.ex)143Generated file_system app144==> mime145Compiling 1 file (.ex)146Generated mime app147==> circular_buffer148Compiling 1 file (.ex)149Generated circular_buffer app150==> jason151Compiling 10 files (.ex)152Generated jason app153==> plug_crypto154Compiling 5 files (.ex)155Generated plug_crypto app156==> nerves_compatibility_test157===> Analyzing applications...158===> Compiling ranch159==> tablet160Compiling 2 files (.ex)161Generated tablet app162==> nerves_compatibility_test163===> Fetching pc v1.15.0164===> Analyzing applications...165===> Compiling pc166===> Compiling c_src/ei++.cpp167===> Compiling c_src/exec.cpp168===> Compiling c_src/exec_impl.cpp169===> Linking /work/proj/_build/trellis/lib/erlexec/priv/armv7-nerves-linux-gnueabihf/exec-port170===> Analyzing applications...171===> Compiling erlexec172==> exexec173Compiling 2 files (.ex)174Generated exexec app175==> elixir_make176Compiling 8 files (.ex)177Generated elixir_make app178==> nerves_logging179 CC kmsg_tailer.o180 LD kmsg_tailer181Compiling 5 files (.ex)182Generated nerves_logging app183==> earmark184Compiling 2 files (.xrl)185Compiling 1 file (.yrl)186Compiling 3 files (.erl)187Compiling 61 files (.ex)188 warning: unused require Logger189 │190 3 │ require Logger191 │ ~192 │193 └─ lib/earmark_parser/line_scanner.ex:3:3194195 warning: this clause of defp _maybe_remove_paras/2 is never used (or it will always fail/warn when invoked)196 │197 616 │ defp _maybe_remove_paras(ast, %Options{inner_html: true}) do198 │ ~199 │200 └─ lib/earmark/transform.ex:616:8: Earmark.Transform._maybe_remove_paras/2201202Generated earmark app203==> nerves_compatibility_test204===> Analyzing applications...205===> Compiling cowlib206==> nerves_discovery207Compiling 5 files (.ex)208Generated nerves_discovery app209==> ring_logger210Compiling 7 files (.ex)211Generated ring_logger app212==> interactive_cmd213Compiling 1 file (.ex)214Generated interactive_cmd app215==> nerves216Compiling 65 files (.ex)217 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)218 │219 6 │ defmodule Mix.Tasks.Nerves.Init do220 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~221 │222 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)223224 warning: redefining module Nerves (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.beam)225 │226 6 │ defmodule Nerves do227 │ ~~~~~~~~~~~~~~~~~~~228 │229 └─ lib/nerves.ex:6: Nerves (module)230231 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)232 │233 5 │ defmodule Nerves.ArtifactResolver do234 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~235 │236 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)237238 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)239 │240 6 │ defmodule Nerves.BuildAction.AppModes do241 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~242 │243 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)244245 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)246 │247 5 │ defmodule Nerves.BuildAction.CheckExecutables do248 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~249 │250 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)251252 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)253 │254 8 │ defmodule Nerves.BuildAction.Erlinit do255 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~256 │257 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)258259 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)260 │261 5 │ defmodule Nerves.BuildAction.Firmware do262 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~263 │264 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)265266 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)267 │268 7 │ defmodule Nerves.BuildAction.IExStartupCheck do269 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~270 │271 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)272273 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)274 │275 5 │ defmodule Nerves.BuildAction.NervesV1System do276 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~277 │278 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)279280 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)281 │282 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do283 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~284 │285 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)286287 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)288 │289 5 │ defmodule Nerves.BuildAction.Rootfs do290 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~291 │292 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)293294 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)295 │296 6 │ defmodule Nerves.BuildAction.SortApps do297 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~298 │299 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)300301 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)302 │303 5 │ defmodule Nerves.BuildAction.StripAll do304 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~305 │306 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)307308 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)309 │310 5 │ defmodule Nerves.BuildAction.Trimmer do311 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~312 │313 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)314315 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)316 │317 5 │ defmodule Nerves.BuildPlan do318 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~319 │320 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)321322 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)323 │324 5 │ defmodule Nerves.BuildPlan.Checks do325 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~326 │327 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)328329 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Container.beam)330 │331 6 │ defmodule Nerves.Container do332 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~333 │334 └─ lib/nerves/container.ex:6: Nerves.Container (module)335336 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)337 │338 5 │ defmodule Nerves.Fingerprint do339 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~340 │341 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)342343 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)344 │345 5 │ defmodule Nerves.MixPackage do346 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~347 │348 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)349350 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Paths.beam)351 │352 5 │ defmodule Nerves.Paths do353 │ ~~~~~~~~~~~~~~~~~~~~~~~~~354 │355 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)356357 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)358 │359 5 │ defmodule Nerves.TargetTuple do360 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~361 │362 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)363364Generated nerves app365==> nerves_toolchain_armv7_nerves_linux_gnueabihf366Compiling 1 file (.ex)367Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app368==> nerves_system_trellis369Generated nerves_system_trellis app370==> nerves_compatibility_test371===> Analyzing applications...372===> Compiling telemetry373===> Analyzing applications...374===> Compiling cowboy375==> expo376Compiling 2 files (.erl)377Compiling 22 files (.ex)378Generated expo app379==> gettext380Compiling 18 files (.ex)381 warning: unused require Gettext.Macros382 │383 594 │ require Gettext.Macros384 │ ~385 │386 └─ lib/gettext.ex:594:3387388 warning: the following clause is redundant:389390 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)391392 it has type:393394 dynamic(%Expo.Message.Plural{})395396 previous clauses have already matched on the following types:397398 %Expo.Message.Singular{}399 %Expo.Message.Plural{}400401 │402 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do403 │ ~404 │405 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1406407 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead408 │409 426 │ Kernel.ParallelCompiler.async(fn ->410 │ ~411 │412 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3413414Generated gettext app415==> phoenix_pubsub416Compiling 13 files (.ex)417 warning: single quotes around atoms are deprecated. Use double quotes instead418 │419 160 │ |> :ets.select([{{:'$1', :_}, [], [:'$1']}])420 │ ~421 │422 └─ lib/phoenix/pubsub/local.ex:160:23423424 warning: single quotes around atoms are deprecated. Use double quotes instead425 │426 160 │ |> :ets.select([{{:'$1', :_}, [], [:'$1']}])427 │ ~428 │429 └─ lib/phoenix/pubsub/local.ex:160:40430431 warning: unused require Logger432 │433 107 │ require Logger434 │ ~435 │436 └─ lib/phoenix/tracker.ex:107:3437438 warning: a struct for Phoenix.Tracker.State is expected on struct update:439440 %Phoenix.Tracker.State{delta | values: Map.put(delta.values, tag, {pid, topic, key, meta})}441442 but got type:443444 dynamic()445446 where "delta" was given the type:447448 # type: dynamic()449 # from: lib/phoenix/tracker/state.ex:461:36450 %Phoenix.Tracker.State{delta: delta} = state451452 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"453454 type warning found at:455 │456 465 │ new_delta = %State{delta | values: Map.put(delta.values, tag, {pid, topic, key, meta})}457 │ ~458 │459 └─ lib/phoenix/tracker/state.ex:465:17: Phoenix.Tracker.State.do_add/5460461 warning: a struct for Phoenix.Tracker.State is expected on struct update:462463 %Phoenix.Tracker.State{delta | clouds: put_tag(delta.clouds, {rep, new_clock})}464465 but got type:466467 dynamic()468469 where "delta" was given the type:470471 # type: dynamic()472 # from: lib/phoenix/tracker/state.ex:541:99473 %Phoenix.Tracker.State{mode: :normal, replica: rep, clouds: clouds, context: ctx, delta: delta} =474 state475476 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"477478 type warning found at:479 │480 547 │ delta: %State{delta | clouds: put_tag(delta.clouds, {rep, new_clock})}}481 │ ~482 │483 └─ lib/phoenix/tracker/state.ex:547:19: Phoenix.Tracker.State.bump_clock/1484485 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:486487 %Phoenix.Tracker.Replica{replica | status: :permdown}488489 but got type:490491 dynamic()492493 where "replica" was given the type:494495 # type: dynamic()496 # from: lib/phoenix/tracker/replica.ex:72:17497 replica498499 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"500501 type warning found at:502 │503 72 │ defp permdown(replica), do: %Replica{replica | status: :permdown}504 │ ~505 │506 └─ lib/phoenix/tracker/replica.ex:72:31: Phoenix.Tracker.Replica.permdown/1507508 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:509510 %Phoenix.Tracker.Replica{replica | status: :down}511512 but got type:513514 dynamic()515516 where "replica" was given the type:517518 # type: dynamic()519 # from: lib/phoenix/tracker/replica.ex:74:13520 replica521522 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"523524 type warning found at:525 │526 74 │ defp down(replica), do: %Replica{replica | status: :down}527 │ ~528 │529 └─ lib/phoenix/tracker/replica.ex:74:27: Phoenix.Tracker.Replica.down/1530531 warning: a struct for Phoenix.Tracker.State is expected on struct update:532533 %Phoenix.Tracker.State{delta | range: {start_clock, new_end}}534535 but got type:536537 dynamic(%{..., range: {term(), term()}})538539 where "delta" was given the type:540541 # type: dynamic(%{..., range: {term(), term()}})542 # from: lib/phoenix/tracker/state.ex:551:30543 {start_clock, end_clock} = delta.range544545 when defining the variable "delta", you must also pattern match on "%Phoenix.Tracker.State{}"546547 type warning found at:548 │549 555 │ delta: %State{delta | range: {start_clock, new_end}}}550 │ ~551 │552 └─ lib/phoenix/tracker/state.ex:555:19: Phoenix.Tracker.State.put_context/2553554 warning: a struct for Phoenix.Tracker.Replica is expected on struct update:555556 %Phoenix.Tracker.Replica{replica | last_heartbeat_at: now_ms()}557558 but got type:559560 dynamic()561562 where "replica" was given the type:563564 # type: dynamic()565 # from: lib/phoenix/tracker/replica.ex:76:29566 replica567568 when defining the variable "replica", you must also pattern match on "%Phoenix.Tracker.Replica{}"569570 type warning found at:571 │572 77 │ %Replica{replica | last_heartbeat_at: now_ms()}573 │ ~574 │575 └─ lib/phoenix/tracker/replica.ex:77:5: Phoenix.Tracker.Replica.touch_last_heartbeat/1576577 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead578 │579 269 │ worker(Phoenix.Tracker.Shard, [tracker, tracker_opts, shard_opts],580 │ ~581 │582 └─ lib/phoenix/tracker.ex:269:9: Phoenix.Tracker.init/1583584 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead585 │586 273 │ supervise(shards, strategy: :one_for_one,587 │ ~588 │589 └─ lib/phoenix/tracker.ex:273:5: Phoenix.Tracker.init/1590591 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead592 │593 7 │ [supervisor(Phoenix.PubSub.PG2, pubsub)]594 │ ~595 │596 └─ lib/phoenix/pubsub/supervisor.ex:7:8: Phoenix.PubSub.Supervisor.start/2597598 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead599 │600 93 │ supervisor(Phoenix.PubSub.LocalSupervisor, [server, pool_size, dispatch_rules]),601 │ ~602 │603 └─ lib/phoenix/pubsub/pg2.ex:93:7: Phoenix.PubSub.PG2.init/1604605 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead606 │607 94 │ worker(Phoenix.PubSub.PG2Server, [server, pool_size])608 │ ~609 │610 └─ lib/phoenix/pubsub/pg2.ex:94:7: Phoenix.PubSub.PG2.init/1611612 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead613 │614 97 │ supervise(children, strategy: :rest_for_one)615 │ ~616 │617 └─ lib/phoenix/pubsub/pg2.ex:97:5: Phoenix.PubSub.PG2.init/1618619 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead620 │621 35 │ worker(Phoenix.PubSub.GC, [gc_shard_name, local_shard_name]),622 │ ~623 │624 └─ lib/phoenix/pubsub/local_supervisor.ex:35:9: Phoenix.PubSub.LocalSupervisor.init/1625 └─ lib/phoenix/pubsub/local_supervisor.ex:36:9: Phoenix.PubSub.LocalSupervisor.init/1626627 warning: Supervisor.Spec.supervisor/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead628 │629 39 │ supervisor(Supervisor, [shard_children, [strategy: :one_for_all]], id: shard)630 │ ~631 │632 └─ lib/phoenix/pubsub/local_supervisor.ex:39:7: Phoenix.PubSub.LocalSupervisor.init/1633634 warning: :pg2.create/1 is undefined or private, this module was removed in OTP 24. Use 'pg' instead635 │636 43 │ :ok = :pg2.create(pg2_group)637 │ ~638 │639 └─ lib/phoenix/pubsub/pg2_server.ex:43:16: Phoenix.PubSub.PG2Server.init/1640641 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead642 │643 42 │ supervise children, strategy: :one_for_one644 │ ~645 │646 └─ lib/phoenix/pubsub/local_supervisor.ex:42:5: Phoenix.PubSub.LocalSupervisor.init/1647648 warning: :pg2.join/2 is undefined or private, this module was removed in OTP 24. Use 'pg' instead649 │650 44 │ :ok = :pg2.join(pg2_group, self())651 │ ~652 │653 └─ lib/phoenix/pubsub/pg2_server.ex:44:16: Phoenix.PubSub.PG2Server.init/1654655 warning: :pg2.get_members/1 is undefined or private, this module was removed in OTP 24. Use 'pg' instead656 │657 57 │ :pg2.get_members(pg2_namespace(server_name))658 │ ~659 │660 └─ lib/phoenix/pubsub/pg2_server.ex:57:10: Phoenix.PubSub.PG2Server.get_members/1661662Generated phoenix_pubsub app663==> plug664Compiling 1 file (.erl)665Compiling 42 files (.ex)666Generated plug app667==> phoenix_html668Compiling 8 files (.ex)669 warning: using single-quoted strings to represent charlists is deprecated.670 Use ~c"" if you indeed want a charlist or use "" instead.671 You may run "mix format --migrate" to change all single-quoted672 strings to use the ~c sigil and fix this warning.673 │674 12 │ @anno (if :erlang.system_info(:otp_release) >= '19' do675 │ ~676 │677 └─ lib/phoenix_html/engine.ex:12:50678679 warning: the 1st pattern in clause will never match:680681 60682683 because it is expected to receive type:684685 dynamic(empty_list() or non_empty_list(term(), term()))686687 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())688689 type warning found at:690 │691 56 │ def to_iodata(?<), do: "<"692 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~693 │694 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1695696 warning: the 1st pattern in clause will never match:697698 62699700 because it is expected to receive type:701702 dynamic(empty_list() or non_empty_list(term(), term()))703704 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())705706 type warning found at:707 │708 57 │ def to_iodata(?>), do: ">"709 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~710 │711 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1712713 warning: function handle_text/3 required by behaviour EEx.Engine is not implemented (in module Phoenix.HTML.Engine)714 │715 1 │ defmodule Phoenix.HTML.Engine do716 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~717 │718 └─ lib/phoenix_html/engine.ex:1: Phoenix.HTML.Engine (module)719720 warning: the 1st pattern in clause will never match:721722 38723724 because it is expected to receive type:725726 dynamic(empty_list() or non_empty_list(term(), term()))727728 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())729730 type warning found at:731 │732 58 │ def to_iodata(?&), do: "&"733 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~734 │735 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1736737 warning: got "@impl true" for function handle_text/2 but no behaviour specifies such callback. The known callbacks are:738739 * EEx.Engine.handle_begin/1 (function)740 * EEx.Engine.handle_body/1 (function)741 * EEx.Engine.handle_end/1 (function)742 * EEx.Engine.handle_expr/3 (function)743 * EEx.Engine.handle_text/3 (function)744 * EEx.Engine.init/1 (function)745746 │747 52 │ def handle_text(state, text) do748 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~749 │750 └─ lib/phoenix_html/engine.ex:52: Phoenix.HTML.Engine (module)751752 warning: the 1st pattern in clause will never match:753754 34755756 because it is expected to receive type:757758 dynamic(empty_list() or non_empty_list(term(), term()))759760 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())761762 type warning found at:763 │764 59 │ def to_iodata(?"), do: """765 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~766 │767 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1768769 warning: the 1st pattern in clause will never match:770771 39772773 because it is expected to receive type:774775 dynamic(empty_list() or non_empty_list(term(), term()))776777 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())778779 type warning found at:780 │781 60 │ def to_iodata(?'), do: "'"782 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~783 │784 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1785786 warning: the 1st pattern in clause will never match:787788 {:safe, data}789790 because it is expected to receive type:791792 dynamic(empty_list() or non_empty_list(term(), term()))793794 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())795796 type warning found at:797 │798 76 │ def to_iodata({:safe, data}) do799 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~800 │801 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1802803 warning: the following clause is redundant:804805 def to_iodata(other)806807 it has type:808809 dynamic(empty_list() or non_empty_list(term(), term()))810811 previous clauses have already matched on the following types:812813 non_empty_list(term(), term())814 empty_list()815816 │817 80 │ def to_iodata(other) do818 │ ~819 │820 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1821822 warning: the 1st pattern in clause will never match:823824 h825826 because it is expected to receive type:827828 dynamic(empty_list() or non_empty_list(term(), term()))829830 where "h" was given the type:831832 # type: integer()833 # from: lib/phoenix_html/safe.ex:62:25834 is_integer(h)835836 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())837838 type warning found at:839 │840 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do841 │ ~842 │843 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1844845 warning: the 1st pattern in clause will never match:846847 h848849 because it is expected to receive type:850851 dynamic(empty_list() or non_empty_list(term(), term()))852853 where "h" was given the type:854855 # type: integer()856 # from: lib/phoenix_html/safe.ex:66:25857 is_integer(h)858859 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())860861 type warning found at:862 │863 66 │ def to_iodata(h) when is_integer(h) do864 │ ~865 │866 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1867868 warning: the 1st pattern in clause will never match:869870 h871872 because it is expected to receive type:873874 dynamic(empty_list() or non_empty_list(term(), term()))875876 where "h" was given the type:877878 # type: binary()879 # from: lib/phoenix_html/safe.ex:72:25880 is_binary(h)881882 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())883884 type warning found at:885 │886 72 │ def to_iodata(h) when is_binary(h) do887 │ ~888 │889 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1890891Generated phoenix_html app892==> uboot_env893Compiling 5 files (.ex)894Generated uboot_env app895==> property_table896Compiling 8 files (.ex)897Generated property_table app898==> nerves_uevent899 CC uevent.o900 LD uevent901Compiling 5 files (.ex)902Generated nerves_uevent app903==> nerves_runtime904Compiling 14 files (.ex)905Generated nerves_runtime app906==> toolshed907Compiling 5 files (.ex)908Generated toolshed app909==> nerves_compatibility_test910===> Analyzing applications...911===> Compiling cowboy_telemetry912==> plug_cowboy913Compiling 5 files (.ex)914Generated plug_cowboy app915warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"916 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2917 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1918 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5919 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2920 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4921 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2922923==> phoenix924Compiling 67 files (.ex)925 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 operator926 │927 190 │ <<attr::size(prefix)-binary, ":unique">> -> attr928 │ ~929 │930 └─ lib/mix/phoenix/schema.ex:190:20: Mix.Phoenix.Schema.drop_unique/1931932 warning: using single-quoted strings to represent charlists is deprecated.933 Use ~c"" if you indeed want a charlist or use "" instead.934 You may run "mix format --migrate" to change all single-quoted935 strings to use the ~c sigil and fix this warning.936 │937 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},938 │ ~939 │940 └─ lib/mix/tasks/phx.gen.cert.ex:258:33941942 warning: using single-quoted strings to represent charlists is deprecated.943 Use ~c"" if you indeed want a charlist or use "" instead.944 You may run "mix format --migrate" to change all single-quoted945 strings to use the ~c sigil and fix this warning.946 │947 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}948 │ ~949 │950 └─ lib/mix/tasks/phx.gen.cert.ex:259:32951952 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead953 │954 55 │ Logger.warn(955 │ ~956 │957 └─ lib/phoenix/code_reloader/server.ex:55:20: Phoenix.CodeReloader.Server.handle_call/3958959 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.960961 This error happens when you have function calls without parentheses inside keywords. For example:962963 function(arg, one: nested_call a, b, c)964 function(arg, one: if expr, do: :this, else: :that)965966 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:967968 function(arg, one: if(expr, do: :this, else: :that))969 function(arg, one: nested_call(a, b, c))970971 Ambiguity found at:972 │973 1006 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"974 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~975 │976 └─ lib/phoenix/controller.ex:1006977978 warning: unused require Logger979 │980 9 │ require Logger981 │ ~982 │983 └─ lib/phoenix/config.ex:9:3984985 warning: unused require Logger986 │987 282 │ require Logger988 │ ~989 │990 └─ lib/phoenix/endpoint.ex:282:3991992 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead993 │994 35 │ Logger.warn(995 │ ~996 │997 └─ lib/phoenix/endpoint/supervisor.ex:35:20: Phoenix.Endpoint.Supervisor.init/1998999 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1000 │1001 121 │ Logger.warn "Phoenix.Endpoint.CowboyHandler is deprecated, please use Phoenix.Endpoint.CowboyAdapter instead"1002 │ ~1003 │1004 └─ lib/phoenix/endpoint/supervisor.ex:121:16: Phoenix.Endpoint.Supervisor.user_adapter/210051006 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1007 │1008 125 │ Logger.warn "The :handler option in #{inspect endpoint} is deprecated, please use :adapter instead"1009 │ ~1010 │1011 └─ lib/phoenix/endpoint/supervisor.ex:125:16: Phoenix.Endpoint.Supervisor.user_adapter/210121013 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1014 │1015 138 │ Logger.warn("""1016 │ ~1017 │1018 └─ lib/phoenix/endpoint/supervisor.ex:138:12: Phoenix.Endpoint.Supervisor.warn_on_different_adapter_version/310191020 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 operator1021 │1022 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1023 │ ~1024 │1025 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/210261027 warning: using single-quoted strings to represent charlists is deprecated.1028 Use ~c"" if you indeed want a charlist or use "" instead.1029 You may run "mix format --migrate" to change all single-quoted1030 strings to use the ~c sigil and fix this warning.1031 │1032 339 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1033 │ ~1034 │1035 └─ lib/phoenix/router.ex:339:5010361037 warning: using single-quoted strings to represent charlists is deprecated.1038 Use ~c"" if you indeed want a charlist or use "" instead.1039 You may run "mix format --migrate" to change all single-quoted1040 strings to use the ~c sigil and fix this warning.1041 │1042 8 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1043 │ ~1044 │1045 └─ lib/phoenix/router/helpers.ex:8:5010461047 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10481049 This error happens when you have function calls without parentheses inside keywords. For example:10501051 function(arg, one: nested_call a, b, c)1052 function(arg, one: if expr, do: :this, else: :that)10531054 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:10551056 function(arg, one: if(expr, do: :this, else: :that))1057 function(arg, one: nested_call(a, b, c))10581059 Ambiguity found at:1060 │1061 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """1062 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1063 │1064 └─ lib/phoenix/router/resource.ex:7110651066 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1067 │1068 1017 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>1069 │ ~1070 │1071 └─ lib/phoenix/controller.ex:1017:14: Phoenix.Controller.warn_if_ajax/110721073 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1074 │1075 781 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(handler)}" end1076 │ ~1077 │1078 └─ lib/phoenix/socket.ex:781:12: Phoenix.Socket.encode_ignore/210791080 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1081 │1082 266 │ Logger.warn fn -> "Ignoring unmatched topic \"#{msg.topic}\" in #{inspect(socket.handler)}" end1083 │ ~1084 │1085 └─ lib/phoenix/socket/transport.ex:266:12: Phoenix.Socket.Transport.reply_ignore/210861087 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1088 │1089 328 │ Logger.warn(1090 │ ~1091 │1092 └─ lib/phoenix/token.ex:328:12: Phoenix.Token.expired?/210931094 warning: using single-quoted strings to represent charlists is deprecated.1095 Use ~c"" if you indeed want a charlist or use "" instead.1096 You may run "mix format --migrate" to change all single-quoted1097 strings to use the ~c sigil and fix this warning.1098 │1099 177 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1100 │ ~1101 │1102 └─ lib/phoenix/view.ex:177:5011031104 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1105 │1106 11 │ worker(Phoenix.Transports.LongPoll.Server, [], restart: :temporary)1107 │ ~1108 │1109 └─ lib/phoenix/transports/long_poll_server.ex:11:7: Phoenix.Transports.LongPoll.Supervisor.init/111101111 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1112 │1113 14 │ supervise(children, strategy: :simple_one_for_one)1114 │ ~1115 │1116 └─ lib/phoenix/transports/long_poll_server.ex:14:5: Phoenix.Transports.LongPoll.Supervisor.init/111171118 warning: expected a module (an atom) when invoking config/1 in expression:11191120 endpoint.config(:endpoint_id)11211122 where "endpoint" was given the type:11231124 # type: dynamic(%{..., __pubsub_server__: atom()})1125 # from: lib/phoenix/transports/long_poll.ex:148:101126 verify_token(endpoint, token, opts)11271128 type warning found at:1129 │1130 150 │ server_ref = server_ref(endpoint.config(:endpoint_id), id, pid, priv_topic)1131 │ ~1132 │1133 └─ lib/phoenix/transports/long_poll.ex:150:42: Phoenix.Transports.LongPoll.resume_session/311341135 warning: unknown key .__pubsub_server__ in expression:11361137 endpoint.__pubsub_server__11381139 the given type does not have the given key:11401141 dynamic(1142 %Phoenix.Socket{1143 assigns: term(),1144 channel: term(),1145 channel_pid: term(),1146 endpoint: atom(),1147 handler: term(),1148 id: term(),1149 joined: term(),1150 join_ref: term(),1151 private: term(),1152 pubsub_server: term(),1153 ref: term(),1154 serializer: term(),1155 topic: term(),1156 transport: term(),1157 transport_pid: term()1158 } or1159 %Plug.Conn{1160 adapter: term(),1161 assigns: term(),1162 body_params: term(),1163 cookies: term(),1164 halted: term(),1165 host: term(),1166 method: term(),1167 owner: term(),1168 params: term(),1169 path_info: term(),1170 path_params: term(),1171 port: term(),1172 private: term(),1173 query_params: term(),1174 query_string: term(),1175 remote_ip: term(),1176 req_cookies: term(),1177 req_headers: term(),1178 request_path: term(),1179 resp_body: term(),1180 resp_cookies: term(),1181 resp_headers: term(),1182 scheme: term(),1183 script_name: term(),1184 secret_key_base: term(),1185 state: term(),1186 status: term()1187 } or atom() or binary()1188 )11891190 where "endpoint" was given the type:11911192 # type: dynamic(%Phoenix.Socket{endpoint: atom()} or %Plug.Conn{} or atom() or binary())1193 # from: lib/phoenix/transports/long_poll.ex:189:191194 Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])11951196 type warning found at:1197 │1198 189 │ Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])1199 │ ~~~~~~~~~~~~~~~~~1200 │1201 └─ lib/phoenix/transports/long_poll.ex:189:58: Phoenix.Transports.LongPoll.sign_token/312021203 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1204 │1205 678 │ kind, error -> {:error, {kind, error, System.stacktrace()}}1206 │ ~1207 │1208 └─ lib/phoenix/test/conn_test.ex:678:52: Phoenix.ConnTest.wrap_request/112091210 warning: Plug.Crypto.safe_binary_to_term/1 is undefined or private1211 │1212 276 │ %{data: data, signed: signed} = Plug.Crypto.safe_binary_to_term(message)1213 │ ~1214 │1215 └─ lib/phoenix/token.ex:276:49: Phoenix.Token.decode/212161217 warning: Supervisor.Spec.supervisor/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1218 │1219 59 │ supervisor(WorkerSupervisor, [worker, ref, i], id: i)1220 │ ~1221 │1222 └─ lib/phoenix/socket/pool_supervisor.ex:59:9: Phoenix.Socket.PoolSupervisor.init/112231224 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1225 │1226 62 │ supervise(children, strategy: :one_for_one)1227 │ ~1228 │1229 └─ lib/phoenix/socket/pool_supervisor.ex:62:5: Phoenix.Socket.PoolSupervisor.init/112301231 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1232 │1233 510 │ worker = worker(Phoenix.Channel.Server, [], worker_opts)1234 │ ~1235 │1236 └─ lib/phoenix/socket.ex:510:14: Phoenix.Socket.__child_spec__/212371238 warning: Supervisor.Spec.supervisor/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1239 │1240 512 │ supervisor(Phoenix.Socket.PoolSupervisor, [args], id: handler)1241 │ ~1242 │1243 └─ lib/phoenix/socket.ex:512:5: Phoenix.Socket.__child_spec__/212441245 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1246 │1247 307 │ supervisor(Task.Supervisor, [[name: task_supervisor]]),1248 │ ~1249 │1250 └─ lib/phoenix/presence.ex:307:7: Phoenix.Presence.start_link/412511252 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1253 │1254 308 │ worker(Phoenix.Tracker, [module, opts, opts])1255 │ ~1256 │1257 └─ lib/phoenix/presence.ex:308:7: Phoenix.Presence.start_link/412581259 warning: a struct for Plug.Conn is expected on struct update:12601261 %Plug.Conn{conn | params: params}12621263 but got type:12641265 dynamic(%{..., params: map()})12661267 where "conn" was given the type:12681269 # type: dynamic(%{..., params: map()})1270 # from: lib/phoenix/controller.ex:1044:171271 Map.get(conn.params, required_key)12721273 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"12741275 type warning found at:1276 │1277 1051 │ %Plug.Conn{conn | params: params}1278 │ ~1279 │1280 └─ lib/phoenix/controller.ex:1051:5: Phoenix.Controller.scrub_params/212811282 warning: a struct for Plug.Conn is expected on struct update:12831284 %Plug.Conn{conn | state: :sent}12851286 but got type:12871288 dynamic()12891290 where "conn" was given the type:12911292 # type: dynamic()1293 # from: lib/phoenix/endpoint/render_errors.ex:55:171294 conn12951296 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"12971298 type warning found at:1299 │1300 59 │ %Plug.Conn{conn | state: :sent}1301 │ ~1302 │1303 └─ lib/phoenix/endpoint/render_errors.ex:59:9: Phoenix.Endpoint.RenderErrors.__catch__/513041305 warning: a struct for Plug.Conn is expected on struct update:13061307 %Plug.Conn{conn | query_params: %{}, params: %{}}13081309 but got type:13101311 dynamic(%{..., params: %Plug.Conn.Unfetched{}})13121313 where "conn" was given the types:13141315 # type: dynamic(%{..., params: term()})1316 # from: lib/phoenix/endpoint/render_errors.ex:125:171317 conn.params13181319 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1320 # from: lib/phoenix/endpoint/render_errors.ex:125:171321 conn.params13221323 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"13241325 type warning found at:1326 │1327 126 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1328 │ ~1329 │1330 └─ lib/phoenix/endpoint/render_errors.ex:126:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/113311332 warning: a struct for Plug.Conn is expected on struct update:13331334 %Plug.Conn{conn | query_params: %{}, params: params}13351336 but got type:13371338 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})13391340 where "conn" was given the types:13411342 # type: dynamic(%{..., params: term()})1343 # from: lib/phoenix/endpoint/render_errors.ex:125:171344 conn.params13451346 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1347 # from: lib/phoenix/endpoint/render_errors.ex:125:171348 conn.params13491350 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"13511352 type warning found at:1353 │1354 127 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1355 │ ~1356 │1357 └─ lib/phoenix/endpoint/render_errors.ex:127:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/113581359 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1360 │1361 298 │ metadata = %{kind: :error, error: e, stacktrace: System.stacktrace()}1362 │ ~1363 │1364 └─ lib/phoenix/router.ex:298:69: Phoenix.Router.__call__/21365 └─ lib/phoenix/router.ex:304:74: Phoenix.Router.__call__/21366 └─ lib/phoenix/router.ex:306:79: Phoenix.Router.__call__/213671368 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1369 │1370 30 │ {:upgrade, :protocol, __MODULE__, req, {:error, mfa, kind, reason, System.stacktrace()}}1371 │ ~1372 │1373 └─ lib/phoenix/endpoint/cowboy_websocket.ex:30:83: Phoenix.Endpoint.CowboyWebSocket.init/313741375 warning: expected a map or struct when accessing .__transports__ in expression:13761377 socket.__transports__13781379 where "socket" was given the type:13801381 # type: dynamic(atom())1382 # from: lib/phoenix/endpoint/cowboy_adapter.ex:115:131383 Code.ensure_loaded?(socket)13841385 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13861387 type warning found at:1388 │1389 116 │ socket.__transports__1390 │ ~1391 │1392 └─ lib/phoenix/endpoint/cowboy_adapter.ex:116:14: Phoenix.Endpoint.CowboyAdapter.deprecated_transports/113931394 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1395 │1396 75 │ [supervisor(adapter, [pub_conf[:name], pub_conf])]1397 │ ~1398 │1399 └─ lib/phoenix/endpoint/supervisor.ex:75:8: Phoenix.Endpoint.Supervisor.pubsub_children/214001401 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1402 │1403 49 │ case System.stacktrace() do1404 │ ~1405 │1406 └─ lib/phoenix/endpoint/cowboy2_handler.ex:49:19: Phoenix.Endpoint.Cowboy2Handler.init/414071408 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1409 │1410 89 │ [worker(Phoenix.Config, args)]1411 │ ~1412 │1413 └─ lib/phoenix/endpoint/supervisor.ex:89:6: Phoenix.Endpoint.Supervisor.config_children/314141415 warning: the following clause will never match:14161417 [{^endpoint, :__handler__, _, _} | _] when reason == :undef and retry? ->14181419 because it attempts to match on the result of:14201421 System.stacktrace()14221423 which has type:14241425 empty_list()14261427 where "endpoint" was given the type:14281429 # type: dynamic()1430 # from: lib/phoenix/endpoint/cowboy2_handler.ex:18:191431 endpoint14321433 where "reason" was given the type:14341435 # type: dynamic(:undef)1436 # from: lib/phoenix/endpoint/cowboy2_handler.ex:52:591437 reason == :undef14381439 where "retry?" was given the type:14401441 # type: dynamic(true)1442 # from: lib/phoenix/endpoint/cowboy2_handler.ex:52:731443 retry?14441445 type warning found at:1446 │1447 52 │ [{^endpoint, :__handler__, _, _} | _] when reason == :undef and retry? ->1448 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1449 │1450 └─ lib/phoenix/endpoint/cowboy2_handler.ex:52: Phoenix.Endpoint.Cowboy2Handler.init/414511452 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1453 │1454 162 │ worker(Phoenix.Endpoint.Watcher, watcher_args(cmd, args),1455 │ ~1456 │1457 └─ lib/phoenix/endpoint/supervisor.ex:162:9: Phoenix.Endpoint.Supervisor.watcher_children/314581459 warning: expected a module (an atom) when invoking path/1 in expression:14601461 endpoint.path("/")14621463 where "endpoint" was given the type:14641465 # type: dynamic(%{..., host: term()})1466 # from: lib/phoenix/endpoint/supervisor.ex:369:141467 endpoint.host14681469 type warning found at:1470 │1471 370 │ endpoint.path("/")1472 │ ~1473 │1474 └─ lib/phoenix/endpoint/supervisor.ex:370:14: Phoenix.Endpoint.Supervisor.warmup/114751476 warning: incompatible types given to socket_children/1:14771478 socket_children(mod)14791480 given types:14811482 -dynamic(atom())-14831484 but expected one of:14851486 %{..., __sockets__: term()}14871488 where "mod" was given the types:14891490 # type: dynamic(atom() or binary())1491 # from: lib/phoenix/endpoint/supervisor.ex:29:411492 config otp_app, mod14931494 # type: dynamic(atom())1495 # from: lib/phoenix/endpoint/supervisor.ex:32:161496 mod.init(:supervisor, default_conf)14971498 type warning found at:1499 │1500 58 │ socket_children(mod) ++1501 │ ~1502 │1503 └─ lib/phoenix/endpoint/supervisor.ex:58:7: Phoenix.Endpoint.Supervisor.init/115041505 warning: comparison between distinct types found:15061507 !Path.extname(file_path) == ".gz"15081509 given types:15101511 dynamic(boolean()) == binary()15121513 where "file_path" was given the type:15141515 # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))1516 # from: lib/phoenix/digester.ex:156:451517 Path.basename(file_path)15181519 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 false15201521 type warning found at:1522 │1523 157 │ !Path.extname(file_path) == ".gz"1524 │ ~1525 │1526 └─ lib/phoenix/digester.ex:157:32: Phoenix.Digester.uncompressed_digested_file?/115271528 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1529 │1530 56 │ worker(Phoenix.CodeReloader.Server, []),1531 │ ~1532 │1533 └─ lib/phoenix.ex:56:7: Phoenix.start/215341535 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1536 │1537 57 │ supervisor(Phoenix.Transports.LongPoll.Supervisor, [])1538 │ ~1539 │1540 └─ lib/phoenix.ex:57:7: Phoenix.start/215411542 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1543 │1544 81 │ IO.puts(Exception.format(kind, reason, System.stacktrace()))1545 │ ~1546 │1547 └─ lib/phoenix/code_reloader/server.ex:81:59: Phoenix.CodeReloader.Server.handle_call/315481549 warning: expected a map or struct when accessing .__phoenix_recompile__? in expression:15501551 mod.__phoenix_recompile__?15521553 where "mod" was given the type:15541555 # type: dynamic(atom())1556 # from: lib/mix/tasks/compile.phoenix.ex:34:121557 Code.ensure_loaded?(mod)15581559 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()15601561 type warning found at:1562 │1563 36 │ mod.__phoenix_recompile__?1564 │ ~1565 │1566 └─ lib/mix/tasks/compile.phoenix.ex:36:13: Mix.Tasks.Compile.Phoenix.modules_for_recompilation/115671568Generated phoenix app1569==> phoenix_live_reload1570Compiling 5 files (.ex)1571Generated phoenix_live_reload app1572warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1573 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21574 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11575 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51576 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21577 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41578 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/215791580==> phoenix_live_view1581Compiling 15 files (.ex)1582 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.15831584 This error happens when you have function calls without parentheses inside keywords. For example:15851586 function(arg, one: nested_call a, b, c)1587 function(arg, one: if expr, do: :this, else: :that)15881589 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:15901591 function(arg, one: if(expr, do: :this, else: :that))1592 function(arg, one: nested_call(a, b, c))15931594 Ambiguity found at:1595 │1596 1233 │ do: raise ArgumentError, "cannot invoke #{context} from a child LiveView"1597 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1598 │1599 └─ lib/phoenix_live_view.ex:1233160016011602== Compilation error in file lib/phoenix_live_view/socket.ex ==1603** (ArgumentError) unknown fields [:root_id] in :only when deriving the Inspect protocol for Phoenix.LiveView.Socket1604 (elixir 1.20.3) lib/inspect.ex:258: Inspect.validate_option/41605 (elixir 1.20.3) expanding macro: Inspect.__deriving__/21606 lib/phoenix_live_view/socket.ex:11: Phoenix.LiveView.Socket (module)1607could not compile dependency :phoenix_live_view, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile phoenix_live_view --force", update it with "mix deps.update phoenix_live_view" or clean it with "mix deps.clean phoenix_live_view"