Build log
nerves_system_mangopi_mq_pro
exshome 0.1.7 · fail · run exshome-0.1.7-1791181754346
2666 of 2666 lines
1Resolving Hex dependencies...2Resolution completed in 0.474s3Unchanged:4 castore 0.1.225 cc_precompiler 0.1.116 circular_buffer 1.1.07 cowboy 2.19.08 cowboy_telemetry 0.4.09 cowlib 2.20.0 VULNERABLE!10 EEF-CVE-2026-43966 (MEDIUM)11 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c12 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/213 https://osv.dev/vulnerability/EEF-CVE-2026-439661415 EEF-CVE-2026-43969 (LOW)16 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5617 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/118 https://osv.dev/vulnerability/EEF-CVE-2026-4396919 db_connection 2.10.220 decimal 2.4.1 VULNERABLE!21 EEF-CVE-2026-32686 (MEDIUM)22 aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v23 Unbounded exponent in decimal enables unauthenticated DoS24 https://osv.dev/vulnerability/EEF-CVE-2026-3268625 ecto 3.13.626 ecto_sql 3.13.527 ecto_sqlite3 0.7.728 elixir_make 0.10.029 erlexec 1.21.0 RETIRED!30 (deprecated) Deprecated31 esbuild 0.10.032 expo 1.1.133 exqlite 0.42.034 exshome 0.1.735 gettext 0.26.236 interactive_cmd 0.1.437 jason 1.4.538 mime 2.0.739 nerves 2.0.0-pre.240 nerves_discovery 0.1.541 nerves_logging 0.2.442 nerves_runtime 0.13.1343 nerves_system_bbb 2.30.244 nerves_system_br 1.34.445 nerves_system_mangopi_mq_pro 0.17.246 nerves_system_qemu_aarch64 0.4.247 nerves_system_rpi0 2.1.248 nerves_system_rpi4 2.1.249 nerves_system_rpi5 2.1.250 nerves_system_trellis 0.5.051 nerves_system_x86_64 1.34.252 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.153 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.154 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.155 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.156 nerves_toolchain_x86_64_nerves_linux_musl 15.3.157 nerves_uevent 0.1.758 nimble_options 0.4.059 phoenix 1.6.1760 phoenix_ecto 4.7.061 phoenix_html 3.3.462 phoenix_live_dashboard 0.6.563 phoenix_live_view 0.17.14 VULNERABLE!64 EEF-CVE-2026-64941 (LOW)65 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf66 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR67 https://osv.dev/vulnerability/EEF-CVE-2026-6494168 phoenix_pubsub 2.3.069 phoenix_template 1.1.070 phoenix_view 2.0.471 plug 1.20.372 plug_cowboy 2.9.073 plug_crypto 1.2.574 property_table 0.3.475 ranch 2.3.076 ring_logger 0.11.777 tablet 0.3.378 tailwind 0.5.179 telemetry 1.4.280 telemetry_metrics 0.6.281 telemetry_poller 1.3.082 toolshed 0.5.083 tz 0.20.184 tz_extra 0.20.185 uboot_env 1.0.286* Getting exshome (Hex package)87* Getting nerves (Hex package)88* Getting ring_logger (Hex package)89* Getting toolshed (Hex package)90* Getting nerves_runtime (Hex package)91* Getting nerves_system_bbb (Hex package)92* Getting nerves_system_mangopi_mq_pro (Hex package)93* Getting nerves_system_qemu_aarch64 (Hex package)94* Getting nerves_system_rpi0 (Hex package)95* Getting nerves_system_rpi4 (Hex package)96* Getting nerves_system_rpi5 (Hex package)97* Getting nerves_system_trellis (Hex package)98* Getting nerves_system_x86_64 (Hex package)99* Getting nerves_system_br (Hex package)100* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)101* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)102* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)103* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)104* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)105* Getting nerves_logging (Hex package)106* Getting nerves_uevent (Hex package)107* Getting uboot_env (Hex package)108* Getting elixir_make (Hex package)109* Getting property_table (Hex package)110* Getting circular_buffer (Hex package)111* Getting interactive_cmd (Hex package)112* Getting nerves_discovery (Hex package)113* Getting tablet (Hex package)114* Getting ecto (Hex package)115* Getting ecto_sqlite3 (Hex package)116* Getting erlexec (Hex package)117* Getting esbuild (Hex package)118* Getting gettext (Hex package)119* Getting jason (Hex package)120* Getting nimble_options (Hex package)121* Getting phoenix (Hex package)122* Getting phoenix_ecto (Hex package)123* Getting phoenix_html (Hex package)124* Getting phoenix_live_dashboard (Hex package)125* Getting phoenix_live_view (Hex package)126* Getting plug_cowboy (Hex package)127* Getting tailwind (Hex package)128* Getting telemetry_metrics (Hex package)129* Getting telemetry_poller (Hex package)130* Getting tz (Hex package)131* Getting tz_extra (Hex package)132* Getting telemetry (Hex package)133* Getting cowboy (Hex package)134* Getting cowboy_telemetry (Hex package)135* Getting plug (Hex package)136* Getting mime (Hex package)137* Getting plug_crypto (Hex package)138* Getting cowlib (Hex package)139* Getting ranch (Hex package)140* Getting castore (Hex package)141* Getting phoenix_pubsub (Hex package)142* Getting phoenix_view (Hex package)143* Getting phoenix_template (Hex package)144* Getting expo (Hex package)145* Getting decimal (Hex package)146* Getting ecto_sql (Hex package)147* Getting exqlite (Hex package)148* Getting cc_precompiler (Hex package)149* Getting db_connection (Hex package)150Found retired packages, see above for details151Found packages with security advisories, see above for details152You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more153==> nerves_system_br154Generated nerves_system_br app155==> mime156Compiling 1 file (.ex)157Generated mime app158==> circular_buffer159Compiling 1 file (.ex)160Generated circular_buffer app161==> nimble_options162Compiling 3 files (.ex)163Generated nimble_options app164==> plug_crypto165Compiling 5 files (.ex)166Generated plug_crypto app167==> nerves_compatibility_test168===> Analyzing applications...169===> Compiling ranch170==> tablet171Compiling 2 files (.ex)172Generated tablet app173==> nerves_compatibility_test174===> Fetching pc v1.15.0175===> Analyzing applications...176===> Compiling pc177===> Compiling c_src/ei++.cpp178===> Compiling c_src/exec.cpp179===> Compiling c_src/exec_impl.cpp180===> Linking /work/proj/_build/mangopi_mq_pro/lib/erlexec/priv/riscv64-nerves-linux-gnu/exec-port181===> Analyzing applications...182===> Compiling erlexec183==> elixir_make184Compiling 8 files (.ex)185Generated elixir_make app186==> nerves_logging187 CC kmsg_tailer.o188 LD kmsg_tailer189Compiling 5 files (.ex)190Generated nerves_logging app191warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"192 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2193 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1194 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5195 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2196 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4197 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2198199==> castore200Compiling 1 file (.ex)201Generated castore app202==> nerves_compatibility_test203===> Analyzing applications...204===> Compiling cowlib205==> nerves_discovery206Compiling 5 files (.ex)207Generated nerves_discovery app208==> ring_logger209Compiling 7 files (.ex)210Generated ring_logger app211==> decimal212Compiling 4 files (.ex)213 warning: this clause of defp check_dbl_min_max/1 is never used (or it will always fail/warn when invoked)214 │215 2842 │ defp check_dbl_min_max(%Decimal{coef: :inf} = infinity), do: infinity216 │ ~217 │218 └─ lib/decimal.ex:2842:8: Decimal.check_dbl_min_max/1219220Generated decimal app221==> jason222Compiling 10 files (.ex)223Generated jason app224==> esbuild225Compiling 4 files (.ex)226Generated esbuild app227==> interactive_cmd228Compiling 1 file (.ex)229Generated interactive_cmd app230==> nerves231Compiling 65 files (.ex)232 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)233 │234 6 │ defmodule Mix.Tasks.Nerves.Init do235 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~236 │237 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)238239 warning: redefining module Nerves (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.beam)240 │241 6 │ defmodule Nerves do242 │ ~~~~~~~~~~~~~~~~~~~243 │244 └─ lib/nerves.ex:6: Nerves (module)245246 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)247 │248 5 │ defmodule Nerves.ArtifactResolver do249 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~250 │251 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)252253 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)254 │255 6 │ defmodule Nerves.BuildAction.AppModes do256 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~257 │258 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)259260 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)261 │262 5 │ defmodule Nerves.BuildAction.CheckExecutables do263 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~264 │265 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)266267 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)268 │269 8 │ defmodule Nerves.BuildAction.Erlinit do270 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~271 │272 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)273274 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)275 │276 5 │ defmodule Nerves.BuildAction.Firmware do277 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~278 │279 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)280281 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)282 │283 7 │ defmodule Nerves.BuildAction.IExStartupCheck do284 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~285 │286 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)287288 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)289 │290 5 │ defmodule Nerves.BuildAction.NervesV1System do291 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~292 │293 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)294295 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)296 │297 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do298 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~299 │300 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)301302 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)303 │304 5 │ defmodule Nerves.BuildAction.Rootfs do305 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~306 │307 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)308309 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)310 │311 6 │ defmodule Nerves.BuildAction.SortApps do312 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~313 │314 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)315316 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)317 │318 5 │ defmodule Nerves.BuildAction.StripAll do319 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~320 │321 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)322323 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)324 │325 5 │ defmodule Nerves.BuildAction.Trimmer do326 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~327 │328 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)329330 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)331 │332 5 │ defmodule Nerves.BuildPlan do333 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~334 │335 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)336337 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)338 │339 5 │ defmodule Nerves.BuildPlan.Checks do340 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~341 │342 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)343344 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.Container.beam)345 │346 6 │ defmodule Nerves.Container do347 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~348 │349 └─ lib/nerves/container.ex:6: Nerves.Container (module)350351 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)352 │353 5 │ defmodule Nerves.Fingerprint do354 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~355 │356 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)357358 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)359 │360 5 │ defmodule Nerves.MixPackage do361 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~362 │363 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)364365 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.Paths.beam)366 │367 5 │ defmodule Nerves.Paths do368 │ ~~~~~~~~~~~~~~~~~~~~~~~~~369 │370 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)371372 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/mangopi_mq_pro/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)373 │374 5 │ defmodule Nerves.TargetTuple do375 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~376 │377 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)378379Generated nerves app380==> nerves_toolchain_riscv64_nerves_linux_gnu381Compiling 1 file (.ex)382Generated nerves_toolchain_riscv64_nerves_linux_gnu app383==> nerves_system_mangopi_mq_pro384Generated nerves_system_mangopi_mq_pro app385==> nerves_compatibility_test386===> Analyzing applications...387===> Compiling telemetry388==> ecto389Compiling 56 files (.ex)390 warning: this clause of defp field_source!/2 is never used (or it will always fail/warn when invoked)391 │392 968 │ defp field_source!(nil, field) do393 │ ~394 │395 └─ lib/ecto/repo/schema.ex:968:8: Ecto.Repo.Schema.field_source!/2396397Generated ecto app398==> telemetry_metrics399Compiling 7 files (.ex)400 warning: unused require Logger401 │402 391 │ require Logger403 │ ~404 │405 └─ lib/telemetry_metrics.ex:391:3406407Generated telemetry_metrics app408==> nerves_compatibility_test409===> Analyzing applications...410===> Compiling telemetry_poller411==> db_connection412Compiling 18 files (.ex)413Generated db_connection app414warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"415 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2416 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1417 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5418 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2419 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4420 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2421422==> ecto_sql423Compiling 25 files (.ex)424 warning: unused require Ecto.Query425 │426 140 │ require Ecto.Query427 │ ~428 │429 └─ lib/ecto/adapters/tds.ex:140:3430431 warning: unused require Logger432 │433 139 │ require Logger434 │ ~435 │436 └─ lib/ecto/adapters/tds.ex:139:3437438 warning: unused require Ecto.Query439 │440 107 │ require Ecto.Query441 │ ~442 │443 └─ lib/ecto/migrator.ex:107:3444445 warning: this clause of defp validate_index_opts!/1 is never used (or it will always fail/warn when invoked)446 │447 1724 │ defp validate_index_opts!(opts), do: opts448 │ ~449 │450 └─ lib/ecto/migration.ex:1724:8: Ecto.Migration.validate_index_opts!/1451452Generated ecto_sql app453==> nerves_compatibility_test454===> Analyzing applications...455===> Compiling cowboy456==> expo457Compiling 2 files (.erl)458Compiling 22 files (.ex)459Generated expo app460==> gettext461Compiling 18 files (.ex)462 warning: unused require Gettext.Macros463 │464 594 │ require Gettext.Macros465 │ ~466 │467 └─ lib/gettext.ex:594:3468469 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead470 │471 426 │ Kernel.ParallelCompiler.async(fn ->472 │ ~473 │474 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3475476 warning: the following clause is redundant:477478 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)479480 it has type:481482 dynamic(%Expo.Message.Plural{})483484 previous clauses have already matched on the following types:485486 %Expo.Message.Singular{}487 %Expo.Message.Plural{}488489 │490 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do491 │ ~492 │493 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1494495Generated gettext app496==> phoenix_pubsub497Compiling 12 files (.ex)498Generated phoenix_pubsub app499==> plug500Compiling 1 file (.erl)501Compiling 42 files (.ex)502Generated plug app503==> phoenix_html504Compiling 9 files (.ex)505 warning: comparison between distinct types found:506507 id == nil508509 given types:510511 dynamic(not false and not nil and not binary()) == nil512513 where "id" was given the types:514515 # type: dynamic(not false and not nil)516 # from: lib/phoenix_html/form_data.ex:92:8517 id = Keyword.get(opts, :id) || name518519 # type: dynamic(not false and not nil and not binary())520 # from: lib/phoenix_html/form_data.ex:94:12521 is_binary(id)522523 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 false524525 type warning found at:526 │527 94 │ unless is_binary(id) or is_nil(id) do528 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~529 │530 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2531532 warning: the 1st pattern in clause will never match:533534 60535536 because it is expected to receive type:537538 dynamic(empty_list() or non_empty_list(term(), term()))539540 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())541542 type warning found at:543 │544 56 │ def to_iodata(?<), do: "<"545 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~546 │547 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1548549 warning: the 1st pattern in clause will never match:550551 62552553 because it is expected to receive type:554555 dynamic(empty_list() or non_empty_list(term(), term()))556557 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())558559 type warning found at:560 │561 57 │ def to_iodata(?>), do: ">"562 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~563 │564 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1565566 warning: the 1st pattern in clause will never match:567568 38569570 because it is expected to receive type:571572 dynamic(empty_list() or non_empty_list(term(), term()))573574 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())575576 type warning found at:577 │578 58 │ def to_iodata(?&), do: "&"579 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~580 │581 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1582583 warning: the 1st pattern in clause will never match:584585 34586587 because it is expected to receive type:588589 dynamic(empty_list() or non_empty_list(term(), term()))590591 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())592593 type warning found at:594 │595 59 │ def to_iodata(?"), do: """596 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~597 │598 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1599600 warning: the 1st pattern in clause will never match:601602 39603604 because it is expected to receive type:605606 dynamic(empty_list() or non_empty_list(term(), term()))607608 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())609610 type warning found at:611 │612 60 │ def to_iodata(?'), do: "'"613 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~614 │615 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1616617 warning: the 1st pattern in clause will never match:618619 {:safe, data}620621 because it is expected to receive type:622623 dynamic(empty_list() or non_empty_list(term(), term()))624625 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())626627 type warning found at:628 │629 76 │ def to_iodata({:safe, data}) do630 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~631 │632 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1633634 warning: the following clause is redundant:635636 def to_iodata(other)637638 it has type:639640 dynamic(empty_list() or non_empty_list(term(), term()))641642 previous clauses have already matched on the following types:643644 non_empty_list(term(), term())645 empty_list()646647 │648 80 │ def to_iodata(other) do649 │ ~650 │651 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1652653 warning: the 1st pattern in clause will never match:654655 h656657 because it is expected to receive type:658659 dynamic(empty_list() or non_empty_list(term(), term()))660661 where "h" was given the type:662663 # type: integer()664 # from: lib/phoenix_html/safe.ex:62:25665 is_integer(h)666667 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())668669 type warning found at:670 │671 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do672 │ ~673 │674 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1675676 warning: the 1st pattern in clause will never match:677678 h679680 because it is expected to receive type:681682 dynamic(empty_list() or non_empty_list(term(), term()))683684 where "h" was given the type:685686 # type: integer()687 # from: lib/phoenix_html/safe.ex:66:25688 is_integer(h)689690 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())691692 type warning found at:693 │694 66 │ def to_iodata(h) when is_integer(h) do695 │ ~696 │697 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1698699 warning: the 1st pattern in clause will never match:700701 h702703 because it is expected to receive type:704705 dynamic(empty_list() or non_empty_list(term(), term()))706707 where "h" was given the type:708709 # type: binary()710 # from: lib/phoenix_html/safe.ex:72:25711 is_binary(h)712713 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())714715 type warning found at:716 │717 72 │ def to_iodata(h) when is_binary(h) do718 │ ~719 │720 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1721722Generated phoenix_html app723warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"724 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2725 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1726 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5727 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2728 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4729 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2730731==> phoenix_ecto732Compiling 7 files (.ex)733Generated phoenix_ecto app734==> phoenix_template735Compiling 4 files (.ex)736Generated phoenix_template app737==> phoenix_view738Compiling 1 file (.ex)739 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 operator740 │741 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix742 │ ~743 │744 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2745746Generated phoenix_view app747==> tz748Compiling 15 files (.ex)749 warning: Application.fetch_env/2 is discouraged in the module body, use Application.compile_env/3 instead750 │751 3 │ case Application.fetch_env(:tz, :http_client) do752 │ ~753 │754 └─ lib/http/http.ex:3:22: Tz.HTTP (module)755756 warning: using single-quoted strings to represent charlists is deprecated.757 Use ~c"" if you indeed want a charlist or use "" instead.758 You may run "mix format --migrate" to change all single-quoted759 strings to use the ~c sigil and fix this warning.760 │761 55 │ 'africa',762 │ ~763 │764 └─ lib/iana_data_dir.ex:55:7765766 warning: using single-quoted strings to represent charlists is deprecated.767 Use ~c"" if you indeed want a charlist or use "" instead.768 You may run "mix format --migrate" to change all single-quoted769 strings to use the ~c sigil and fix this warning.770 │771 56 │ 'antarctica',772 │ ~773 │774 └─ lib/iana_data_dir.ex:56:7775776 warning: using single-quoted strings to represent charlists is deprecated.777 Use ~c"" if you indeed want a charlist or use "" instead.778 You may run "mix format --migrate" to change all single-quoted779 strings to use the ~c sigil and fix this warning.780 │781 57 │ 'asia',782 │ ~783 │784 └─ lib/iana_data_dir.ex:57:7785786 warning: using single-quoted strings to represent charlists is deprecated.787 Use ~c"" if you indeed want a charlist or use "" instead.788 You may run "mix format --migrate" to change all single-quoted789 strings to use the ~c sigil and fix this warning.790 │791 58 │ 'australasia',792 │ ~793 │794 └─ lib/iana_data_dir.ex:58:7795796 warning: using single-quoted strings to represent charlists is deprecated.797 Use ~c"" if you indeed want a charlist or use "" instead.798 You may run "mix format --migrate" to change all single-quoted799 strings to use the ~c sigil and fix this warning.800 │801 59 │ 'backward',802 │ ~803 │804 └─ lib/iana_data_dir.ex:59:7805806 warning: using single-quoted strings to represent charlists is deprecated.807 Use ~c"" if you indeed want a charlist or use "" instead.808 You may run "mix format --migrate" to change all single-quoted809 strings to use the ~c sigil and fix this warning.810 │811 60 │ 'etcetera',812 │ ~813 │814 └─ lib/iana_data_dir.ex:60:7815816 warning: using single-quoted strings to represent charlists is deprecated.817 Use ~c"" if you indeed want a charlist or use "" instead.818 You may run "mix format --migrate" to change all single-quoted819 strings to use the ~c sigil and fix this warning.820 │821 61 │ 'europe',822 │ ~823 │824 └─ lib/iana_data_dir.ex:61:7825826 warning: using single-quoted strings to represent charlists is deprecated.827 Use ~c"" if you indeed want a charlist or use "" instead.828 You may run "mix format --migrate" to change all single-quoted829 strings to use the ~c sigil and fix this warning.830 │831 62 │ 'northamerica',832 │ ~833 │834 └─ lib/iana_data_dir.ex:62:7835836 warning: using single-quoted strings to represent charlists is deprecated.837 Use ~c"" if you indeed want a charlist or use "" instead.838 You may run "mix format --migrate" to change all single-quoted839 strings to use the ~c sigil and fix this warning.840 │841 63 │ 'southamerica',842 │ ~843 │844 └─ lib/iana_data_dir.ex:63:7845846 warning: using single-quoted strings to represent charlists is deprecated.847 Use ~c"" if you indeed want a charlist or use "" instead.848 You may run "mix format --migrate" to change all single-quoted849 strings to use the ~c sigil and fix this warning.850 │851 64 │ 'iso3166.tab',852 │ ~853 │854 └─ lib/iana_data_dir.ex:64:7855856 warning: using single-quoted strings to represent charlists is deprecated.857 Use ~c"" if you indeed want a charlist or use "" instead.858 You may run "mix format --migrate" to change all single-quoted859 strings to use the ~c sigil and fix this warning.860 │861 65 │ 'zone1970.tab'862 │ ~863 │864 └─ lib/iana_data_dir.ex:65:7865866 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead867 │868 3 │ @custom_data_dir Application.get_env(:tz, :data_dir)869 │ ~870 │871 └─ lib/iana_data_dir.ex:3:32: Tz.IanaDataDir (module)872873 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead874 │875 5 │ @build_periods_with_ongoing_dst_changes_until_year Application.get_env(:tz, :build_time_zone_periods_with_ongoing_dst_changes_until_year, 5 + NaiveDateTime.utc_now().year)876 │ ~877 │878 └─ lib/iana_file_parser.ex:5:66: Tz.IanaFileParser (module)879880 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead881 │882 11 │ @reject_periods_before_year Application.get_env(:tz, :reject_time_zone_periods_before_year)883 │ ~884 │885 └─ lib/compiler.ex:11:43: Tz.Compiler (module)886887 warning: unused require Tz.IanaFileParser888 │889 4 │ require Tz.IanaFileParser890 │ ~891 │892 └─ lib/compiler.ex:4:3893894 warning: unused require Tz.PeriodsBuilder895 │896 5 │ require Tz.PeriodsBuilder897 │ ~898 │899 └─ lib/compiler.ex:5:3900901 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead902 │903 15 │ Logger.warn("Tz found a more recent time zone database available for download at #{link}")904 │ ~905 │906 └─ lib/watch_periodically.ex:15:18: Tz.WatchPeriodically.watch/0907908 warning: nil.request/2 is undefined (module nil is not available or is yet to be defined)909 │910 27 │ case HTTP.get_http_client!().request("data.iana.org", "/time-zones/tzdb/version") do911 │ ~912 │913 └─ lib/updater.ex:27:34: Tz.Updater.fetch_iana_tz_version/0914 └─ lib/updater.ex:75:34: Tz.Updater.download_tz_database/1915916 warning: this clause of defp reject_periods_before_year/2 is never used (or it will always fail/warn when invoked)917 │918 65 │ defp reject_periods_before_year(periods, reject_before_year) do919 │ ~920 │921 └─ lib/compiler.ex:65:8: Tz.Compiler.reject_periods_before_year/2922923 warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)924 │925 250 │ defp add_to_and_convert_date_tuple(:min, _, _, _), do: :min926 │ ~927 │928 └─ lib/periods_builder.ex:250:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4929930 warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)931 │932 251 │ defp add_to_and_convert_date_tuple(:max, _, _, _), do: :max933 │ ~934 │935 └─ lib/periods_builder.ex:251:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4936937Generated tz app938==> tz_extra939Compiling 7 files (.ex)940 warning: unused require TzExtra.IanaFileParser941 │942 4 │ require TzExtra.IanaFileParser943 │ ~944 │945 └─ lib/compiler.ex:4:3946947 warning: unused require TzExtra.Compiler948 │949 3 │ require TzExtra.Compiler950 │ ~951 │952 └─ lib/changeset.ex:3:5953954Generated tz_extra app955==> uboot_env956Compiling 5 files (.ex)957Generated uboot_env app958==> cc_precompiler959Compiling 3 files (.ex)960Generated cc_precompiler app961==> exqlite962Downloading precompiled NIF to /home/nerves/.cache/elixir_make/exqlite-nif-2.17-riscv64-linux-gnu-0.42.0.tar.gz963Compiling 12 files (.ex)964Generated exqlite app965==> ecto_sqlite3966Compiling 4 files (.ex)967 warning: using single-quoted strings to represent charlists is deprecated.968 Use ~c"" if you indeed want a charlist or use "" instead.969 You may run "mix format --migrate" to change all single-quoted970 strings to use the ~c sigil and fix this warning.971 │972 778 │ {['?'], counter + 1}973 │ ~974 │975 └─ lib/ecto/adapters/sqlite3/connection.ex:778:11976977 warning: using single-quoted strings to represent charlists is deprecated.978 Use ~c"" if you indeed want a charlist or use "" instead.979 You may run "mix format --migrate" to change all single-quoted980 strings to use the ~c sigil and fix this warning.981 │982 1177 │ '?'983 │ ~984 │985 └─ lib/ecto/adapters/sqlite3/connection.ex:1177:5986987 warning: function dump_cmd/3 required by behaviour Ecto.Adapter.Structure is not implemented (in module Ecto.Adapters.SQLite3)988 │989 1 │ defmodule Ecto.Adapters.SQLite3 do990 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~991 │992 └─ lib/ecto/adapters/sqlite3.ex:1: Ecto.Adapters.SQLite3 (module)993994 warning: function query_many/4 required by behaviour Ecto.Adapters.SQL.Connection is not implemented (in module Ecto.Adapters.SQLite3.Connection)995 │996 1 │ defmodule Ecto.Adapters.SQLite3.Connection do997 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~998 │999 └─ lib/ecto/adapters/sqlite3/connection.ex:1: Ecto.Adapters.SQLite3.Connection (module)10001001 warning: the following clause is redundant:10021003 def execute_ddl({:create, %Ecto.Migration.Index{} = index})10041005 it has type:10061007 dynamic({:create, %Ecto.Migration.Index{}})10081009 previous clauses have already matched on the following types:10101011 {:create, %Ecto.Migration.Table{}, term()}1012 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1013 {:drop, %Ecto.Migration.Table{}}1014 {:drop, %Ecto.Migration.Table{}, term()}1015 {:drop_if_exists, %Ecto.Migration.Table{}}1016 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1017 {:alter, %Ecto.Migration.Table{}, term()}1018 {:create, %Ecto.Migration.Index{}}1019 {:create_if_not_exists, %Ecto.Migration.Index{}}1020 {:drop, %Ecto.Migration.Index{}}1021 {:drop, %Ecto.Migration.Index{}, term()}1022 {:drop_if_exists, %Ecto.Migration.Index{}}1023 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1024 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1025 {:rename, %Ecto.Migration.Table{}, term(), term()}10261027 │1028 560 │ def execute_ddl({:create, %Index{} = index}) do1029 │ ~1030 │1031 └─ lib/ecto/adapters/sqlite3/connection.ex:560:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110321033 warning: the following clause is redundant:10341035 def execute_ddl({:create_if_not_exists, %Ecto.Migration.Index{} = index})10361037 it has type:10381039 dynamic({:create_if_not_exists, %Ecto.Migration.Index{}})10401041 previous clauses have already matched on the following types:10421043 {:create, %Ecto.Migration.Table{}, term()}1044 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1045 {:drop, %Ecto.Migration.Table{}}1046 {:drop, %Ecto.Migration.Table{}, term()}1047 {:drop_if_exists, %Ecto.Migration.Table{}}1048 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1049 {:alter, %Ecto.Migration.Table{}, term()}1050 {:create, %Ecto.Migration.Index{}}1051 {:create_if_not_exists, %Ecto.Migration.Index{}}1052 {:drop, %Ecto.Migration.Index{}}1053 {:drop, %Ecto.Migration.Index{}, term()}1054 {:drop_if_exists, %Ecto.Migration.Index{}}1055 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1056 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1057 {:rename, %Ecto.Migration.Table{}, term(), term()}10581059 │1060 582 │ def execute_ddl({:create_if_not_exists, %Index{} = index}) do1061 │ ~1062 │1063 └─ lib/ecto/adapters/sqlite3/connection.ex:582:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110641065 warning: the following clause is redundant:10661067 def execute_ddl({:drop, %Ecto.Migration.Index{} = index})10681069 it has type:10701071 dynamic({:drop, %Ecto.Migration.Index{}})10721073 previous clauses have already matched on the following types:10741075 {:create, %Ecto.Migration.Table{}, term()}1076 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1077 {:drop, %Ecto.Migration.Table{}}1078 {:drop, %Ecto.Migration.Table{}, term()}1079 {:drop_if_exists, %Ecto.Migration.Table{}}1080 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1081 {:alter, %Ecto.Migration.Table{}, term()}1082 {:create, %Ecto.Migration.Index{}}1083 {:create_if_not_exists, %Ecto.Migration.Index{}}1084 {:drop, %Ecto.Migration.Index{}}1085 {:drop, %Ecto.Migration.Index{}, term()}1086 {:drop_if_exists, %Ecto.Migration.Index{}}1087 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1088 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1089 {:rename, %Ecto.Migration.Table{}, term(), term()}1090 {:create, %Ecto.Migration.Constraint{}}10911092 │1093 609 │ def execute_ddl({:drop, %Index{} = index}) do1094 │ ~1095 │1096 └─ lib/ecto/adapters/sqlite3/connection.ex:609:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110971098 warning: the following clause is redundant:10991100 def execute_ddl({:drop, %Ecto.Migration.Index{} = index, _mode})11011102 it has type:11031104 dynamic({:drop, %Ecto.Migration.Index{}, term()})11051106 previous clauses have already matched on the following types:11071108 {:create, %Ecto.Migration.Table{}, term()}1109 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1110 {:drop, %Ecto.Migration.Table{}}1111 {:drop, %Ecto.Migration.Table{}, term()}1112 {:drop_if_exists, %Ecto.Migration.Table{}}1113 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1114 {:alter, %Ecto.Migration.Table{}, term()}1115 {:create, %Ecto.Migration.Index{}}1116 {:create_if_not_exists, %Ecto.Migration.Index{}}1117 {:drop, %Ecto.Migration.Index{}}1118 {:drop, %Ecto.Migration.Index{}, term()}1119 {:drop_if_exists, %Ecto.Migration.Index{}}1120 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1121 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1122 {:rename, %Ecto.Migration.Table{}, term(), term()}1123 {:create, %Ecto.Migration.Constraint{}}11241125 │1126 619 │ def execute_ddl({:drop, %Index{} = index, _mode}) do1127 │ ~1128 │1129 └─ lib/ecto/adapters/sqlite3/connection.ex:619:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111301131 warning: the following clause is redundant:11321133 def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index})11341135 it has type:11361137 dynamic({:drop_if_exists, %Ecto.Migration.Index{}})11381139 previous clauses have already matched on the following types:11401141 {:create, %Ecto.Migration.Table{}, term()}1142 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1143 {:drop, %Ecto.Migration.Table{}}1144 {:drop, %Ecto.Migration.Table{}, term()}1145 {:drop_if_exists, %Ecto.Migration.Table{}}1146 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1147 {:alter, %Ecto.Migration.Table{}, term()}1148 {:create, %Ecto.Migration.Index{}}1149 {:create_if_not_exists, %Ecto.Migration.Index{}}1150 {:drop, %Ecto.Migration.Index{}}1151 {:drop, %Ecto.Migration.Index{}, term()}1152 {:drop_if_exists, %Ecto.Migration.Index{}}1153 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1154 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1155 {:rename, %Ecto.Migration.Table{}, term(), term()}1156 {:create, %Ecto.Migration.Constraint{}}11571158 │1159 624 │ def execute_ddl({:drop_if_exists, %Index{} = index}) do1160 │ ~1161 │1162 └─ lib/ecto/adapters/sqlite3/connection.ex:624:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111631164 warning: the following clause is redundant:11651166 def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index, _mode})11671168 it has type:11691170 dynamic({:drop_if_exists, %Ecto.Migration.Index{}, term()})11711172 previous clauses have already matched on the following types:11731174 {:create, %Ecto.Migration.Table{}, term()}1175 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1176 {:drop, %Ecto.Migration.Table{}}1177 {:drop, %Ecto.Migration.Table{}, term()}1178 {:drop_if_exists, %Ecto.Migration.Table{}}1179 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1180 {:alter, %Ecto.Migration.Table{}, term()}1181 {:create, %Ecto.Migration.Index{}}1182 {:create_if_not_exists, %Ecto.Migration.Index{}}1183 {:drop, %Ecto.Migration.Index{}}1184 {:drop, %Ecto.Migration.Index{}, term()}1185 {:drop_if_exists, %Ecto.Migration.Index{}}1186 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1187 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1188 {:rename, %Ecto.Migration.Table{}, term(), term()}1189 {:create, %Ecto.Migration.Constraint{}}11901191 │1192 634 │ def execute_ddl({:drop_if_exists, %Index{} = index, _mode}) do1193 │ ~1194 │1195 └─ lib/ecto/adapters/sqlite3/connection.ex:634:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111961197 warning: the following clause is redundant:11981199 def execute_ddl(1200 {:rename, %Ecto.Migration.Table{} = current_table, %Ecto.Migration.Table{} = new_table}1201 )12021203 it has type:12041205 dynamic({:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}})12061207 previous clauses have already matched on the following types:12081209 {:create, %Ecto.Migration.Table{}, term()}1210 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1211 {:drop, %Ecto.Migration.Table{}}1212 {:drop, %Ecto.Migration.Table{}, term()}1213 {:drop_if_exists, %Ecto.Migration.Table{}}1214 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1215 {:alter, %Ecto.Migration.Table{}, term()}1216 {:create, %Ecto.Migration.Index{}}1217 {:create_if_not_exists, %Ecto.Migration.Index{}}1218 {:drop, %Ecto.Migration.Index{}}1219 {:drop, %Ecto.Migration.Index{}, term()}1220 {:drop_if_exists, %Ecto.Migration.Index{}}1221 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1222 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1223 {:rename, %Ecto.Migration.Table{}, term(), term()}1224 {:create, %Ecto.Migration.Constraint{}}1225 {:drop, %Ecto.Migration.Constraint{}, term()}1226 {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12271228 │1229 649 │ def execute_ddl({:rename, %Table{} = current_table, %Table{} = new_table}) do1230 │ ~1231 │1232 └─ lib/ecto/adapters/sqlite3/connection.ex:649:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112331234 warning: the following clause is redundant:12351236 def execute_ddl({:rename, %Ecto.Migration.Table{} = table, current_column, new_column})12371238 it has type:12391240 dynamic({:rename, %Ecto.Migration.Table{}, term(), term()})12411242 previous clauses have already matched on the following types:12431244 {:create, %Ecto.Migration.Table{}, term()}1245 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1246 {:drop, %Ecto.Migration.Table{}}1247 {:drop, %Ecto.Migration.Table{}, term()}1248 {:drop_if_exists, %Ecto.Migration.Table{}}1249 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1250 {:alter, %Ecto.Migration.Table{}, term()}1251 {:create, %Ecto.Migration.Index{}}1252 {:create_if_not_exists, %Ecto.Migration.Index{}}1253 {:drop, %Ecto.Migration.Index{}}1254 {:drop, %Ecto.Migration.Index{}, term()}1255 {:drop_if_exists, %Ecto.Migration.Index{}}1256 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1257 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1258 {:rename, %Ecto.Migration.Table{}, term(), term()}1259 {:create, %Ecto.Migration.Constraint{}}1260 {:drop, %Ecto.Migration.Constraint{}, term()}1261 {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12621263 │1264 661 │ def execute_ddl({:rename, %Table{} = table, current_column, new_column}) do1265 │ ~1266 │1267 └─ lib/ecto/adapters/sqlite3/connection.ex:661:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112681269Generated ecto_sqlite3 app1270==> property_table1271Compiling 8 files (.ex)1272Generated property_table app1273==> nerves_uevent1274 CC uevent.o1275 LD uevent1276Compiling 5 files (.ex)1277Generated nerves_uevent app1278==> nerves_runtime1279Compiling 14 files (.ex)1280Generated nerves_runtime app1281==> toolshed1282Compiling 5 files (.ex)1283Generated toolshed app1284==> tailwind1285Compiling 3 files (.ex)1286Generated tailwind app1287==> nerves_compatibility_test1288===> Analyzing applications...1289===> Compiling cowboy_telemetry1290==> plug_cowboy1291Compiling 5 files (.ex)1292Generated plug_cowboy app1293warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1294 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21295 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11296 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51297 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21298 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41299 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/213001301==> phoenix1302Compiling 69 files (.ex)1303 warning: using single-quoted strings to represent charlists is deprecated.1304 Use ~c"" if you indeed want a charlist or use "" instead.1305 You may run "mix format --migrate" to change all single-quoted1306 strings to use the ~c sigil and fix this warning.1307 │1308 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},1309 │ ~1310 │1311 └─ lib/mix/tasks/phx.gen.cert.ex:258:3313121313 warning: using single-quoted strings to represent charlists is deprecated.1314 Use ~c"" if you indeed want a charlist or use "" instead.1315 You may run "mix format --migrate" to change all single-quoted1316 strings to use the ~c sigil and fix this warning.1317 │1318 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}1319 │ ~1320 │1321 └─ lib/mix/tasks/phx.gen.cert.ex:259:3213221323 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1324 │1325 50 │ Logger.warn(1326 │ ~1327 │1328 └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/313291330 warning: unused require Logger1331 │1332 9 │ require Logger1333 │ ~1334 │1335 └─ lib/phoenix/config.ex:9:313361337 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13381339 This error happens when you have function calls without parentheses inside keywords. For example:13401341 function(arg, one: nested_call a, b, c)1342 function(arg, one: if expr, do: :this, else: :that)13431344 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:13451346 function(arg, one: if(expr, do: :this, else: :that))1347 function(arg, one: nested_call(a, b, c))13481349 Ambiguity found at:1350 │1351 998 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"1352 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1353 │1354 └─ lib/phoenix/controller.ex:99813551356 warning: unused require Logger1357 │1358 259 │ require Logger1359 │ ~1360 │1361 └─ lib/phoenix/endpoint.ex:259:313621363 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1364 │1365 1009 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>1366 │ ~1367 │1368 └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/113691370 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1371 │1372 34 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")1373 │ ~1374 │1375 └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/113761377 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1378 │1379 57 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")1380 │ ~1381 │1382 └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/113831384 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1385 │1386 78 │ Logger.warn """1387 │ ~1388 │1389 └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/213901391 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1392 │1393 264 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")1394 │ ~1395 │1396 └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/213971398 warning: unused require Phoenix.Endpoint1399 │1400 6 │ require Phoenix.Endpoint1401 │ ~1402 │1403 └─ lib/phoenix/controller.ex:6:314041405 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 operator1406 │1407 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1408 │ ~1409 │1410 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/214111412 warning: unused require Phoenix.Endpoint1413 │1414 19 │ require Phoenix.Endpoint1415 │ ~1416 │1417 └─ lib/phoenix/endpoint/render_errors.ex:19:314181419 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.14201421 This error happens when you have function calls without parentheses inside keywords. For example:14221423 function(arg, one: nested_call a, b, c)1424 function(arg, one: if expr, do: :this, else: :that)14251426 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:14271428 function(arg, one: if(expr, do: :this, else: :that))1429 function(arg, one: nested_call(a, b, c))14301431 Ambiguity found at:1432 │1433 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """1434 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1435 │1436 └─ lib/phoenix/router/resource.ex:7114371438 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1439 │1440 653 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end1441 │ ~1442 │1443 └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/414441445 warning: unused require Phoenix.Endpoint1446 │1447 6 │ require Phoenix.Endpoint1448 │ ~1449 │1450 └─ lib/phoenix/channel/server.ex:6:314511452 warning: unused require Phoenix.Endpoint1453 │1454 192 │ require Phoenix.Endpoint1455 │ ~1456 │1457 └─ lib/phoenix/socket.ex:192:314581459 warning: unused require Logger1460 │1461 93 │ require Logger1462 │ ~1463 │1464 └─ lib/phoenix/token.ex:93:314651466 warning: comparison between distinct types found:14671468 merge_all != []14691470 given types:14711472 dynamic(non_empty_list({atom(), term()})) != empty_list()14731474 where "merge_all" was given the type:14751476 # type: dynamic(non_empty_list({atom(), term()}))1477 # from: lib/phoenix/router/route.ex:111:151478 merge_all = merge_params ++ merge_private ++ merge_assigns14791480 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 false14811482 type warning found at:1483 │1484 113 │ if merge_all != [] do1485 │ ~1486 │1487 └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/114881489 warning: a struct for Plug.Conn is expected on struct update:14901491 %Plug.Conn{conn | state: :sent}14921493 but got type:14941495 dynamic()14961497 where "conn" was given the type:14981499 # type: dynamic()1500 # from: lib/phoenix/endpoint/render_errors.ex:57:171501 conn15021503 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15041505 type warning found at:1506 │1507 61 │ %Plug.Conn{conn | state: :sent}1508 │ ~1509 │1510 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/515111512 warning: a struct for Plug.Conn is expected on struct update:15131514 %Plug.Conn{conn | query_params: %{}, params: %{}}15151516 but got type:15171518 dynamic(%{..., params: %Plug.Conn.Unfetched{}})15191520 where "conn" was given the types:15211522 # type: dynamic(%{..., params: term()})1523 # from: lib/phoenix/endpoint/render_errors.ex:124:171524 conn.params15251526 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1527 # from: lib/phoenix/endpoint/render_errors.ex:124:171528 conn.params15291530 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15311532 type warning found at:1533 │1534 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1535 │ ~1536 │1537 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115381539 warning: a struct for Plug.Conn is expected on struct update:15401541 %Plug.Conn{conn | query_params: %{}, params: params}15421543 but got type:15441545 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})15461547 where "conn" was given the types:15481549 # type: dynamic(%{..., params: term()})1550 # from: lib/phoenix/endpoint/render_errors.ex:124:171551 conn.params15521553 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1554 # from: lib/phoenix/endpoint/render_errors.ex:124:171555 conn.params15561557 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15581559 type warning found at:1560 │1561 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1562 │ ~1563 │1564 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115651566 warning: incompatible types given to socket_children/1:15671568 socket_children(mod)15691570 given types:15711572 -dynamic(atom())-15731574 but expected one of:15751576 %{..., __sockets__: term()}15771578 where "mod" was given the types:15791580 # type: dynamic(atom() or binary())1581 # from: lib/phoenix/endpoint/supervisor.ex:27:411582 defaults(otp_app, mod)15831584 # type: dynamic(atom())1585 # from: lib/phoenix/endpoint/supervisor.ex:31:161586 mod.init(:supervisor, env_conf)15871588 type warning found at:1589 │1590 67 │ socket_children(mod) ++1591 │ ~1592 │1593 └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/115941595 warning: a struct for Plug.Conn is expected on struct update:15961597 %Plug.Conn{conn | params: params}15981599 but got type:16001601 dynamic(%{..., params: map()})16021603 where "conn" was given the type:16041605 # type: dynamic(%{..., params: map()})1606 # from: lib/phoenix/controller.ex:1036:171607 Map.get(conn.params, required_key)16081609 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16101611 type warning found at:1612 │1613 1043 │ %Plug.Conn{conn | params: params}1614 │ ~1615 │1616 └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/216171618 warning: expected a module (an atom) when invoking compress_file/2 in expression:16191620 compressor.compress_file(file.digested_filename, file.digested_content)16211622 where "compressor" was given the type:16231624 # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1625 # from: lib/phoenix/digester.ex:167:281626 [file_extension | _] = compressor.file_extensions16271628 where "file" was given the type:16291630 # type: dynamic(%{..., relative_path: term()})1631 # from: lib/phoenix/digester.ex:161:171632 Path.join(output_path, file.relative_path)16331634 type warning found at:1635 │1636 170 │ compressor.compress_file(file.digested_filename, file.digested_content) do1637 │ ~1638 │1639 └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/216401641Generated phoenix app1642warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1643 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21644 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11645 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51646 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21647 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41648 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/216491650==> phoenix_live_view1651Compiling 31 files (.ex)1652 warning: using single-quoted strings to represent charlists is deprecated.1653 Use ~c"" if you indeed want a charlist or use "" instead.1654 You may run "mix format --migrate" to change all single-quoted1655 strings to use the ~c sigil and fix this warning.1656 │1657 319 │ {'LiveView', view},1658 │ ~1659 │1660 └─ lib/phoenix_live_view/channel.ex:319:1016611662 warning: using single-quoted strings to represent charlists is deprecated.1663 Use ~c"" if you indeed want a charlist or use "" instead.1664 You may run "mix format --migrate" to change all single-quoted1665 strings to use the ~c sigil and fix this warning.1666 │1667 320 │ {'Parent pid', parent_pid},1668 │ ~1669 │1670 └─ lib/phoenix_live_view/channel.ex:320:1016711672 warning: using single-quoted strings to represent charlists is deprecated.1673 Use ~c"" if you indeed want a charlist or use "" instead.1674 You may run "mix format --migrate" to change all single-quoted1675 strings to use the ~c sigil and fix this warning.1676 │1677 321 │ {'Transport pid', transport_pid},1678 │ ~1679 │1680 └─ lib/phoenix_live_view/channel.ex:321:1016811682 warning: using single-quoted strings to represent charlists is deprecated.1683 Use ~c"" if you indeed want a charlist or use "" instead.1684 You may run "mix format --migrate" to change all single-quoted1685 strings to use the ~c sigil and fix this warning.1686 │1687 322 │ {'Topic', topic},1688 │ ~1689 │1690 └─ lib/phoenix_live_view/channel.ex:322:1016911692 warning: using single-quoted strings to represent charlists is deprecated.1693 Use ~c"" if you indeed want a charlist or use "" instead.1694 You may run "mix format --migrate" to change all single-quoted1695 strings to use the ~c sigil and fix this warning.1696 │1697 323 │ {'Components count', map_size(cid_to_component)}1698 │ ~1699 │1700 └─ lib/phoenix_live_view/channel.ex:323:1017011702 warning: using single-quoted strings to represent charlists is deprecated.1703 Use ~c"" if you indeed want a charlist or use "" instead.1704 You may run "mix format --migrate" to change all single-quoted1705 strings to use the ~c sigil and fix this warning.1706 │1707 329 │ [data: [{'State', state}]]1708 │ ~1709 │1710 └─ lib/phoenix_live_view/channel.ex:329:1417111712 warning: using single-quoted strings to represent charlists is deprecated.1713 Use ~c"" if you indeed want a charlist or use "" instead.1714 You may run "mix format --migrate" to change all single-quoted1715 strings to use the ~c sigil and fix this warning.1716 │1717 112 │ @codepoints '\s\n\r\t'1718 │ ~1719 │1720 └─ lib/phoenix_live_view/html_algebra.ex:112:1517211722 warning: using single-quoted strings to represent charlists is deprecated.1723 Use ~c"" if you indeed want a charlist or use "" instead.1724 You may run "mix format --migrate" to change all single-quoted1725 strings to use the ~c sigil and fix this warning.1726 │1727 125 │ do: :binary.first(text) in '\n\r'1728 │ ~1729 │1730 └─ lib/phoenix_live_view/html_algebra.ex:125:3217311732 warning: using single-quoted strings to represent charlists is deprecated.1733 Use ~c"" if you indeed want a charlist or use "" instead.1734 You may run "mix format --migrate" to change all single-quoted1735 strings to use the ~c sigil and fix this warning.1736 │1737 130 │ do: :binary.last(text) in '\n\r'1738 │ ~1739 │1740 └─ lib/phoenix_live_view/html_algebra.ex:130:3117411742 warning: using single-quoted strings to represent charlists is deprecated.1743 Use ~c"" if you indeed want a charlist or use "" instead.1744 You may run "mix format --migrate" to change all single-quoted1745 strings to use the ~c sigil and fix this warning.1746 │1747 503 │ defp count_newlines_until_text(<<char, rest::binary>>, counter) when char in '\s\t\r',1748 │ ~1749 │1750 └─ lib/phoenix_live_view/html_formatter.ex:503:8017511752 warning: using single-quoted strings to represent charlists is deprecated.1753 Use ~c"" if you indeed want a charlist or use "" instead.1754 You may run "mix format --migrate" to change all single-quoted1755 strings to use the ~c sigil and fix this warning.1756 │1757 536 │ do: if(String.trim_leading(text) == "", do: false, else: !(:binary.last(text) in '\s\t'))1758 │ ~1759 │1760 └─ lib/phoenix_live_view/html_formatter.ex:536:8617611762 warning: using single-quoted strings to represent charlists is deprecated.1763 Use ~c"" if you indeed want a charlist or use "" instead.1764 You may run "mix format --migrate" to change all single-quoted1765 strings to use the ~c sigil and fix this warning.1766 │1767 546 │ if String.trim_leading(text) != "" and :binary.first(text) not in '\s\t\n\r' do1768 │ ~1769 │1770 └─ lib/phoenix_live_view/html_formatter.ex:546:7317711772 warning: using single-quoted strings to represent charlists is deprecated.1773 Use ~c"" if you indeed want a charlist or use "" instead.1774 You may run "mix format --migrate" to change all single-quoted1775 strings to use the ~c sigil and fix this warning.1776 │1777 3 │ @space_chars '\s\t\f'1778 │ ~1779 │1780 └─ lib/phoenix_live_view/html_tokenizer.ex:3:1617811782 warning: using single-quoted strings to represent charlists is deprecated.1783 Use ~c"" if you indeed want a charlist or use "" instead.1784 You may run "mix format --migrate" to change all single-quoted1785 strings to use the ~c sigil and fix this warning.1786 │1787 4 │ @quote_chars '"\''1788 │ ~1789 │1790 └─ lib/phoenix_live_view/html_tokenizer.ex:4:1617911792 warning: using single-quoted strings to represent charlists is deprecated.1793 Use ~c"" if you indeed want a charlist or use "" instead.1794 You may run "mix format --migrate" to change all single-quoted1795 strings to use the ~c sigil and fix this warning.1796 │1797 5 │ @stop_chars '>/=\r\n' ++ @quote_chars ++ @space_chars1798 │ ~1799 │1800 └─ lib/phoenix_live_view/html_tokenizer.ex:5:1518011802 warning: unused require Logger1803 │1804 25 │ require Logger1805 │ ~1806 │1807 └─ lib/phoenix_live_view/socket.ex:25:318081809 warning: unused require Phoenix.ChannelTest1810 │1811 179 │ require Phoenix.ChannelTest1812 │ ~1813 │1814 └─ lib/phoenix_live_view/test/live_view_test.ex:179:318151816 warning: unused require Phoenix.ConnTest1817 │1818 178 │ require Phoenix.ConnTest1819 │ ~1820 │1821 └─ lib/phoenix_live_view/test/live_view_test.ex:178:318221823 warning: unused require Phoenix.ChannelTest1824 │1825 4 │ require Phoenix.ChannelTest1826 │ ~1827 │1828 └─ lib/phoenix_live_view/test/upload_client.ex:4:318291830 warning: unused require Logger1831 │1832 6 │ require Logger1833 │ ~1834 │1835 └─ lib/phoenix_live_view/upload_channel.ex:6:318361837 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18381839 %Phoenix.LiveView.Socket{1840 socket1841 | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1842 }18431844 but got type:18451846 dynamic()18471848 where "socket" was given the type:18491850 # type: dynamic()1851 # from: lib/phoenix_live_view/utils.ex:459:211852 socket18531854 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18551856 type warning found at:1857 │1858 460 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1859 │ ~1860 │1861 └─ lib/phoenix_live_view/utils.ex:460:5: Phoenix.LiveView.Utils.do_mount_opt/318621863 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18641865 %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}18661867 but got type:18681869 dynamic()18701871 where "socket" was given the type:18721873 # type: dynamic()1874 # from: lib/phoenix_live_view/utils.ex:463:211875 socket18761877 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18781879 type warning found at:1880 │1881 464 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1882 │ ~1883 │1884 └─ lib/phoenix_live_view/utils.ex:464:5: Phoenix.LiveView.Utils.do_mount_opt/318851886 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18871888 %Phoenix.LiveView.Socket{1889 socket1890 | assigns: Map.merge(temp_assigns, socket.assigns),1891 private: Map.put(socket.private, :temporary_assigns, temp_assigns)1892 }18931894 but got type:18951896 dynamic()18971898 where "socket" was given the type:18991900 # type: dynamic()1901 # from: lib/phoenix_live_view/utils.ex:473:211902 socket19031904 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19051906 type warning found at:1907 │1908 480 │ %Socket{1909 │ ~1910 │1911 └─ lib/phoenix_live_view/utils.ex:480:5: Phoenix.LiveView.Utils.do_mount_opt/319121913 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:19141915 %Phoenix.LiveView.Socket{1916 socket1917 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1918 }19191920 but got type:19211922 dynamic(%{..., assigns: term()})19231924 where "socket" was given the type:19251926 # type: dynamic(%{..., assigns: term()})1927 # from: lib/phoenix_live_view/utils.ex:491:431928 %{assigns: assigns} = socket19291930 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19311932 type warning found at:1933 │1934 492 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1935 │ ~1936 │1937 └─ lib/phoenix_live_view/utils.ex:492:14: Phoenix.LiveView.Utils.render_assigns/119381939 warning: a struct for Phoenix.HTML.Form is expected on struct update:19401941 %Phoenix.HTML.Form{Phoenix.HTML.FormData.to_form(form_for, form_options) | action: action || "#"}19421943 but got type:19441945 dynamic()19461947 where "form_for" was given the type:19481949 # type: dynamic(not false and not nil)1950 # from: lib/phoenix_live_view/helpers.ex:1101:141951 form_for = assigns[:for] || :erlang.error(ArgumentError.exception("missing :for assign to form"))19521953 where "form_options" was given the type:19541955 # type: dynamic(list({term(), term()}))1956 # from: lib/phoenix_live_view/helpers.ex:1102:181957 form_options = assigns_to_attributes(assigns, [:action, :for])19581959 you must assign "Phoenix.HTML.FormData.to_form(form_for, form_options)" to variable and pattern match on "%Phoenix.HTML.Form{}"19601961 type warning found at:1962 │1963 1106 │ form = %Phoenix.HTML.Form{1964 │ ~1965 │1966 └─ lib/phoenix_live_view/helpers.ex:1106:14: Phoenix.LiveView.Helpers.form/119671968 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19691970 %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}19711972 but got type:19731974 dynamic()19751976 where "entry" was given the type:19771978 # type: dynamic()1979 # from: lib/phoenix_live_view/upload_config.ex:339:281980 entry <- conf.entries19811982 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19831984 type warning found at:1985 │1986 339 │ | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1987 │ ~1988 │1989 └─ lib/phoenix_live_view/upload_config.ex:339:49: Phoenix.LiveView.UploadConfig.mark_preflighted/119901991 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19921993 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}19941995 but got type:19961997 dynamic()19981999 where "entry" was given the type:20002001 # type: dynamic()2002 # from: lib/phoenix_live_view/upload_config.ex:539:302003 entry20042005 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20062007 type warning found at:2008 │2009 540 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}2010 │ ~2011 │2012 └─ lib/phoenix_live_view/upload_config.ex:540:13: Phoenix.LiveView.UploadConfig.put_valid_entry/220132014 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:20152016 %Phoenix.LiveView.UploadEntry{entry | valid?: false}20172018 but got type:20192020 dynamic()20212022 where "entry" was given the type:20232024 # type: dynamic()2025 # from: lib/phoenix_live_view/upload_config.ex:552:322026 entry20272028 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20292030 type warning found at:2031 │2032 553 │ entry = %UploadEntry{entry | valid?: false}2033 │ ~2034 │2035 └─ lib/phoenix_live_view/upload_config.ex:553:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/320362037 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:20382039 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}20402041 but got type:20422043 dynamic()20442045 where "entry" was given the type:20462047 # type: dynamic()2048 # from: lib/phoenix_live_view/upload_config.ex:635:422049 entry20502051 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20522053 type warning found at:2054 │2055 635 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)2056 │ ~2057 │2058 └─ lib/phoenix_live_view/upload_config.ex:635:51: Phoenix.LiveView.UploadConfig.cancel_entry/220592060 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead2061 │2062 72 │ Logger.disable(self())2063 │ ~2064 │2065 └─ lib/phoenix_live_view/test/client_proxy.ex:72:12: Phoenix.LiveViewTest.ClientProxy.init/120662067 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:20682069 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}20702071 but got type:20722073 dynamic(%{..., rendered: map()})20742075 where "view" was given the type:20762077 # type: dynamic(%{..., rendered: map()})2078 # from: lib/phoenix_live_view/test/client_proxy.ex:701:242079 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20802081 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20822083 type warning found at:2084 │2085 702 │ new_view = %ClientProxy{view | rendered: rendered}2086 │ ~2087 │2088 └─ lib/phoenix_live_view/test/client_proxy.ex:702:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320892090 warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead2091 │2092 1095 │ Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)2093 │ ~2094 │2095 └─ lib/phoenix_live_view/test/client_proxy.ex:1095:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/32096 └─ lib/phoenix_live_view/test/client_proxy.ex:1100:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/32097 └─ lib/phoenix_live_view/test/client_proxy.ex:1110:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/32098 └─ lib/phoenix_live_view/test/client_proxy.ex:1119:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/320992100 warning: the right-hand side of || (shown as ... below) will never be executed:21012102 conn.private[:live_view_connect_info] || prune_conn(conn) || ...21032104 because the left-hand side always evaluates to:21052106 dynamic(not false and not nil)21072108 where "conn" was given the types:21092110 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2111 # from: lib/phoenix_live_view/test/live_view_test.ex:320:722112 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn21132114 # type: dynamic(%Plug.Conn{2115 assigns: %{..., live_module: term()},2116 private:2117 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2118 non_struct_map(),2119 status: integer()2120 })2121 # from: lib/phoenix_live_view/test/live_view_test.ex:334:352122 conn.private[:live_view_connect_params]21232124 type warning found at:2125 │2126 335 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2127 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2128 │2129 └─ lib/phoenix_live_view/test/live_view_test.ex:335: Phoenix.LiveViewTest.connect_from_static_token/221302131 warning: the following clause is redundant:21322133 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)21342135 it has type:21362137 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))21382139 previous clauses have already matched on the following types:21402141 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())2142 %Phoenix.LiveView.Socket{}, term(), (none() -> term())2143 term(), term(), (none(), none() -> term())2144 term(), term(), (none() -> term())21452146 │2147 952 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do2148 │ ~2149 │2150 └─ lib/phoenix_live_view.ex:952:7: Phoenix.LiveView.update/321512152 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2153 │2154 603 │ defp class_names(nil), do: []2155 │ ~2156 │2157 └─ lib/phoenix_live_view/js.ex:603:8: Phoenix.LiveView.JS.class_names/121582159 warning: the following clause is redundant:21602161 def to_iodata(%_{} = struct)21622163 it has type:21642165 dynamic(%Phoenix.LiveView.Rendered{})21662167 previous clauses have already matched on the following types:21682169 %Phoenix.LiveView.Rendered{}21702171 │2172 127 │ def to_iodata(%_{} = struct) do2173 │ ~2174 │2175 └─ lib/phoenix_live_view/engine.ex:127:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121762177 warning: the 1st pattern in clause will never match:21782179 nil21802181 because it is expected to receive type:21822183 dynamic(%Phoenix.LiveView.Rendered{})21842185 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21862187 type warning found at:2188 │2189 131 │ def to_iodata(nil) do2190 │ ~~~~~~~~~~~~~~~~~~~~~2191 │2192 └─ lib/phoenix_live_view/engine.ex:131: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121932194 warning: the following clause is redundant:21952196 def to_iodata(other)21972198 it has type:21992200 dynamic(%Phoenix.LiveView.Rendered{})22012202 previous clauses have already matched on the following types:22032204 %Phoenix.LiveView.Rendered{}22052206 │2207 135 │ def to_iodata(other) do2208 │ ~2209 │2210 └─ lib/phoenix_live_view/engine.ex:135:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/122112212Generated phoenix_live_view app2213warning: Phoenix now requires you to explicitly list which engine to use2214for Phoenix JSON encoding. We recommend everyone to upgrade to2215Jason by setting in your config/config.exs:22162217 config :phoenix, :json_library, Jason22182219And then adding {:jason, "~> 1.0"} as a dependency.22202221If instead you would rather continue using Poison, then add to2222your config/config.exs:22232224 config :phoenix, :json_library, Poison22252226 (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/22227 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/422282229warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2230 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22231 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12232 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52233 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22234 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42235 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/222362237==> phoenix_live_dashboard2238Compiling 40 files (.ex)2239 warning: using single-quoted strings to represent charlists is deprecated.2240 Use ~c"" if you indeed want a charlist or use "" instead.2241 You may run "mix format --migrate" to change all single-quoted2242 strings to use the ~c sigil and fix this warning.2243 │2244 709 │ '#Port' ++ rest = :erlang.port_to_list(ref)2245 │ ~2246 │2247 └─ lib/phoenix/live_dashboard/page_builder.ex:709:522482249 warning: using single-quoted strings to represent charlists is deprecated.2250 Use ~c"" if you indeed want a charlist or use "" instead.2251 You may run "mix format --migrate" to change all single-quoted2252 strings to use the ~c sigil and fix this warning.2253 │2254 728 │ '#Ref' ++ rest = :erlang.ref_to_list(ref)2255 │ ~2256 │2257 └─ lib/phoenix/live_dashboard/page_builder.ex:728:522582259 warning: using single-quoted strings to represent charlists is deprecated.2260 Use ~c"" if you indeed want a charlist or use "" instead.2261 You may run "mix format --migrate" to change all single-quoted2262 strings to use the ~c sigil and fix this warning.2263 │2264 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2265 │ ~2266 │2267 └─ lib/phoenix/live_dashboard/system_info.ex:446:1622682269 warning: using single-quoted strings to represent charlists is deprecated.2270 Use ~c"" if you indeed want a charlist or use "" instead.2271 You may run "mix format --migrate" to change all single-quoted2272 strings to use the ~c sigil and fix this warning.2273 │2274 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2275 │ ~2276 │2277 └─ lib/phoenix/live_dashboard/system_info.ex:446:2822782279 warning: using single-quoted strings to represent charlists is deprecated.2280 Use ~c"" if you indeed want a charlist or use "" instead.2281 You may run "mix format --migrate" to change all single-quoted2282 strings to use the ~c sigil and fix this warning.2283 │2284 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2285 │ ~2286 │2287 └─ lib/phoenix/live_dashboard/system_info.ex:446:4022882289 warning: using single-quoted strings to represent charlists is deprecated.2290 Use ~c"" if you indeed want a charlist or use "" instead.2291 You may run "mix format --migrate" to change all single-quoted2292 strings to use the ~c sigil and fix this warning.2293 │2294 654 │ [{'none', 0, 0}] -> []2295 │ ~2296 │2297 └─ lib/phoenix/live_dashboard/system_info.ex:654:1122982299warning: 0..-2 has a default step of -1, please write 0..-2//-1 instead2300 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323012302warning: 0..-3 has a default step of -1, please write 0..-3//-1 instead2303 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323042305 warning: expected a module (an atom) when invoking __live__/0 in expression:23062307 Map.put(component_assigns, :page, page).__live__()23082309 but got type:23102311 dynamic(%{..., page: term()})23122313 where "component_assigns" was given the type:23142315 # type: dynamic(map())2316 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:218:392317 Map.put(component_assigns, :page, page)23182319 where "page" was given the type:23202321 # type: dynamic()2322 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:215:232323 page23242325 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23262327 type warning found at:2328 │2329 218 │ live_component(component, Map.put(component_assigns, :page, page))2330 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2331 │2332 └─ lib/phoenix/live_dashboard/components/nav_bar_component.ex:218: Phoenix.LiveDashboard.NavBarComponent.render_content/223332334 warning: expected a module (an atom) when invoking __live__/0 in expression:23352336 component_assigns.__live__()23372338 where "component_assigns" was given the type:23392340 # type: dynamic(%{..., page: term()})2341 # from: lib/phoenix/live_dashboard/page_live.ex:238:232342 component_assigns = Map.put(component_assigns, :page, assigns.page)23432344 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23452346 type warning found at:2347 │2348 239 │ live_component(component, component_assigns)2349 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2350 │2351 └─ lib/phoenix/live_dashboard/page_live.ex:239: Phoenix.LiveDashboard.PageLive.render_page/223522353 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)2354 │2355 276 │ do: struct.to_string(value)2356 │ ~2357 │2358 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:276:16: Phoenix.LiveDashboard.EctoStatsPage.format/223592360 warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency2361 │2362 8 │ Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)2363 │ ~2364 │2365 └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/223662367Generated phoenix_live_dashboard app2368warning: the :gettext compiler is no longer required in your mix.exs.23692370Please find the following line in your mix.exs and remove the :gettext entry:23712372 compilers: [..., :gettext, ...] ++ Mix.compilers(),23732374 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/12375 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52376 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22377 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42378 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/22379 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/523802381==> exshome2382Compiling 68 files (.ex)2383 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2384 │2385 5 │ use Exshome.Dependency.GenServerDependency, name: "utc_time"2386 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2387 │2388 └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_dependency_change/123892390 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2391 │2392 5 │ use Exshome.Dependency.GenServerDependency, name: "utc_time"2393 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2394 │2395 └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_event/223962397 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2398 │2399 6 │ use Exshome.Dependency.GenServerDependency,2400 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2401 │2402 └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_dependency_change/124032404 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2405 │2406 6 │ use Exshome.Dependency.GenServerDependency,2407 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2408 │2409 └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_event/224102411 warning: using single-quoted strings to represent charlists is deprecated.2412 Use ~c"" if you indeed want a charlist or use "" instead.2413 You may run "mix format --migrate" to change all single-quoted2414 strings to use the ~c sigil and fix this warning.2415 │2416 80 │ '--no-video',2417 │ ~2418 │2419 └─ lib/exshome_player/services/mpv_server.ex:80:724202421 warning: using single-quoted strings to represent charlists is deprecated.2422 Use ~c"" if you indeed want a charlist or use "" instead.2423 You may run "mix format --migrate" to change all single-quoted2424 strings to use the ~c sigil and fix this warning.2425 │2426 81 │ '--idle',2427 │ ~2428 │2429 └─ lib/exshome_player/services/mpv_server.ex:81:724302431 warning: using single-quoted strings to represent charlists is deprecated.2432 Use ~c"" if you indeed want a charlist or use "" instead.2433 You may run "mix format --migrate" to change all single-quoted2434 strings to use the ~c sigil and fix this warning.2435 │2436 82 │ '--no-cache',2437 │ ~2438 │2439 └─ lib/exshome_player/services/mpv_server.ex:82:724402441 warning: using single-quoted strings to represent charlists is deprecated.2442 Use ~c"" if you indeed want a charlist or use "" instead.2443 You may run "mix format --migrate" to change all single-quoted2444 strings to use the ~c sigil and fix this warning.2445 │2446 83 │ '--no-terminal',2447 │ ~2448 │2449 └─ lib/exshome_player/services/mpv_server.ex:83:724502451 warning: using single-quoted strings to represent charlists is deprecated.2452 Use ~c"" if you indeed want a charlist or use "" instead.2453 You may run "mix format --migrate" to change all single-quoted2454 strings to use the ~c sigil and fix this warning.2455 │2456 84 │ '--input-ipc-server=#{socket_path()}'2457 │ ~2458 │2459 └─ lib/exshome_player/services/mpv_server.ex:84:724602461 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2462 │2463 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_server"2464 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2465 │2466 └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_dependency_change/124672468 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2469 │2470 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_server"2471 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2472 │2473 └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_event/224742475 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2476 │2477 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2478 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2479 │2480 └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_dependency_change/124812482 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2483 │2484 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2485 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2486 │2487 └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_event/224882489 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2490 │2491 11 │ use Exshome.Dependency.GenServerDependency,2492 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2493 │2494 └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_dependency_change/124952496 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2497 │2498 11 │ use Exshome.Dependency.GenServerDependency,2499 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2500 │2501 └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_event/225022503 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2504 │2505 11 │ use Exshome.Dependency.GenServerDependency,2506 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2507 │2508 └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_dependency_change/125092510 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2511 │2512 11 │ use Exshome.Dependency.GenServerDependency,2513 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2514 │2515 └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_event/225162517 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2518 │2519 8 │ use Exshome.Dependency.GenServerDependency,2520 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2521 │2522 └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_dependency_change/125232524 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2525 │2526 8 │ use Exshome.Dependency.GenServerDependency,2527 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2528 │2529 └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_event/225302531 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2532 │2533 8 │ use Exshome.Dependency.GenServerDependency,2534 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2535 │2536 └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_dependency_change/125372538 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2539 │2540 8 │ use Exshome.Dependency.GenServerDependency,2541 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2542 │2543 └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_event/225442545 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2546 │2547 8 │ use Exshome.Dependency.GenServerDependency,2548 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2549 │2550 └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_dependency_change/125512552 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2553 │2554 8 │ use Exshome.Dependency.GenServerDependency,2555 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2556 │2557 └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_event/225582559 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2560 │2561 8 │ use Exshome.Dependency.GenServerDependency,2562 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2563 │2564 └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_dependency_change/125652566 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2567 │2568 8 │ use Exshome.Dependency.GenServerDependency,2569 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2570 │2571 └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_event/225722573 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2574 │2575 8 │ use Exshome.Dependency.GenServerDependency,2576 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2577 │2578 └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_dependency_change/125792580 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2581 │2582 8 │ use Exshome.Dependency.GenServerDependency,2583 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2584 │2585 └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_event/225862587 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2588 │2589 8 │ use Exshome.Dependency.GenServerDependency,2590 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2591 │2592 └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_dependency_change/125932594 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2595 │2596 8 │ use Exshome.Dependency.GenServerDependency,2597 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2598 │2599 └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_event/226002601warning: defining a Gettext backend by calling26022603 use Gettext, otp_app: ...26042605is deprecated. To define a backend, call:26062607 use Gettext.Backend, otp_app: :my_app26082609Then, instead of importing your backend, call this in your module:26102611 use Gettext, backend: MyApp.Gettext26122613 lib/exshome_web/gettext.ex:23: ExshomeWeb.Gettext (module)26142615 warning: using single-quoted strings to represent charlists is deprecated.2616 Use ~c"" if you indeed want a charlist or use "" instead.2617 You may run "mix format --migrate" to change all single-quoted2618 strings to use the ~c sigil and fix this warning.2619 │2620 21 │ class={"text-4xl #{if @deps.playlist.current_id == track.id, do: 'playing'}"}2621 │ ~2622 │2623 └─ lib/exshome_player/web/templates/playlist.html.heex:21:7826242625 warning: using single-quoted strings to represent charlists is deprecated.2626 Use ~c"" if you indeed want a charlist or use "" instead.2627 You may run "mix format --migrate" to change all single-quoted2628 strings to use the ~c sigil and fix this warning.2629 │2630 26 │ "#{if @deps.playlist.current_id == track.id, do: 'font-bold dark:text-yellow-200'} flex flex-col flex-grow pl-4 text-left justify-center overflow-x-auto overflow-y-hidden"2631 │ ~2632 │2633 └─ lib/exshome_player/web/templates/playlist.html.heex:26:6226342635 warning: using single-quoted strings to represent charlists is deprecated.2636 Use ~c"" if you indeed want a charlist or use "" instead.2637 You may run "mix format --migrate" to change all single-quoted2638 strings to use the ~c sigil and fix this warning.2639 │2640 6 │ <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2641 │ ~2642 │2643 └─ lib/exshome_player/web/templates/preview.html.heex:6:5426442645 warning: using single-quoted strings to represent charlists is deprecated.2646 Use ~c"" if you indeed want a charlist or use "" instead.2647 You may run "mix format --migrate" to change all single-quoted2648 strings to use the ~c sigil and fix this warning.2649 │2650 6 │ <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2651 │ ~2652 │2653 └─ lib/exshome_player/web/templates/preview.html.heex:6:68265426552656== Compilation error in file lib/exshome_web/endpoint.ex ==2657** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found2658 (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/12659 (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/12660 (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/22661 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22662 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22663 (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/12664 (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/42665 (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/32666could not compile dependency :exshome, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile exshome --force", update it with "mix deps.update exshome" or clean it with "mix deps.clean exshome"