exshome

Build log

nerves_system_rpi5

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