Build log
nerves_system_qemu_aarch64
exshome 0.1.7 · fail · run exshome-0.1.7-1791181754346
2668 of 2668 lines
1Resolving Hex dependencies...2Resolution completed in 0.58s3Unchanged: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/qemu_aarch64/lib/erlexec/priv/aarch64-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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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/qemu_aarch64/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_aarch64_nerves_linux_gnu381Compiling 1 file (.ex)382Generated nerves_toolchain_aarch64_nerves_linux_gnu app383==> nerves_system_qemu_aarch64384Compiling 1 file (.ex)385Generated nerves_system_qemu_aarch64 app386==> nerves_compatibility_test387===> Analyzing applications...388===> Compiling telemetry389==> ecto390Compiling 56 files (.ex)391 warning: this clause of defp field_source!/2 is never used (or it will always fail/warn when invoked)392 │393 968 │ defp field_source!(nil, field) do394 │ ~395 │396 └─ lib/ecto/repo/schema.ex:968:8: Ecto.Repo.Schema.field_source!/2397398Generated ecto app399==> telemetry_metrics400Compiling 7 files (.ex)401 warning: unused require Logger402 │403 391 │ require Logger404 │ ~405 │406 └─ lib/telemetry_metrics.ex:391:3407408Generated telemetry_metrics app409==> nerves_compatibility_test410===> Analyzing applications...411===> Compiling telemetry_poller412==> db_connection413Compiling 18 files (.ex)414Generated db_connection app415warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"416 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2417 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1418 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5419 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2420 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4421 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2422423==> ecto_sql424Compiling 25 files (.ex)425 warning: unused require Ecto.Query426 │427 140 │ require Ecto.Query428 │ ~429 │430 └─ lib/ecto/adapters/tds.ex:140:3431432 warning: unused require Logger433 │434 139 │ require Logger435 │ ~436 │437 └─ lib/ecto/adapters/tds.ex:139:3438439 warning: unused require Ecto.Query440 │441 107 │ require Ecto.Query442 │ ~443 │444 └─ lib/ecto/migrator.ex:107:3445446 warning: this clause of defp validate_index_opts!/1 is never used (or it will always fail/warn when invoked)447 │448 1724 │ defp validate_index_opts!(opts), do: opts449 │ ~450 │451 └─ lib/ecto/migration.ex:1724:8: Ecto.Migration.validate_index_opts!/1452453Generated ecto_sql app454==> nerves_compatibility_test455===> Analyzing applications...456===> Compiling cowboy457==> expo458Compiling 2 files (.erl)459Compiling 22 files (.ex)460Generated expo app461==> gettext462Compiling 18 files (.ex)463 warning: unused require Gettext.Macros464 │465 594 │ require Gettext.Macros466 │ ~467 │468 └─ lib/gettext.ex:594:3469470 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead471 │472 426 │ Kernel.ParallelCompiler.async(fn ->473 │ ~474 │475 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3476477 warning: the following clause is redundant:478479 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)480481 it has type:482483 dynamic(%Expo.Message.Plural{})484485 previous clauses have already matched on the following types:486487 %Expo.Message.Singular{}488 %Expo.Message.Plural{}489490 │491 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do492 │ ~493 │494 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1495496Generated gettext app497==> phoenix_pubsub498Compiling 12 files (.ex)499Generated phoenix_pubsub app500==> plug501Compiling 1 file (.erl)502Compiling 42 files (.ex)503Generated plug app504==> phoenix_html505Compiling 9 files (.ex)506 warning: comparison between distinct types found:507508 id == nil509510 given types:511512 dynamic(not false and not nil and not binary()) == nil513514 where "id" was given the types:515516 # type: dynamic(not false and not nil)517 # from: lib/phoenix_html/form_data.ex:92:8518 id = Keyword.get(opts, :id) || name519520 # type: dynamic(not false and not nil and not binary())521 # from: lib/phoenix_html/form_data.ex:94:12522 is_binary(id)523524 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 false525526 type warning found at:527 │528 94 │ unless is_binary(id) or is_nil(id) do529 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~530 │531 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2532533 warning: the 1st pattern in clause will never match:534535 60536537 because it is expected to receive type:538539 dynamic(empty_list() or non_empty_list(term(), term()))540541 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())542543 type warning found at:544 │545 56 │ def to_iodata(?<), do: "<"546 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~547 │548 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1549550 warning: the 1st pattern in clause will never match:551552 62553554 because it is expected to receive type:555556 dynamic(empty_list() or non_empty_list(term(), term()))557558 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())559560 type warning found at:561 │562 57 │ def to_iodata(?>), do: ">"563 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~564 │565 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1566567 warning: the 1st pattern in clause will never match:568569 38570571 because it is expected to receive type:572573 dynamic(empty_list() or non_empty_list(term(), term()))574575 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())576577 type warning found at:578 │579 58 │ def to_iodata(?&), do: "&"580 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~581 │582 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1583584 warning: the 1st pattern in clause will never match:585586 34587588 because it is expected to receive type:589590 dynamic(empty_list() or non_empty_list(term(), term()))591592 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())593594 type warning found at:595 │596 59 │ def to_iodata(?"), do: """597 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~598 │599 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1600601 warning: the 1st pattern in clause will never match:602603 39604605 because it is expected to receive type:606607 dynamic(empty_list() or non_empty_list(term(), term()))608609 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())610611 type warning found at:612 │613 60 │ def to_iodata(?'), do: "'"614 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~615 │616 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1617618 warning: the 1st pattern in clause will never match:619620 {:safe, data}621622 because it is expected to receive type:623624 dynamic(empty_list() or non_empty_list(term(), term()))625626 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())627628 type warning found at:629 │630 76 │ def to_iodata({:safe, data}) do631 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~632 │633 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1634635 warning: the following clause is redundant:636637 def to_iodata(other)638639 it has type:640641 dynamic(empty_list() or non_empty_list(term(), term()))642643 previous clauses have already matched on the following types:644645 non_empty_list(term(), term())646 empty_list()647648 │649 80 │ def to_iodata(other) do650 │ ~651 │652 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1653654 warning: the 1st pattern in clause will never match:655656 h657658 because it is expected to receive type:659660 dynamic(empty_list() or non_empty_list(term(), term()))661662 where "h" was given the type:663664 # type: integer()665 # from: lib/phoenix_html/safe.ex:62:25666 is_integer(h)667668 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())669670 type warning found at:671 │672 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do673 │ ~674 │675 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1676677 warning: the 1st pattern in clause will never match:678679 h680681 because it is expected to receive type:682683 dynamic(empty_list() or non_empty_list(term(), term()))684685 where "h" was given the type:686687 # type: integer()688 # from: lib/phoenix_html/safe.ex:66:25689 is_integer(h)690691 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())692693 type warning found at:694 │695 66 │ def to_iodata(h) when is_integer(h) do696 │ ~697 │698 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1699700 warning: the 1st pattern in clause will never match:701702 h703704 because it is expected to receive type:705706 dynamic(empty_list() or non_empty_list(term(), term()))707708 where "h" was given the type:709710 # type: binary()711 # from: lib/phoenix_html/safe.ex:72:25712 is_binary(h)713714 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())715716 type warning found at:717 │718 72 │ def to_iodata(h) when is_binary(h) do719 │ ~720 │721 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1722723Generated phoenix_html app724warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"725 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2726 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1727 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5728 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2729 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4730 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2731732==> phoenix_ecto733Compiling 7 files (.ex)734Generated phoenix_ecto app735==> phoenix_template736Compiling 4 files (.ex)737Generated phoenix_template app738==> phoenix_view739Compiling 1 file (.ex)740 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 operator741 │742 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix743 │ ~744 │745 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2746747Generated phoenix_view app748==> tz749Compiling 15 files (.ex)750 warning: Application.fetch_env/2 is discouraged in the module body, use Application.compile_env/3 instead751 │752 3 │ case Application.fetch_env(:tz, :http_client) do753 │ ~754 │755 └─ lib/http/http.ex:3:22: Tz.HTTP (module)756757 warning: using single-quoted strings to represent charlists is deprecated.758 Use ~c"" if you indeed want a charlist or use "" instead.759 You may run "mix format --migrate" to change all single-quoted760 strings to use the ~c sigil and fix this warning.761 │762 55 │ 'africa',763 │ ~764 │765 └─ lib/iana_data_dir.ex:55:7766767 warning: using single-quoted strings to represent charlists is deprecated.768 Use ~c"" if you indeed want a charlist or use "" instead.769 You may run "mix format --migrate" to change all single-quoted770 strings to use the ~c sigil and fix this warning.771 │772 56 │ 'antarctica',773 │ ~774 │775 └─ lib/iana_data_dir.ex:56:7776777 warning: using single-quoted strings to represent charlists is deprecated.778 Use ~c"" if you indeed want a charlist or use "" instead.779 You may run "mix format --migrate" to change all single-quoted780 strings to use the ~c sigil and fix this warning.781 │782 57 │ 'asia',783 │ ~784 │785 └─ lib/iana_data_dir.ex:57:7786787 warning: using single-quoted strings to represent charlists is deprecated.788 Use ~c"" if you indeed want a charlist or use "" instead.789 You may run "mix format --migrate" to change all single-quoted790 strings to use the ~c sigil and fix this warning.791 │792 58 │ 'australasia',793 │ ~794 │795 └─ lib/iana_data_dir.ex:58:7796797 warning: using single-quoted strings to represent charlists is deprecated.798 Use ~c"" if you indeed want a charlist or use "" instead.799 You may run "mix format --migrate" to change all single-quoted800 strings to use the ~c sigil and fix this warning.801 │802 59 │ 'backward',803 │ ~804 │805 └─ lib/iana_data_dir.ex:59:7806807 warning: using single-quoted strings to represent charlists is deprecated.808 Use ~c"" if you indeed want a charlist or use "" instead.809 You may run "mix format --migrate" to change all single-quoted810 strings to use the ~c sigil and fix this warning.811 │812 60 │ 'etcetera',813 │ ~814 │815 └─ lib/iana_data_dir.ex:60:7816817 warning: using single-quoted strings to represent charlists is deprecated.818 Use ~c"" if you indeed want a charlist or use "" instead.819 You may run "mix format --migrate" to change all single-quoted820 strings to use the ~c sigil and fix this warning.821 │822 61 │ 'europe',823 │ ~824 │825 └─ lib/iana_data_dir.ex:61:7826827 warning: using single-quoted strings to represent charlists is deprecated.828 Use ~c"" if you indeed want a charlist or use "" instead.829 You may run "mix format --migrate" to change all single-quoted830 strings to use the ~c sigil and fix this warning.831 │832 62 │ 'northamerica',833 │ ~834 │835 └─ lib/iana_data_dir.ex:62:7836837 warning: using single-quoted strings to represent charlists is deprecated.838 Use ~c"" if you indeed want a charlist or use "" instead.839 You may run "mix format --migrate" to change all single-quoted840 strings to use the ~c sigil and fix this warning.841 │842 63 │ 'southamerica',843 │ ~844 │845 └─ lib/iana_data_dir.ex:63:7846847 warning: using single-quoted strings to represent charlists is deprecated.848 Use ~c"" if you indeed want a charlist or use "" instead.849 You may run "mix format --migrate" to change all single-quoted850 strings to use the ~c sigil and fix this warning.851 │852 64 │ 'iso3166.tab',853 │ ~854 │855 └─ lib/iana_data_dir.ex:64:7856857 warning: using single-quoted strings to represent charlists is deprecated.858 Use ~c"" if you indeed want a charlist or use "" instead.859 You may run "mix format --migrate" to change all single-quoted860 strings to use the ~c sigil and fix this warning.861 │862 65 │ 'zone1970.tab'863 │ ~864 │865 └─ lib/iana_data_dir.ex:65:7866867 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead868 │869 3 │ @custom_data_dir Application.get_env(:tz, :data_dir)870 │ ~871 │872 └─ lib/iana_data_dir.ex:3:32: Tz.IanaDataDir (module)873874 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead875 │876 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)877 │ ~878 │879 └─ lib/iana_file_parser.ex:5:66: Tz.IanaFileParser (module)880881 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead882 │883 15 │ Logger.warn("Tz found a more recent time zone database available for download at #{link}")884 │ ~885 │886 └─ lib/watch_periodically.ex:15:18: Tz.WatchPeriodically.watch/0887888 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead889 │890 11 │ @reject_periods_before_year Application.get_env(:tz, :reject_time_zone_periods_before_year)891 │ ~892 │893 └─ lib/compiler.ex:11:43: Tz.Compiler (module)894895 warning: unused require Tz.IanaFileParser896 │897 4 │ require Tz.IanaFileParser898 │ ~899 │900 └─ lib/compiler.ex:4:3901902 warning: unused require Tz.PeriodsBuilder903 │904 5 │ require Tz.PeriodsBuilder905 │ ~906 │907 └─ lib/compiler.ex:5:3908909Compiling lib/compiler_runner.ex (it's taking more than 10s)910 warning: this clause of defp reject_periods_before_year/2 is never used (or it will always fail/warn when invoked)911 │912 65 │ defp reject_periods_before_year(periods, reject_before_year) do913 │ ~914 │915 └─ lib/compiler.ex:65:8: Tz.Compiler.reject_periods_before_year/2916917 warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)918 │919 250 │ defp add_to_and_convert_date_tuple(:min, _, _, _), do: :min920 │ ~921 │922 └─ lib/periods_builder.ex:250:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4923924 warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)925 │926 251 │ defp add_to_and_convert_date_tuple(:max, _, _, _), do: :max927 │ ~928 │929 └─ lib/periods_builder.ex:251:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4930931 warning: nil.request/2 is undefined (module nil is not available or is yet to be defined)932 │933 27 │ case HTTP.get_http_client!().request("data.iana.org", "/time-zones/tzdb/version") do934 │ ~935 │936 └─ lib/updater.ex:27:34: Tz.Updater.fetch_iana_tz_version/0937 └─ lib/updater.ex:75:34: Tz.Updater.download_tz_database/1938939Generated tz app940==> tz_extra941Compiling 7 files (.ex)942 warning: unused require TzExtra.IanaFileParser943 │944 4 │ require TzExtra.IanaFileParser945 │ ~946 │947 └─ lib/compiler.ex:4:3948949 warning: unused require TzExtra.Compiler950 │951 3 │ require TzExtra.Compiler952 │ ~953 │954 └─ lib/changeset.ex:3:5955956Generated tz_extra app957==> uboot_env958Compiling 5 files (.ex)959Generated uboot_env app960==> cc_precompiler961Compiling 3 files (.ex)962Generated cc_precompiler app963==> exqlite964Downloading precompiled NIF to /home/nerves/.cache/elixir_make/exqlite-nif-2.17-aarch64-linux-gnu-0.42.0.tar.gz965Compiling 12 files (.ex)966Generated exqlite app967==> ecto_sqlite3968Compiling 4 files (.ex)969 warning: using single-quoted strings to represent charlists is deprecated.970 Use ~c"" if you indeed want a charlist or use "" instead.971 You may run "mix format --migrate" to change all single-quoted972 strings to use the ~c sigil and fix this warning.973 │974 778 │ {['?'], counter + 1}975 │ ~976 │977 └─ lib/ecto/adapters/sqlite3/connection.ex:778:11978979 warning: using single-quoted strings to represent charlists is deprecated.980 Use ~c"" if you indeed want a charlist or use "" instead.981 You may run "mix format --migrate" to change all single-quoted982 strings to use the ~c sigil and fix this warning.983 │984 1177 │ '?'985 │ ~986 │987 └─ lib/ecto/adapters/sqlite3/connection.ex:1177:5988989 warning: function dump_cmd/3 required by behaviour Ecto.Adapter.Structure is not implemented (in module Ecto.Adapters.SQLite3)990 │991 1 │ defmodule Ecto.Adapters.SQLite3 do992 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~993 │994 └─ lib/ecto/adapters/sqlite3.ex:1: Ecto.Adapters.SQLite3 (module)995996 warning: function query_many/4 required by behaviour Ecto.Adapters.SQL.Connection is not implemented (in module Ecto.Adapters.SQLite3.Connection)997 │998 1 │ defmodule Ecto.Adapters.SQLite3.Connection do999 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1000 │1001 └─ lib/ecto/adapters/sqlite3/connection.ex:1: Ecto.Adapters.SQLite3.Connection (module)10021003 warning: the following clause is redundant:10041005 def execute_ddl({:create, %Ecto.Migration.Index{} = index})10061007 it has type:10081009 dynamic({:create, %Ecto.Migration.Index{}})10101011 previous clauses have already matched on the following types:10121013 {:create, %Ecto.Migration.Table{}, term()}1014 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1015 {:drop, %Ecto.Migration.Table{}}1016 {:drop, %Ecto.Migration.Table{}, term()}1017 {:drop_if_exists, %Ecto.Migration.Table{}}1018 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1019 {:alter, %Ecto.Migration.Table{}, term()}1020 {:create, %Ecto.Migration.Index{}}1021 {:create_if_not_exists, %Ecto.Migration.Index{}}1022 {:drop, %Ecto.Migration.Index{}}1023 {:drop, %Ecto.Migration.Index{}, term()}1024 {:drop_if_exists, %Ecto.Migration.Index{}}1025 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1026 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1027 {:rename, %Ecto.Migration.Table{}, term(), term()}10281029 │1030 560 │ def execute_ddl({:create, %Index{} = index}) do1031 │ ~1032 │1033 └─ lib/ecto/adapters/sqlite3/connection.ex:560:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110341035 warning: the following clause is redundant:10361037 def execute_ddl({:create_if_not_exists, %Ecto.Migration.Index{} = index})10381039 it has type:10401041 dynamic({:create_if_not_exists, %Ecto.Migration.Index{}})10421043 previous clauses have already matched on the following types:10441045 {:create, %Ecto.Migration.Table{}, term()}1046 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1047 {:drop, %Ecto.Migration.Table{}}1048 {:drop, %Ecto.Migration.Table{}, term()}1049 {:drop_if_exists, %Ecto.Migration.Table{}}1050 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1051 {:alter, %Ecto.Migration.Table{}, term()}1052 {:create, %Ecto.Migration.Index{}}1053 {:create_if_not_exists, %Ecto.Migration.Index{}}1054 {:drop, %Ecto.Migration.Index{}}1055 {:drop, %Ecto.Migration.Index{}, term()}1056 {:drop_if_exists, %Ecto.Migration.Index{}}1057 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1058 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1059 {:rename, %Ecto.Migration.Table{}, term(), term()}10601061 │1062 582 │ def execute_ddl({:create_if_not_exists, %Index{} = index}) do1063 │ ~1064 │1065 └─ lib/ecto/adapters/sqlite3/connection.ex:582:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110661067 warning: the following clause is redundant:10681069 def execute_ddl({:drop, %Ecto.Migration.Index{} = index})10701071 it has type:10721073 dynamic({:drop, %Ecto.Migration.Index{}})10741075 previous clauses have already matched on the following types:10761077 {:create, %Ecto.Migration.Table{}, term()}1078 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1079 {:drop, %Ecto.Migration.Table{}}1080 {:drop, %Ecto.Migration.Table{}, term()}1081 {:drop_if_exists, %Ecto.Migration.Table{}}1082 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1083 {:alter, %Ecto.Migration.Table{}, term()}1084 {:create, %Ecto.Migration.Index{}}1085 {:create_if_not_exists, %Ecto.Migration.Index{}}1086 {:drop, %Ecto.Migration.Index{}}1087 {:drop, %Ecto.Migration.Index{}, term()}1088 {:drop_if_exists, %Ecto.Migration.Index{}}1089 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1090 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1091 {:rename, %Ecto.Migration.Table{}, term(), term()}1092 {:create, %Ecto.Migration.Constraint{}}10931094 │1095 609 │ def execute_ddl({:drop, %Index{} = index}) do1096 │ ~1097 │1098 └─ lib/ecto/adapters/sqlite3/connection.ex:609:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110991100 warning: the following clause is redundant:11011102 def execute_ddl({:drop, %Ecto.Migration.Index{} = index, _mode})11031104 it has type:11051106 dynamic({:drop, %Ecto.Migration.Index{}, term()})11071108 previous clauses have already matched on the following types:11091110 {:create, %Ecto.Migration.Table{}, term()}1111 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1112 {:drop, %Ecto.Migration.Table{}}1113 {:drop, %Ecto.Migration.Table{}, term()}1114 {:drop_if_exists, %Ecto.Migration.Table{}}1115 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1116 {:alter, %Ecto.Migration.Table{}, term()}1117 {:create, %Ecto.Migration.Index{}}1118 {:create_if_not_exists, %Ecto.Migration.Index{}}1119 {:drop, %Ecto.Migration.Index{}}1120 {:drop, %Ecto.Migration.Index{}, term()}1121 {:drop_if_exists, %Ecto.Migration.Index{}}1122 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1123 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1124 {:rename, %Ecto.Migration.Table{}, term(), term()}1125 {:create, %Ecto.Migration.Constraint{}}11261127 │1128 619 │ def execute_ddl({:drop, %Index{} = index, _mode}) do1129 │ ~1130 │1131 └─ lib/ecto/adapters/sqlite3/connection.ex:619:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111321133 warning: the following clause is redundant:11341135 def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index})11361137 it has type:11381139 dynamic({:drop_if_exists, %Ecto.Migration.Index{}})11401141 previous clauses have already matched on the following types:11421143 {:create, %Ecto.Migration.Table{}, term()}1144 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1145 {:drop, %Ecto.Migration.Table{}}1146 {:drop, %Ecto.Migration.Table{}, term()}1147 {:drop_if_exists, %Ecto.Migration.Table{}}1148 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1149 {:alter, %Ecto.Migration.Table{}, term()}1150 {:create, %Ecto.Migration.Index{}}1151 {:create_if_not_exists, %Ecto.Migration.Index{}}1152 {:drop, %Ecto.Migration.Index{}}1153 {:drop, %Ecto.Migration.Index{}, term()}1154 {:drop_if_exists, %Ecto.Migration.Index{}}1155 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1156 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1157 {:rename, %Ecto.Migration.Table{}, term(), term()}1158 {:create, %Ecto.Migration.Constraint{}}11591160 │1161 624 │ def execute_ddl({:drop_if_exists, %Index{} = index}) do1162 │ ~1163 │1164 └─ lib/ecto/adapters/sqlite3/connection.ex:624:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111651166 warning: the following clause is redundant:11671168 def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index, _mode})11691170 it has type:11711172 dynamic({:drop_if_exists, %Ecto.Migration.Index{}, term()})11731174 previous clauses have already matched on the following types:11751176 {:create, %Ecto.Migration.Table{}, term()}1177 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1178 {:drop, %Ecto.Migration.Table{}}1179 {:drop, %Ecto.Migration.Table{}, term()}1180 {:drop_if_exists, %Ecto.Migration.Table{}}1181 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1182 {:alter, %Ecto.Migration.Table{}, term()}1183 {:create, %Ecto.Migration.Index{}}1184 {:create_if_not_exists, %Ecto.Migration.Index{}}1185 {:drop, %Ecto.Migration.Index{}}1186 {:drop, %Ecto.Migration.Index{}, term()}1187 {:drop_if_exists, %Ecto.Migration.Index{}}1188 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1189 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1190 {:rename, %Ecto.Migration.Table{}, term(), term()}1191 {:create, %Ecto.Migration.Constraint{}}11921193 │1194 634 │ def execute_ddl({:drop_if_exists, %Index{} = index, _mode}) do1195 │ ~1196 │1197 └─ lib/ecto/adapters/sqlite3/connection.ex:634:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111981199 warning: the following clause is redundant:12001201 def execute_ddl(1202 {:rename, %Ecto.Migration.Table{} = current_table, %Ecto.Migration.Table{} = new_table}1203 )12041205 it has type:12061207 dynamic({:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}})12081209 previous clauses have already matched on the following types:12101211 {:create, %Ecto.Migration.Table{}, term()}1212 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1213 {:drop, %Ecto.Migration.Table{}}1214 {:drop, %Ecto.Migration.Table{}, term()}1215 {:drop_if_exists, %Ecto.Migration.Table{}}1216 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1217 {:alter, %Ecto.Migration.Table{}, term()}1218 {:create, %Ecto.Migration.Index{}}1219 {:create_if_not_exists, %Ecto.Migration.Index{}}1220 {:drop, %Ecto.Migration.Index{}}1221 {:drop, %Ecto.Migration.Index{}, term()}1222 {:drop_if_exists, %Ecto.Migration.Index{}}1223 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1224 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1225 {:rename, %Ecto.Migration.Table{}, term(), term()}1226 {:create, %Ecto.Migration.Constraint{}}1227 {:drop, %Ecto.Migration.Constraint{}, term()}1228 {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12291230 │1231 649 │ def execute_ddl({:rename, %Table{} = current_table, %Table{} = new_table}) do1232 │ ~1233 │1234 └─ lib/ecto/adapters/sqlite3/connection.ex:649:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112351236 warning: the following clause is redundant:12371238 def execute_ddl({:rename, %Ecto.Migration.Table{} = table, current_column, new_column})12391240 it has type:12411242 dynamic({:rename, %Ecto.Migration.Table{}, term(), term()})12431244 previous clauses have already matched on the following types:12451246 {:create, %Ecto.Migration.Table{}, term()}1247 {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1248 {:drop, %Ecto.Migration.Table{}}1249 {:drop, %Ecto.Migration.Table{}, term()}1250 {:drop_if_exists, %Ecto.Migration.Table{}}1251 {:drop_if_exists, %Ecto.Migration.Table{}, term()}1252 {:alter, %Ecto.Migration.Table{}, term()}1253 {:create, %Ecto.Migration.Index{}}1254 {:create_if_not_exists, %Ecto.Migration.Index{}}1255 {:drop, %Ecto.Migration.Index{}}1256 {:drop, %Ecto.Migration.Index{}, term()}1257 {:drop_if_exists, %Ecto.Migration.Index{}}1258 {:drop_if_exists, %Ecto.Migration.Index{}, term()}1259 {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1260 {:rename, %Ecto.Migration.Table{}, term(), term()}1261 {:create, %Ecto.Migration.Constraint{}}1262 {:drop, %Ecto.Migration.Constraint{}, term()}1263 {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12641265 │1266 661 │ def execute_ddl({:rename, %Table{} = table, current_column, new_column}) do1267 │ ~1268 │1269 └─ lib/ecto/adapters/sqlite3/connection.ex:661:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112701271Generated ecto_sqlite3 app1272==> property_table1273Compiling 8 files (.ex)1274Generated property_table app1275==> nerves_uevent1276 CC uevent.o1277 LD uevent1278Compiling 5 files (.ex)1279Generated nerves_uevent app1280==> nerves_runtime1281Compiling 14 files (.ex)1282Generated nerves_runtime app1283==> toolshed1284Compiling 5 files (.ex)1285Generated toolshed app1286==> tailwind1287Compiling 3 files (.ex)1288Generated tailwind app1289==> nerves_compatibility_test1290===> Analyzing applications...1291===> Compiling cowboy_telemetry1292==> plug_cowboy1293Compiling 5 files (.ex)1294Generated plug_cowboy app1295warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1296 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21297 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11298 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51299 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21300 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41301 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/213021303==> phoenix1304Compiling 69 files (.ex)1305 warning: using single-quoted strings to represent charlists is deprecated.1306 Use ~c"" if you indeed want a charlist or use "" instead.1307 You may run "mix format --migrate" to change all single-quoted1308 strings to use the ~c sigil and fix this warning.1309 │1310 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},1311 │ ~1312 │1313 └─ lib/mix/tasks/phx.gen.cert.ex:258:3313141315 warning: using single-quoted strings to represent charlists is deprecated.1316 Use ~c"" if you indeed want a charlist or use "" instead.1317 You may run "mix format --migrate" to change all single-quoted1318 strings to use the ~c sigil and fix this warning.1319 │1320 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}1321 │ ~1322 │1323 └─ lib/mix/tasks/phx.gen.cert.ex:259:3213241325 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1326 │1327 50 │ Logger.warn(1328 │ ~1329 │1330 └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/313311332 warning: unused require Logger1333 │1334 9 │ require Logger1335 │ ~1336 │1337 └─ lib/phoenix/config.ex:9:313381339 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13401341 This error happens when you have function calls without parentheses inside keywords. For example:13421343 function(arg, one: nested_call a, b, c)1344 function(arg, one: if expr, do: :this, else: :that)13451346 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:13471348 function(arg, one: if(expr, do: :this, else: :that))1349 function(arg, one: nested_call(a, b, c))13501351 Ambiguity found at:1352 │1353 998 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"1354 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1355 │1356 └─ lib/phoenix/controller.ex:99813571358 warning: unused require Logger1359 │1360 259 │ require Logger1361 │ ~1362 │1363 └─ lib/phoenix/endpoint.ex:259:313641365 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1366 │1367 1009 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>1368 │ ~1369 │1370 └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/113711372 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1373 │1374 34 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")1375 │ ~1376 │1377 └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/113781379 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1380 │1381 57 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")1382 │ ~1383 │1384 └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/113851386 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1387 │1388 78 │ Logger.warn """1389 │ ~1390 │1391 └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/213921393 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1394 │1395 264 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")1396 │ ~1397 │1398 └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/213991400 warning: unused require Phoenix.Endpoint1401 │1402 6 │ require Phoenix.Endpoint1403 │ ~1404 │1405 └─ lib/phoenix/controller.ex:6:314061407 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 operator1408 │1409 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1410 │ ~1411 │1412 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/214131414 warning: unused require Phoenix.Endpoint1415 │1416 19 │ require Phoenix.Endpoint1417 │ ~1418 │1419 └─ lib/phoenix/endpoint/render_errors.ex:19:314201421 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.14221423 This error happens when you have function calls without parentheses inside keywords. For example:14241425 function(arg, one: nested_call a, b, c)1426 function(arg, one: if expr, do: :this, else: :that)14271428 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:14291430 function(arg, one: if(expr, do: :this, else: :that))1431 function(arg, one: nested_call(a, b, c))14321433 Ambiguity found at:1434 │1435 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """1436 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1437 │1438 └─ lib/phoenix/router/resource.ex:7114391440 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1441 │1442 653 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end1443 │ ~1444 │1445 └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/414461447 warning: unused require Phoenix.Endpoint1448 │1449 6 │ require Phoenix.Endpoint1450 │ ~1451 │1452 └─ lib/phoenix/channel/server.ex:6:314531454 warning: unused require Phoenix.Endpoint1455 │1456 192 │ require Phoenix.Endpoint1457 │ ~1458 │1459 └─ lib/phoenix/socket.ex:192:314601461 warning: unused require Logger1462 │1463 93 │ require Logger1464 │ ~1465 │1466 └─ lib/phoenix/token.ex:93:314671468 warning: comparison between distinct types found:14691470 merge_all != []14711472 given types:14731474 dynamic(non_empty_list({atom(), term()})) != empty_list()14751476 where "merge_all" was given the type:14771478 # type: dynamic(non_empty_list({atom(), term()}))1479 # from: lib/phoenix/router/route.ex:111:151480 merge_all = merge_params ++ merge_private ++ merge_assigns14811482 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 false14831484 type warning found at:1485 │1486 113 │ if merge_all != [] do1487 │ ~1488 │1489 └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/114901491 warning: a struct for Plug.Conn is expected on struct update:14921493 %Plug.Conn{conn | state: :sent}14941495 but got type:14961497 dynamic()14981499 where "conn" was given the type:15001501 # type: dynamic()1502 # from: lib/phoenix/endpoint/render_errors.ex:57:171503 conn15041505 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15061507 type warning found at:1508 │1509 61 │ %Plug.Conn{conn | state: :sent}1510 │ ~1511 │1512 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/515131514 warning: a struct for Plug.Conn is expected on struct update:15151516 %Plug.Conn{conn | query_params: %{}, params: %{}}15171518 but got type:15191520 dynamic(%{..., params: %Plug.Conn.Unfetched{}})15211522 where "conn" was given the types:15231524 # type: dynamic(%{..., params: term()})1525 # from: lib/phoenix/endpoint/render_errors.ex:124:171526 conn.params15271528 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1529 # from: lib/phoenix/endpoint/render_errors.ex:124:171530 conn.params15311532 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15331534 type warning found at:1535 │1536 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1537 │ ~1538 │1539 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115401541 warning: a struct for Plug.Conn is expected on struct update:15421543 %Plug.Conn{conn | query_params: %{}, params: params}15441545 but got type:15461547 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})15481549 where "conn" was given the types:15501551 # type: dynamic(%{..., params: term()})1552 # from: lib/phoenix/endpoint/render_errors.ex:124:171553 conn.params15541555 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1556 # from: lib/phoenix/endpoint/render_errors.ex:124:171557 conn.params15581559 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15601561 type warning found at:1562 │1563 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1564 │ ~1565 │1566 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115671568 warning: incompatible types given to socket_children/1:15691570 socket_children(mod)15711572 given types:15731574 -dynamic(atom())-15751576 but expected one of:15771578 %{..., __sockets__: term()}15791580 where "mod" was given the types:15811582 # type: dynamic(atom() or binary())1583 # from: lib/phoenix/endpoint/supervisor.ex:27:411584 defaults(otp_app, mod)15851586 # type: dynamic(atom())1587 # from: lib/phoenix/endpoint/supervisor.ex:31:161588 mod.init(:supervisor, env_conf)15891590 type warning found at:1591 │1592 67 │ socket_children(mod) ++1593 │ ~1594 │1595 └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/115961597 warning: a struct for Plug.Conn is expected on struct update:15981599 %Plug.Conn{conn | params: params}16001601 but got type:16021603 dynamic(%{..., params: map()})16041605 where "conn" was given the type:16061607 # type: dynamic(%{..., params: map()})1608 # from: lib/phoenix/controller.ex:1036:171609 Map.get(conn.params, required_key)16101611 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16121613 type warning found at:1614 │1615 1043 │ %Plug.Conn{conn | params: params}1616 │ ~1617 │1618 └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/216191620 warning: expected a module (an atom) when invoking compress_file/2 in expression:16211622 compressor.compress_file(file.digested_filename, file.digested_content)16231624 where "compressor" was given the type:16251626 # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1627 # from: lib/phoenix/digester.ex:167:281628 [file_extension | _] = compressor.file_extensions16291630 where "file" was given the type:16311632 # type: dynamic(%{..., relative_path: term()})1633 # from: lib/phoenix/digester.ex:161:171634 Path.join(output_path, file.relative_path)16351636 type warning found at:1637 │1638 170 │ compressor.compress_file(file.digested_filename, file.digested_content) do1639 │ ~1640 │1641 └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/216421643Generated phoenix app1644warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1645 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21646 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11647 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51648 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21649 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41650 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/216511652==> phoenix_live_view1653Compiling 31 files (.ex)1654 warning: using single-quoted strings to represent charlists is deprecated.1655 Use ~c"" if you indeed want a charlist or use "" instead.1656 You may run "mix format --migrate" to change all single-quoted1657 strings to use the ~c sigil and fix this warning.1658 │1659 319 │ {'LiveView', view},1660 │ ~1661 │1662 └─ lib/phoenix_live_view/channel.ex:319:1016631664 warning: using single-quoted strings to represent charlists is deprecated.1665 Use ~c"" if you indeed want a charlist or use "" instead.1666 You may run "mix format --migrate" to change all single-quoted1667 strings to use the ~c sigil and fix this warning.1668 │1669 320 │ {'Parent pid', parent_pid},1670 │ ~1671 │1672 └─ lib/phoenix_live_view/channel.ex:320:1016731674 warning: using single-quoted strings to represent charlists is deprecated.1675 Use ~c"" if you indeed want a charlist or use "" instead.1676 You may run "mix format --migrate" to change all single-quoted1677 strings to use the ~c sigil and fix this warning.1678 │1679 321 │ {'Transport pid', transport_pid},1680 │ ~1681 │1682 └─ lib/phoenix_live_view/channel.ex:321:1016831684 warning: using single-quoted strings to represent charlists is deprecated.1685 Use ~c"" if you indeed want a charlist or use "" instead.1686 You may run "mix format --migrate" to change all single-quoted1687 strings to use the ~c sigil and fix this warning.1688 │1689 322 │ {'Topic', topic},1690 │ ~1691 │1692 └─ lib/phoenix_live_view/channel.ex:322:1016931694 warning: using single-quoted strings to represent charlists is deprecated.1695 Use ~c"" if you indeed want a charlist or use "" instead.1696 You may run "mix format --migrate" to change all single-quoted1697 strings to use the ~c sigil and fix this warning.1698 │1699 323 │ {'Components count', map_size(cid_to_component)}1700 │ ~1701 │1702 └─ lib/phoenix_live_view/channel.ex:323:1017031704 warning: using single-quoted strings to represent charlists is deprecated.1705 Use ~c"" if you indeed want a charlist or use "" instead.1706 You may run "mix format --migrate" to change all single-quoted1707 strings to use the ~c sigil and fix this warning.1708 │1709 329 │ [data: [{'State', state}]]1710 │ ~1711 │1712 └─ lib/phoenix_live_view/channel.ex:329:1417131714 warning: using single-quoted strings to represent charlists is deprecated.1715 Use ~c"" if you indeed want a charlist or use "" instead.1716 You may run "mix format --migrate" to change all single-quoted1717 strings to use the ~c sigil and fix this warning.1718 │1719 112 │ @codepoints '\s\n\r\t'1720 │ ~1721 │1722 └─ lib/phoenix_live_view/html_algebra.ex:112:1517231724 warning: using single-quoted strings to represent charlists is deprecated.1725 Use ~c"" if you indeed want a charlist or use "" instead.1726 You may run "mix format --migrate" to change all single-quoted1727 strings to use the ~c sigil and fix this warning.1728 │1729 125 │ do: :binary.first(text) in '\n\r'1730 │ ~1731 │1732 └─ lib/phoenix_live_view/html_algebra.ex:125:3217331734 warning: using single-quoted strings to represent charlists is deprecated.1735 Use ~c"" if you indeed want a charlist or use "" instead.1736 You may run "mix format --migrate" to change all single-quoted1737 strings to use the ~c sigil and fix this warning.1738 │1739 130 │ do: :binary.last(text) in '\n\r'1740 │ ~1741 │1742 └─ lib/phoenix_live_view/html_algebra.ex:130:3117431744 warning: using single-quoted strings to represent charlists is deprecated.1745 Use ~c"" if you indeed want a charlist or use "" instead.1746 You may run "mix format --migrate" to change all single-quoted1747 strings to use the ~c sigil and fix this warning.1748 │1749 503 │ defp count_newlines_until_text(<<char, rest::binary>>, counter) when char in '\s\t\r',1750 │ ~1751 │1752 └─ lib/phoenix_live_view/html_formatter.ex:503:8017531754 warning: using single-quoted strings to represent charlists is deprecated.1755 Use ~c"" if you indeed want a charlist or use "" instead.1756 You may run "mix format --migrate" to change all single-quoted1757 strings to use the ~c sigil and fix this warning.1758 │1759 536 │ do: if(String.trim_leading(text) == "", do: false, else: !(:binary.last(text) in '\s\t'))1760 │ ~1761 │1762 └─ lib/phoenix_live_view/html_formatter.ex:536:8617631764 warning: using single-quoted strings to represent charlists is deprecated.1765 Use ~c"" if you indeed want a charlist or use "" instead.1766 You may run "mix format --migrate" to change all single-quoted1767 strings to use the ~c sigil and fix this warning.1768 │1769 546 │ if String.trim_leading(text) != "" and :binary.first(text) not in '\s\t\n\r' do1770 │ ~1771 │1772 └─ lib/phoenix_live_view/html_formatter.ex:546:7317731774 warning: using single-quoted strings to represent charlists is deprecated.1775 Use ~c"" if you indeed want a charlist or use "" instead.1776 You may run "mix format --migrate" to change all single-quoted1777 strings to use the ~c sigil and fix this warning.1778 │1779 3 │ @space_chars '\s\t\f'1780 │ ~1781 │1782 └─ lib/phoenix_live_view/html_tokenizer.ex:3:1617831784 warning: using single-quoted strings to represent charlists is deprecated.1785 Use ~c"" if you indeed want a charlist or use "" instead.1786 You may run "mix format --migrate" to change all single-quoted1787 strings to use the ~c sigil and fix this warning.1788 │1789 4 │ @quote_chars '"\''1790 │ ~1791 │1792 └─ lib/phoenix_live_view/html_tokenizer.ex:4:1617931794 warning: using single-quoted strings to represent charlists is deprecated.1795 Use ~c"" if you indeed want a charlist or use "" instead.1796 You may run "mix format --migrate" to change all single-quoted1797 strings to use the ~c sigil and fix this warning.1798 │1799 5 │ @stop_chars '>/=\r\n' ++ @quote_chars ++ @space_chars1800 │ ~1801 │1802 └─ lib/phoenix_live_view/html_tokenizer.ex:5:1518031804 warning: unused require Logger1805 │1806 25 │ require Logger1807 │ ~1808 │1809 └─ lib/phoenix_live_view/socket.ex:25:318101811 warning: unused require Phoenix.ChannelTest1812 │1813 4 │ require Phoenix.ChannelTest1814 │ ~1815 │1816 └─ lib/phoenix_live_view/test/upload_client.ex:4:318171818 warning: unused require Phoenix.ChannelTest1819 │1820 179 │ require Phoenix.ChannelTest1821 │ ~1822 │1823 └─ lib/phoenix_live_view/test/live_view_test.ex:179:318241825 warning: unused require Phoenix.ConnTest1826 │1827 178 │ require Phoenix.ConnTest1828 │ ~1829 │1830 └─ lib/phoenix_live_view/test/live_view_test.ex:178:318311832 warning: unused require Logger1833 │1834 6 │ require Logger1835 │ ~1836 │1837 └─ lib/phoenix_live_view/upload_channel.ex:6:318381839 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18401841 %Phoenix.LiveView.Socket{1842 socket1843 | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1844 }18451846 but got type:18471848 dynamic()18491850 where "socket" was given the type:18511852 # type: dynamic()1853 # from: lib/phoenix_live_view/utils.ex:459:211854 socket18551856 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18571858 type warning found at:1859 │1860 460 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1861 │ ~1862 │1863 └─ lib/phoenix_live_view/utils.ex:460:5: Phoenix.LiveView.Utils.do_mount_opt/318641865 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18661867 %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}18681869 but got type:18701871 dynamic()18721873 where "socket" was given the type:18741875 # type: dynamic()1876 # from: lib/phoenix_live_view/utils.ex:463:211877 socket18781879 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18801881 type warning found at:1882 │1883 464 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1884 │ ~1885 │1886 └─ lib/phoenix_live_view/utils.ex:464:5: Phoenix.LiveView.Utils.do_mount_opt/318871888 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18891890 %Phoenix.LiveView.Socket{1891 socket1892 | assigns: Map.merge(temp_assigns, socket.assigns),1893 private: Map.put(socket.private, :temporary_assigns, temp_assigns)1894 }18951896 but got type:18971898 dynamic()18991900 where "socket" was given the type:19011902 # type: dynamic()1903 # from: lib/phoenix_live_view/utils.ex:473:211904 socket19051906 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19071908 type warning found at:1909 │1910 480 │ %Socket{1911 │ ~1912 │1913 └─ lib/phoenix_live_view/utils.ex:480:5: Phoenix.LiveView.Utils.do_mount_opt/319141915 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:19161917 %Phoenix.LiveView.Socket{1918 socket1919 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1920 }19211922 but got type:19231924 dynamic(%{..., assigns: term()})19251926 where "socket" was given the type:19271928 # type: dynamic(%{..., assigns: term()})1929 # from: lib/phoenix_live_view/utils.ex:491:431930 %{assigns: assigns} = socket19311932 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19331934 type warning found at:1935 │1936 492 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1937 │ ~1938 │1939 └─ lib/phoenix_live_view/utils.ex:492:14: Phoenix.LiveView.Utils.render_assigns/119401941 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19421943 %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}19441945 but got type:19461947 dynamic()19481949 where "entry" was given the type:19501951 # type: dynamic()1952 # from: lib/phoenix_live_view/upload_config.ex:339:281953 entry <- conf.entries19541955 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19561957 type warning found at:1958 │1959 339 │ | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1960 │ ~1961 │1962 └─ lib/phoenix_live_view/upload_config.ex:339:49: Phoenix.LiveView.UploadConfig.mark_preflighted/119631964 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19651966 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}19671968 but got type:19691970 dynamic()19711972 where "entry" was given the type:19731974 # type: dynamic()1975 # from: lib/phoenix_live_view/upload_config.ex:539:301976 entry19771978 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19791980 type warning found at:1981 │1982 540 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1983 │ ~1984 │1985 └─ lib/phoenix_live_view/upload_config.ex:540:13: Phoenix.LiveView.UploadConfig.put_valid_entry/219861987 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19881989 %Phoenix.LiveView.UploadEntry{entry | valid?: false}19901991 but got type:19921993 dynamic()19941995 where "entry" was given the type:19961997 # type: dynamic()1998 # from: lib/phoenix_live_view/upload_config.ex:552:321999 entry20002001 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20022003 type warning found at:2004 │2005 553 │ entry = %UploadEntry{entry | valid?: false}2006 │ ~2007 │2008 └─ lib/phoenix_live_view/upload_config.ex:553:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/320092010 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:20112012 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}20132014 but got type:20152016 dynamic()20172018 where "entry" was given the type:20192020 # type: dynamic()2021 # from: lib/phoenix_live_view/upload_config.ex:635:422022 entry20232024 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20252026 type warning found at:2027 │2028 635 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)2029 │ ~2030 │2031 └─ lib/phoenix_live_view/upload_config.ex:635:51: Phoenix.LiveView.UploadConfig.cancel_entry/220322033 warning: a struct for Phoenix.HTML.Form is expected on struct update:20342035 %Phoenix.HTML.Form{Phoenix.HTML.FormData.to_form(form_for, form_options) | action: action || "#"}20362037 but got type:20382039 dynamic()20402041 where "form_for" was given the type:20422043 # type: dynamic(not false and not nil)2044 # from: lib/phoenix_live_view/helpers.ex:1101:142045 form_for = assigns[:for] || :erlang.error(ArgumentError.exception("missing :for assign to form"))20462047 where "form_options" was given the type:20482049 # type: dynamic(list({term(), term()}))2050 # from: lib/phoenix_live_view/helpers.ex:1102:182051 form_options = assigns_to_attributes(assigns, [:action, :for])20522053 you must assign "Phoenix.HTML.FormData.to_form(form_for, form_options)" to variable and pattern match on "%Phoenix.HTML.Form{}"20542055 type warning found at:2056 │2057 1106 │ form = %Phoenix.HTML.Form{2058 │ ~2059 │2060 └─ lib/phoenix_live_view/helpers.ex:1106:14: Phoenix.LiveView.Helpers.form/120612062 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead2063 │2064 72 │ Logger.disable(self())2065 │ ~2066 │2067 └─ lib/phoenix_live_view/test/client_proxy.ex:72:12: Phoenix.LiveViewTest.ClientProxy.init/120682069 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:20702071 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}20722073 but got type:20742075 dynamic(%{..., rendered: map()})20762077 where "view" was given the type:20782079 # type: dynamic(%{..., rendered: map()})2080 # from: lib/phoenix_live_view/test/client_proxy.ex:701:242081 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20822083 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20842085 type warning found at:2086 │2087 702 │ new_view = %ClientProxy{view | rendered: rendered}2088 │ ~2089 │2090 └─ lib/phoenix_live_view/test/client_proxy.ex:702:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320912092 warning: the right-hand side of || (shown as ... below) will never be executed:20932094 conn.private[:live_view_connect_info] || prune_conn(conn) || ...20952096 because the left-hand side always evaluates to:20972098 dynamic(not false and not nil)20992100 where "conn" was given the types:21012102 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2103 # from: lib/phoenix_live_view/test/live_view_test.ex:320:722104 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn21052106 # type: dynamic(%Plug.Conn{2107 assigns: %{..., live_module: term()},2108 private:2109 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2110 non_struct_map(),2111 status: integer()2112 })2113 # from: lib/phoenix_live_view/test/live_view_test.ex:334:352114 conn.private[:live_view_connect_params]21152116 type warning found at:2117 │2118 335 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2119 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2120 │2121 └─ lib/phoenix_live_view/test/live_view_test.ex:335: Phoenix.LiveViewTest.connect_from_static_token/221222123 warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead2124 │2125 1095 │ Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)2126 │ ~2127 │2128 └─ lib/phoenix_live_view/test/client_proxy.ex:1095:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/32129 └─ lib/phoenix_live_view/test/client_proxy.ex:1100:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/32130 └─ lib/phoenix_live_view/test/client_proxy.ex:1110:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/32131 └─ lib/phoenix_live_view/test/client_proxy.ex:1119:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/321322133 warning: the following clause is redundant:21342135 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)21362137 it has type:21382139 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))21402141 previous clauses have already matched on the following types:21422143 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())2144 %Phoenix.LiveView.Socket{}, term(), (none() -> term())2145 term(), term(), (none(), none() -> term())2146 term(), term(), (none() -> term())21472148 │2149 952 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do2150 │ ~2151 │2152 └─ lib/phoenix_live_view.ex:952:7: Phoenix.LiveView.update/321532154 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2155 │2156 603 │ defp class_names(nil), do: []2157 │ ~2158 │2159 └─ lib/phoenix_live_view/js.ex:603:8: Phoenix.LiveView.JS.class_names/121602161 warning: the following clause is redundant:21622163 def to_iodata(%_{} = struct)21642165 it has type:21662167 dynamic(%Phoenix.LiveView.Rendered{})21682169 previous clauses have already matched on the following types:21702171 %Phoenix.LiveView.Rendered{}21722173 │2174 127 │ def to_iodata(%_{} = struct) do2175 │ ~2176 │2177 └─ lib/phoenix_live_view/engine.ex:127:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121782179 warning: the 1st pattern in clause will never match:21802181 nil21822183 because it is expected to receive type:21842185 dynamic(%Phoenix.LiveView.Rendered{})21862187 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21882189 type warning found at:2190 │2191 131 │ def to_iodata(nil) do2192 │ ~~~~~~~~~~~~~~~~~~~~~2193 │2194 └─ lib/phoenix_live_view/engine.ex:131: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121952196 warning: the following clause is redundant:21972198 def to_iodata(other)21992200 it has type:22012202 dynamic(%Phoenix.LiveView.Rendered{})22032204 previous clauses have already matched on the following types:22052206 %Phoenix.LiveView.Rendered{}22072208 │2209 135 │ def to_iodata(other) do2210 │ ~2211 │2212 └─ lib/phoenix_live_view/engine.ex:135:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/122132214Generated phoenix_live_view app2215warning: Phoenix now requires you to explicitly list which engine to use2216for Phoenix JSON encoding. We recommend everyone to upgrade to2217Jason by setting in your config/config.exs:22182219 config :phoenix, :json_library, Jason22202221And then adding {:jason, "~> 1.0"} as a dependency.22222223If instead you would rather continue using Poison, then add to2224your config/config.exs:22252226 config :phoenix, :json_library, Poison22272228 (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/22229 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/422302231warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2232 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22233 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12234 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52235 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22236 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42237 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/222382239==> phoenix_live_dashboard2240Compiling 40 files (.ex)2241 warning: using single-quoted strings to represent charlists is deprecated.2242 Use ~c"" if you indeed want a charlist or use "" instead.2243 You may run "mix format --migrate" to change all single-quoted2244 strings to use the ~c sigil and fix this warning.2245 │2246 709 │ '#Port' ++ rest = :erlang.port_to_list(ref)2247 │ ~2248 │2249 └─ lib/phoenix/live_dashboard/page_builder.ex:709:522502251 warning: using single-quoted strings to represent charlists is deprecated.2252 Use ~c"" if you indeed want a charlist or use "" instead.2253 You may run "mix format --migrate" to change all single-quoted2254 strings to use the ~c sigil and fix this warning.2255 │2256 728 │ '#Ref' ++ rest = :erlang.ref_to_list(ref)2257 │ ~2258 │2259 └─ lib/phoenix/live_dashboard/page_builder.ex:728:522602261 warning: using single-quoted strings to represent charlists is deprecated.2262 Use ~c"" if you indeed want a charlist or use "" instead.2263 You may run "mix format --migrate" to change all single-quoted2264 strings to use the ~c sigil and fix this warning.2265 │2266 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2267 │ ~2268 │2269 └─ lib/phoenix/live_dashboard/system_info.ex:446:1622702271 warning: using single-quoted strings to represent charlists is deprecated.2272 Use ~c"" if you indeed want a charlist or use "" instead.2273 You may run "mix format --migrate" to change all single-quoted2274 strings to use the ~c sigil and fix this warning.2275 │2276 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2277 │ ~2278 │2279 └─ lib/phoenix/live_dashboard/system_info.ex:446:2822802281 warning: using single-quoted strings to represent charlists is deprecated.2282 Use ~c"" if you indeed want a charlist or use "" instead.2283 You may run "mix format --migrate" to change all single-quoted2284 strings to use the ~c sigil and fix this warning.2285 │2286 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2287 │ ~2288 │2289 └─ lib/phoenix/live_dashboard/system_info.ex:446:4022902291 warning: using single-quoted strings to represent charlists is deprecated.2292 Use ~c"" if you indeed want a charlist or use "" instead.2293 You may run "mix format --migrate" to change all single-quoted2294 strings to use the ~c sigil and fix this warning.2295 │2296 654 │ [{'none', 0, 0}] -> []2297 │ ~2298 │2299 └─ lib/phoenix/live_dashboard/system_info.ex:654:1123002301warning: 0..-2 has a default step of -1, please write 0..-2//-1 instead2302 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323032304warning: 0..-3 has a default step of -1, please write 0..-3//-1 instead2305 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323062307 warning: expected a module (an atom) when invoking __live__/0 in expression:23082309 Map.put(component_assigns, :page, page).__live__()23102311 but got type:23122313 dynamic(%{..., page: term()})23142315 where "component_assigns" was given the type:23162317 # type: dynamic(map())2318 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:218:392319 Map.put(component_assigns, :page, page)23202321 where "page" was given the type:23222323 # type: dynamic()2324 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:215:232325 page23262327 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23282329 type warning found at:2330 │2331 218 │ live_component(component, Map.put(component_assigns, :page, page))2332 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2333 │2334 └─ lib/phoenix/live_dashboard/components/nav_bar_component.ex:218: Phoenix.LiveDashboard.NavBarComponent.render_content/223352336 warning: expected a module (an atom) when invoking __live__/0 in expression:23372338 component_assigns.__live__()23392340 where "component_assigns" was given the type:23412342 # type: dynamic(%{..., page: term()})2343 # from: lib/phoenix/live_dashboard/page_live.ex:238:232344 component_assigns = Map.put(component_assigns, :page, assigns.page)23452346 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23472348 type warning found at:2349 │2350 239 │ live_component(component, component_assigns)2351 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2352 │2353 └─ lib/phoenix/live_dashboard/page_live.ex:239: Phoenix.LiveDashboard.PageLive.render_page/223542355 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)2356 │2357 276 │ do: struct.to_string(value)2358 │ ~2359 │2360 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:276:16: Phoenix.LiveDashboard.EctoStatsPage.format/223612362 warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency2363 │2364 8 │ Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)2365 │ ~2366 │2367 └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/223682369Generated phoenix_live_dashboard app2370warning: the :gettext compiler is no longer required in your mix.exs.23712372Please find the following line in your mix.exs and remove the :gettext entry:23732374 compilers: [..., :gettext, ...] ++ Mix.compilers(),23752376 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/12377 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52378 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22379 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42380 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/22381 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/523822383==> exshome2384Compiling 68 files (.ex)2385 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2386 │2387 5 │ use Exshome.Dependency.GenServerDependency, name: "utc_time"2388 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2389 │2390 └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_dependency_change/123912392 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2393 │2394 5 │ use Exshome.Dependency.GenServerDependency, name: "utc_time"2395 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2396 │2397 └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_event/223982399 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2400 │2401 6 │ use Exshome.Dependency.GenServerDependency,2402 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2403 │2404 └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_dependency_change/124052406 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2407 │2408 6 │ use Exshome.Dependency.GenServerDependency,2409 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2410 │2411 └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_event/224122413 warning: using single-quoted strings to represent charlists is deprecated.2414 Use ~c"" if you indeed want a charlist or use "" instead.2415 You may run "mix format --migrate" to change all single-quoted2416 strings to use the ~c sigil and fix this warning.2417 │2418 80 │ '--no-video',2419 │ ~2420 │2421 └─ lib/exshome_player/services/mpv_server.ex:80:724222423 warning: using single-quoted strings to represent charlists is deprecated.2424 Use ~c"" if you indeed want a charlist or use "" instead.2425 You may run "mix format --migrate" to change all single-quoted2426 strings to use the ~c sigil and fix this warning.2427 │2428 81 │ '--idle',2429 │ ~2430 │2431 └─ lib/exshome_player/services/mpv_server.ex:81:724322433 warning: using single-quoted strings to represent charlists is deprecated.2434 Use ~c"" if you indeed want a charlist or use "" instead.2435 You may run "mix format --migrate" to change all single-quoted2436 strings to use the ~c sigil and fix this warning.2437 │2438 82 │ '--no-cache',2439 │ ~2440 │2441 └─ lib/exshome_player/services/mpv_server.ex:82:724422443 warning: using single-quoted strings to represent charlists is deprecated.2444 Use ~c"" if you indeed want a charlist or use "" instead.2445 You may run "mix format --migrate" to change all single-quoted2446 strings to use the ~c sigil and fix this warning.2447 │2448 83 │ '--no-terminal',2449 │ ~2450 │2451 └─ lib/exshome_player/services/mpv_server.ex:83:724522453 warning: using single-quoted strings to represent charlists is deprecated.2454 Use ~c"" if you indeed want a charlist or use "" instead.2455 You may run "mix format --migrate" to change all single-quoted2456 strings to use the ~c sigil and fix this warning.2457 │2458 84 │ '--input-ipc-server=#{socket_path()}'2459 │ ~2460 │2461 └─ lib/exshome_player/services/mpv_server.ex:84:724622463 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2464 │2465 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_server"2466 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2467 │2468 └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_dependency_change/124692470 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2471 │2472 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_server"2473 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2474 │2475 └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_event/224762477 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2478 │2479 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2480 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2481 │2482 └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_dependency_change/124832484 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2485 │2486 5 │ use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2487 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2488 │2489 └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_event/224902491 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2492 │2493 11 │ use Exshome.Dependency.GenServerDependency,2494 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2495 │2496 └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_dependency_change/124972498 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2499 │2500 11 │ use Exshome.Dependency.GenServerDependency,2501 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2502 │2503 └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_event/225042505 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2506 │2507 11 │ use Exshome.Dependency.GenServerDependency,2508 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2509 │2510 └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_dependency_change/125112512 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2513 │2514 11 │ use Exshome.Dependency.GenServerDependency,2515 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2516 │2517 └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_event/225182519 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2520 │2521 8 │ use Exshome.Dependency.GenServerDependency,2522 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2523 │2524 └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_dependency_change/125252526 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2527 │2528 8 │ use Exshome.Dependency.GenServerDependency,2529 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2530 │2531 └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_event/225322533 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2534 │2535 8 │ use Exshome.Dependency.GenServerDependency,2536 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2537 │2538 └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_dependency_change/125392540 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2541 │2542 8 │ use Exshome.Dependency.GenServerDependency,2543 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2544 │2545 └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_event/225462547 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2548 │2549 8 │ use Exshome.Dependency.GenServerDependency,2550 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2551 │2552 └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_dependency_change/125532554 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2555 │2556 8 │ use Exshome.Dependency.GenServerDependency,2557 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2558 │2559 └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_event/225602561 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2562 │2563 8 │ use Exshome.Dependency.GenServerDependency,2564 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2565 │2566 └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_dependency_change/125672568 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2569 │2570 8 │ use Exshome.Dependency.GenServerDependency,2571 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2572 │2573 └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_event/225742575 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2576 │2577 8 │ use Exshome.Dependency.GenServerDependency,2578 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2579 │2580 └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_dependency_change/125812582 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2583 │2584 8 │ use Exshome.Dependency.GenServerDependency,2585 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2586 │2587 └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_event/225882589 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2590 │2591 8 │ use Exshome.Dependency.GenServerDependency,2592 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2593 │2594 └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_dependency_change/125952596 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2597 │2598 8 │ use Exshome.Dependency.GenServerDependency,2599 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2600 │2601 └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_event/226022603warning: defining a Gettext backend by calling26042605 use Gettext, otp_app: ...26062607is deprecated. To define a backend, call:26082609 use Gettext.Backend, otp_app: :my_app26102611Then, instead of importing your backend, call this in your module:26122613 use Gettext, backend: MyApp.Gettext26142615 lib/exshome_web/gettext.ex:23: ExshomeWeb.Gettext (module)26162617 warning: using single-quoted strings to represent charlists is deprecated.2618 Use ~c"" if you indeed want a charlist or use "" instead.2619 You may run "mix format --migrate" to change all single-quoted2620 strings to use the ~c sigil and fix this warning.2621 │2622 21 │ class={"text-4xl #{if @deps.playlist.current_id == track.id, do: 'playing'}"}2623 │ ~2624 │2625 └─ lib/exshome_player/web/templates/playlist.html.heex:21:7826262627 warning: using single-quoted strings to represent charlists is deprecated.2628 Use ~c"" if you indeed want a charlist or use "" instead.2629 You may run "mix format --migrate" to change all single-quoted2630 strings to use the ~c sigil and fix this warning.2631 │2632 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"2633 │ ~2634 │2635 └─ lib/exshome_player/web/templates/playlist.html.heex:26:6226362637 warning: using single-quoted strings to represent charlists is deprecated.2638 Use ~c"" if you indeed want a charlist or use "" instead.2639 You may run "mix format --migrate" to change all single-quoted2640 strings to use the ~c sigil and fix this warning.2641 │2642 6 │ <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2643 │ ~2644 │2645 └─ lib/exshome_player/web/templates/preview.html.heex:6:5426462647 warning: using single-quoted strings to represent charlists is deprecated.2648 Use ~c"" if you indeed want a charlist or use "" instead.2649 You may run "mix format --migrate" to change all single-quoted2650 strings to use the ~c sigil and fix this warning.2651 │2652 6 │ <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2653 │ ~2654 │2655 └─ lib/exshome_player/web/templates/preview.html.heex:6:68265626572658== Compilation error in file lib/exshome_web/endpoint.ex ==2659** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found2660 (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/12661 (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/12662 (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/22663 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22664 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22665 (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/12666 (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/42667 (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/32668could 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"