exshome

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: "&lt;"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: "&gt;"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: "&amp;"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: "&quot;"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: "&#39;"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"