exshome

Build log

nerves_system_bbb

exshome 0.1.7 · fail · run exshome-0.1.7-1791181754346
2669 of 2669 lines
1Resolving Hex dependencies...2Resolution completed in 0.629s3Unchanged: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/bbb/lib/erlexec/priv/armv7-nerves-linux-gnueabihf/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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/bbb/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_armv7_nerves_linux_gnueabihf381Compiling 1 file (.ex)382Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app383==> nerves_compatibility_test384===> Analyzing applications...385===> Compiling telemetry386==> ecto387Compiling 56 files (.ex)388     warning: this clause of defp field_source!/2 is never used (or it will always fail/warn when invoked)389     │390 968 │   defp field_source!(nil, field) do391     │        ~392     │393     └─ lib/ecto/repo/schema.ex:968:8: Ecto.Repo.Schema.field_source!/2394395Generated ecto app396==> telemetry_metrics397Compiling 7 files (.ex)398     warning: unused require Logger399     │400 391 │   require Logger401     │   ~402     │403     └─ lib/telemetry_metrics.ex:391:3404405Generated telemetry_metrics app406==> nerves_compatibility_test407===> Analyzing applications...408===> Compiling telemetry_poller409==> db_connection410Compiling 18 files (.ex)411Generated db_connection app412warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"413  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2414  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1415  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5416  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2417  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4418  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2419420==> ecto_sql421Compiling 25 files (.ex)422     warning: unused require Ecto.Query423     │424 140 │   require Ecto.Query425     │   ~426     │427     └─ lib/ecto/adapters/tds.ex:140:3428429     warning: unused require Logger430     │431 139 │   require Logger432     │   ~433     │434     └─ lib/ecto/adapters/tds.ex:139:3435436     warning: unused require Ecto.Query437     │438 107 │   require Ecto.Query439     │   ~440     │441     └─ lib/ecto/migrator.ex:107:3442443      warning: this clause of defp validate_index_opts!/1 is never used (or it will always fail/warn when invoked)444      │445 1724 │   defp validate_index_opts!(opts), do: opts446      │        ~447      │448      └─ lib/ecto/migration.ex:1724:8: Ecto.Migration.validate_index_opts!/1449450Generated ecto_sql app451==> nerves_compatibility_test452===> Analyzing applications...453===> Compiling cowboy454==> expo455Compiling 2 files (.erl)456Compiling 22 files (.ex)457Generated expo app458==> gettext459Compiling 18 files (.ex)460     warning: unused require Gettext.Macros461     │462 594 │   require Gettext.Macros463     │   ~464     │465     └─ lib/gettext.ex:594:3466467     warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead468     │469 426 │               Kernel.ParallelCompiler.async(fn ->470     │                                       ~471     │472     └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3473474     warning: the following clause is redundant:475476         defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)477478     it has type:479480         dynamic(%Expo.Message.Plural{})481482     previous clauses have already matched on the following types:483484         %Expo.Message.Singular{}485         %Expo.Message.Plural{}486487     │488 391 │   defp ensure_empty_msgstr!(%Message.Plural{} = message) do489     │        ~490     │491     └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1492493Generated gettext app494==> phoenix_pubsub495Compiling 12 files (.ex)496Generated phoenix_pubsub app497==> plug498Compiling 1 file (.erl)499Compiling 42 files (.ex)500Generated plug app501==> phoenix_html502Compiling 9 files (.ex)503    warning: comparison between distinct types found:504505        id == nil506507    given types:508509        dynamic(not false and not nil and not binary()) == nil510511    where "id" was given the types:512513        # type: dynamic(not false and not nil)514        # from: lib/phoenix_html/form_data.ex:92:8515        id = Keyword.get(opts, :id) || name516517        # type: dynamic(not false and not nil and not binary())518        # from: lib/phoenix_html/form_data.ex:94:12519        is_binary(id)520521    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 false522523    type warning found at:524    │525 94 │     unless is_binary(id) or is_nil(id) do526    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~527    │528    └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2529530    warning: the 1st pattern in clause will never match:531532        60533534    because it is expected to receive type:535536        dynamic(empty_list() or non_empty_list(term(), term()))537538    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())539540    type warning found at:541    │542 56 │   def to_iodata(?<), do: "&lt;"543    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~544    │545    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1546547    warning: the 1st pattern in clause will never match:548549        62550551    because it is expected to receive type:552553        dynamic(empty_list() or non_empty_list(term(), term()))554555    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())556557    type warning found at:558    │559 57 │   def to_iodata(?>), do: "&gt;"560    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~561    │562    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1563564    warning: the 1st pattern in clause will never match:565566        38567568    because it is expected to receive type:569570        dynamic(empty_list() or non_empty_list(term(), term()))571572    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())573574    type warning found at:575    │576 58 │   def to_iodata(?&), do: "&amp;"577    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~578    │579    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1580581    warning: the 1st pattern in clause will never match:582583        34584585    because it is expected to receive type:586587        dynamic(empty_list() or non_empty_list(term(), term()))588589    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())590591    type warning found at:592    │593 59 │   def to_iodata(?"), do: "&quot;"594    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~595    │596    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1597598    warning: the 1st pattern in clause will never match:599600        39601602    because it is expected to receive type:603604        dynamic(empty_list() or non_empty_list(term(), term()))605606    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())607608    type warning found at:609    │610 60 │   def to_iodata(?'), do: "&#39;"611    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~612    │613    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1614615    warning: the 1st pattern in clause will never match:616617        {:safe, data}618619    because it is expected to receive type:620621        dynamic(empty_list() or non_empty_list(term(), term()))622623    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())624625    type warning found at:626    │627 76 │   def to_iodata({:safe, data}) do628    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~629    │630    └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1631632    warning: the following clause is redundant:633634        def to_iodata(other)635636    it has type:637638        dynamic(empty_list() or non_empty_list(term(), term()))639640    previous clauses have already matched on the following types:641642        non_empty_list(term(), term())643        empty_list()644645    │646 80 │   def to_iodata(other) do647    │       ~648    │649    └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1650651    warning: the 1st pattern in clause will never match:652653        h654655    because it is expected to receive type:656657        dynamic(empty_list() or non_empty_list(term(), term()))658659    where "h" was given the type:660661        # type: integer()662        # from: lib/phoenix_html/safe.ex:62:25663        is_integer(h)664665    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())666667    type warning found at:668    │669 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do670    │                 ~671    │672    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1673674    warning: the 1st pattern in clause will never match:675676        h677678    because it is expected to receive type:679680        dynamic(empty_list() or non_empty_list(term(), term()))681682    where "h" was given the type:683684        # type: integer()685        # from: lib/phoenix_html/safe.ex:66:25686        is_integer(h)687688    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())689690    type warning found at:691    │692 66 │   def to_iodata(h) when is_integer(h) do693    │                 ~694    │695    └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1696697    warning: the 1st pattern in clause will never match:698699        h700701    because it is expected to receive type:702703        dynamic(empty_list() or non_empty_list(term(), term()))704705    where "h" was given the type:706707        # type: binary()708        # from: lib/phoenix_html/safe.ex:72:25709        is_binary(h)710711    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())712713    type warning found at:714    │715 72 │   def to_iodata(h) when is_binary(h) do716    │                 ~717    │718    └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1719720Generated phoenix_html app721warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"722  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2723  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1724  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5725  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2726  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4727  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2728729==> phoenix_ecto730Compiling 7 files (.ex)731Generated phoenix_ecto app732==> phoenix_template733Compiling 4 files (.ex)734Generated phoenix_template app735==> phoenix_view736Compiling 1 file (.ex)737     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 operator738     │739 655 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix740     │                             ~741     │742     └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2743744Generated phoenix_view app745==> tz746Compiling 15 files (.ex)747    warning: Application.fetch_env/2 is discouraged in the module body, use Application.compile_env/3 instead748    │749  3 │     case Application.fetch_env(:tz, :http_client) do750    │                      ~751    │752    └─ lib/http/http.ex:3:22: Tz.HTTP (module)753754    warning: using single-quoted strings to represent charlists is deprecated.755    Use ~c"" if you indeed want a charlist or use "" instead.756    You may run "mix format --migrate" to change all single-quoted757    strings to use the ~c sigil and fix this warning.758    │759 55 │       'africa',760    │       ~761    │762    └─ lib/iana_data_dir.ex:55:7763764    warning: using single-quoted strings to represent charlists is deprecated.765    Use ~c"" if you indeed want a charlist or use "" instead.766    You may run "mix format --migrate" to change all single-quoted767    strings to use the ~c sigil and fix this warning.768    │769 56 │       'antarctica',770    │       ~771    │772    └─ lib/iana_data_dir.ex:56:7773774    warning: using single-quoted strings to represent charlists is deprecated.775    Use ~c"" if you indeed want a charlist or use "" instead.776    You may run "mix format --migrate" to change all single-quoted777    strings to use the ~c sigil and fix this warning.778    │779 57 │       'asia',780    │       ~781    │782    └─ lib/iana_data_dir.ex:57:7783784    warning: using single-quoted strings to represent charlists is deprecated.785    Use ~c"" if you indeed want a charlist or use "" instead.786    You may run "mix format --migrate" to change all single-quoted787    strings to use the ~c sigil and fix this warning.788    │789 58 │       'australasia',790    │       ~791    │792    └─ lib/iana_data_dir.ex:58:7793794    warning: using single-quoted strings to represent charlists is deprecated.795    Use ~c"" if you indeed want a charlist or use "" instead.796    You may run "mix format --migrate" to change all single-quoted797    strings to use the ~c sigil and fix this warning.798    │799 59 │       'backward',800    │       ~801    │802    └─ lib/iana_data_dir.ex:59:7803804    warning: using single-quoted strings to represent charlists is deprecated.805    Use ~c"" if you indeed want a charlist or use "" instead.806    You may run "mix format --migrate" to change all single-quoted807    strings to use the ~c sigil and fix this warning.808    │809 60 │       'etcetera',810    │       ~811    │812    └─ lib/iana_data_dir.ex:60:7813814    warning: using single-quoted strings to represent charlists is deprecated.815    Use ~c"" if you indeed want a charlist or use "" instead.816    You may run "mix format --migrate" to change all single-quoted817    strings to use the ~c sigil and fix this warning.818    │819 61 │       'europe',820    │       ~821    │822    └─ lib/iana_data_dir.ex:61:7823824    warning: using single-quoted strings to represent charlists is deprecated.825    Use ~c"" if you indeed want a charlist or use "" instead.826    You may run "mix format --migrate" to change all single-quoted827    strings to use the ~c sigil and fix this warning.828    │829 62 │       'northamerica',830    │       ~831    │832    └─ lib/iana_data_dir.ex:62:7833834    warning: using single-quoted strings to represent charlists is deprecated.835    Use ~c"" if you indeed want a charlist or use "" instead.836    You may run "mix format --migrate" to change all single-quoted837    strings to use the ~c sigil and fix this warning.838    │839 63 │       'southamerica',840    │       ~841    │842    └─ lib/iana_data_dir.ex:63:7843844    warning: using single-quoted strings to represent charlists is deprecated.845    Use ~c"" if you indeed want a charlist or use "" instead.846    You may run "mix format --migrate" to change all single-quoted847    strings to use the ~c sigil and fix this warning.848    │849 64 │       'iso3166.tab',850    │       ~851    │852    └─ lib/iana_data_dir.ex:64:7853854    warning: using single-quoted strings to represent charlists is deprecated.855    Use ~c"" if you indeed want a charlist or use "" instead.856    You may run "mix format --migrate" to change all single-quoted857    strings to use the ~c sigil and fix this warning.858    │859 65 │       'zone1970.tab'860    │       ~861    │862    └─ lib/iana_data_dir.ex:65:7863864    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead865    │866  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)867    │                                                                  ~868    │869    └─ lib/iana_file_parser.ex:5:66: Tz.IanaFileParser (module)870871    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead872    │873  3 │   @custom_data_dir Application.get_env(:tz, :data_dir)874    │                                ~875    │876    └─ lib/iana_data_dir.ex:3:32: Tz.IanaDataDir (module)877878    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead879    │880 15 │           Logger.warn("Tz found a more recent time zone database available for download at #{link}")881    │                  ~882    │883    └─ lib/watch_periodically.ex:15:18: Tz.WatchPeriodically.watch/0884885    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead886    │887 11 │   @reject_periods_before_year Application.get_env(:tz, :reject_time_zone_periods_before_year)888    │                                           ~889    │890    └─ lib/compiler.ex:11:43: Tz.Compiler (module)891892    warning: unused require Tz.IanaFileParser893    │894  4 │   require Tz.IanaFileParser895    │   ~896    │897    └─ lib/compiler.ex:4:3898899    warning: unused require Tz.PeriodsBuilder900    │901  5 │   require Tz.PeriodsBuilder902    │   ~903    │904    └─ lib/compiler.ex:5:3905906Compiling lib/compiler_runner.ex (it's taking more than 10s)907    warning: this clause of defp reject_periods_before_year/2 is never used (or it will always fail/warn when invoked)908    │909 65 │   defp reject_periods_before_year(periods, reject_before_year) do910    │        ~911    │912    └─ lib/compiler.ex:65:8: Tz.Compiler.reject_periods_before_year/2913914     warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)915     │916 250 │   defp add_to_and_convert_date_tuple(:min, _, _, _), do: :min917     │        ~918     │919     └─ lib/periods_builder.ex:250:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4920921     warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)922     │923 251 │   defp add_to_and_convert_date_tuple(:max, _, _, _), do: :max924     │        ~925     │926     └─ lib/periods_builder.ex:251:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4927928    warning: nil.request/2 is undefined (module nil is not available or is yet to be defined)929    │930 27 │     case HTTP.get_http_client!().request("data.iana.org", "/time-zones/tzdb/version") do931    │                                  ~932    │933    └─ lib/updater.ex:27:34: Tz.Updater.fetch_iana_tz_version/0934    └─ lib/updater.ex:75:34: Tz.Updater.download_tz_database/1935936Generated tz app937==> tz_extra938Compiling 7 files (.ex)939    warning: unused require TzExtra.IanaFileParser940    │941  4 │   require TzExtra.IanaFileParser942    │   ~943    │944    └─ lib/compiler.ex:4:3945946    warning: unused require TzExtra.Compiler947    │948  3 │     require TzExtra.Compiler949    │     ~950    │951    └─ lib/changeset.ex:3:5952953Generated tz_extra app954==> uboot_env955Compiling 5 files (.ex)956Generated uboot_env app957==> cc_precompiler958Compiling 3 files (.ex)959Generated cc_precompiler app960==> exqlite961 CC sqlite3_nif.o962 CC sqlite3.o963 LD sqlite3_nif.so964Compiling 12 files (.ex)965Generated exqlite app966==> nerves_system_bbb967Generated nerves_system_bbb app968==> ecto_sqlite3969Compiling 4 files (.ex)970     warning: using single-quoted strings to represent charlists is deprecated.971     Use ~c"" if you indeed want a charlist or use "" instead.972     You may run "mix format --migrate" to change all single-quoted973     strings to use the ~c sigil and fix this warning.974     │975 778 │         {['?'], counter + 1}976     │           ~977     │978     └─ lib/ecto/adapters/sqlite3/connection.ex:778:11979980      warning: using single-quoted strings to represent charlists is deprecated.981      Use ~c"" if you indeed want a charlist or use "" instead.982      You may run "mix format --migrate" to change all single-quoted983      strings to use the ~c sigil and fix this warning.984      │985 1177 │     '?'986      │     ~987      │988      └─ lib/ecto/adapters/sqlite3/connection.ex:1177:5989990    warning: function dump_cmd/3 required by behaviour Ecto.Adapter.Structure is not implemented (in module Ecto.Adapters.SQLite3)991    │992  1 │ defmodule Ecto.Adapters.SQLite3 do993    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~994    │995    └─ lib/ecto/adapters/sqlite3.ex:1: Ecto.Adapters.SQLite3 (module)996997    warning: function query_many/4 required by behaviour Ecto.Adapters.SQL.Connection is not implemented (in module Ecto.Adapters.SQLite3.Connection)998    │999  1 │ defmodule Ecto.Adapters.SQLite3.Connection do1000    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1001    │1002    └─ lib/ecto/adapters/sqlite3/connection.ex:1: Ecto.Adapters.SQLite3.Connection (module)10031004     warning: the following clause is redundant:10051006         def execute_ddl({:create, %Ecto.Migration.Index{} = index})10071008     it has type:10091010         dynamic({:create, %Ecto.Migration.Index{}})10111012     previous clauses have already matched on the following types:10131014         {:create, %Ecto.Migration.Table{}, term()}1015         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1016         {:drop, %Ecto.Migration.Table{}}1017         {:drop, %Ecto.Migration.Table{}, term()}1018         {:drop_if_exists, %Ecto.Migration.Table{}}1019         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1020         {:alter, %Ecto.Migration.Table{}, term()}1021         {:create, %Ecto.Migration.Index{}}1022         {:create_if_not_exists, %Ecto.Migration.Index{}}1023         {:drop, %Ecto.Migration.Index{}}1024         {:drop, %Ecto.Migration.Index{}, term()}1025         {:drop_if_exists, %Ecto.Migration.Index{}}1026         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1027         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1028         {:rename, %Ecto.Migration.Table{}, term(), term()}10291030     │1031 560 │   def execute_ddl({:create, %Index{} = index}) do1032     │       ~1033     │1034     └─ lib/ecto/adapters/sqlite3/connection.ex:560:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110351036     warning: the following clause is redundant:10371038         def execute_ddl({:create_if_not_exists, %Ecto.Migration.Index{} = index})10391040     it has type:10411042         dynamic({:create_if_not_exists, %Ecto.Migration.Index{}})10431044     previous clauses have already matched on the following types:10451046         {:create, %Ecto.Migration.Table{}, term()}1047         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1048         {:drop, %Ecto.Migration.Table{}}1049         {:drop, %Ecto.Migration.Table{}, term()}1050         {:drop_if_exists, %Ecto.Migration.Table{}}1051         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1052         {:alter, %Ecto.Migration.Table{}, term()}1053         {:create, %Ecto.Migration.Index{}}1054         {:create_if_not_exists, %Ecto.Migration.Index{}}1055         {:drop, %Ecto.Migration.Index{}}1056         {:drop, %Ecto.Migration.Index{}, term()}1057         {:drop_if_exists, %Ecto.Migration.Index{}}1058         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1059         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1060         {:rename, %Ecto.Migration.Table{}, term(), term()}10611062     │1063 582 │   def execute_ddl({:create_if_not_exists, %Index{} = index}) do1064     │       ~1065     │1066     └─ lib/ecto/adapters/sqlite3/connection.ex:582:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/110671068     warning: the following clause is redundant:10691070         def execute_ddl({:drop, %Ecto.Migration.Index{} = index})10711072     it has type:10731074         dynamic({:drop, %Ecto.Migration.Index{}})10751076     previous clauses have already matched on the following types:10771078         {:create, %Ecto.Migration.Table{}, term()}1079         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1080         {:drop, %Ecto.Migration.Table{}}1081         {:drop, %Ecto.Migration.Table{}, term()}1082         {:drop_if_exists, %Ecto.Migration.Table{}}1083         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1084         {:alter, %Ecto.Migration.Table{}, term()}1085         {:create, %Ecto.Migration.Index{}}1086         {:create_if_not_exists, %Ecto.Migration.Index{}}1087         {:drop, %Ecto.Migration.Index{}}1088         {:drop, %Ecto.Migration.Index{}, term()}1089         {:drop_if_exists, %Ecto.Migration.Index{}}1090         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1091         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1092         {:rename, %Ecto.Migration.Table{}, term(), term()}1093         {:create, %Ecto.Migration.Constraint{}}10941095     │1096 609 │   def execute_ddl({:drop, %Index{} = index}) do1097     │       ~1098     │1099     └─ lib/ecto/adapters/sqlite3/connection.ex:609:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111001101     warning: the following clause is redundant:11021103         def execute_ddl({:drop, %Ecto.Migration.Index{} = index, _mode})11041105     it has type:11061107         dynamic({:drop, %Ecto.Migration.Index{}, term()})11081109     previous clauses have already matched on the following types:11101111         {:create, %Ecto.Migration.Table{}, term()}1112         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1113         {:drop, %Ecto.Migration.Table{}}1114         {:drop, %Ecto.Migration.Table{}, term()}1115         {:drop_if_exists, %Ecto.Migration.Table{}}1116         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1117         {:alter, %Ecto.Migration.Table{}, term()}1118         {:create, %Ecto.Migration.Index{}}1119         {:create_if_not_exists, %Ecto.Migration.Index{}}1120         {:drop, %Ecto.Migration.Index{}}1121         {:drop, %Ecto.Migration.Index{}, term()}1122         {:drop_if_exists, %Ecto.Migration.Index{}}1123         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1124         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1125         {:rename, %Ecto.Migration.Table{}, term(), term()}1126         {:create, %Ecto.Migration.Constraint{}}11271128     │1129 619 │   def execute_ddl({:drop, %Index{} = index, _mode}) do1130     │       ~1131     │1132     └─ lib/ecto/adapters/sqlite3/connection.ex:619:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111331134     warning: the following clause is redundant:11351136         def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index})11371138     it has type:11391140         dynamic({:drop_if_exists, %Ecto.Migration.Index{}})11411142     previous clauses have already matched on the following types:11431144         {:create, %Ecto.Migration.Table{}, term()}1145         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1146         {:drop, %Ecto.Migration.Table{}}1147         {:drop, %Ecto.Migration.Table{}, term()}1148         {:drop_if_exists, %Ecto.Migration.Table{}}1149         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1150         {:alter, %Ecto.Migration.Table{}, term()}1151         {:create, %Ecto.Migration.Index{}}1152         {:create_if_not_exists, %Ecto.Migration.Index{}}1153         {:drop, %Ecto.Migration.Index{}}1154         {:drop, %Ecto.Migration.Index{}, term()}1155         {:drop_if_exists, %Ecto.Migration.Index{}}1156         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1157         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1158         {:rename, %Ecto.Migration.Table{}, term(), term()}1159         {:create, %Ecto.Migration.Constraint{}}11601161     │1162 624 │   def execute_ddl({:drop_if_exists, %Index{} = index}) do1163     │       ~1164     │1165     └─ lib/ecto/adapters/sqlite3/connection.ex:624:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111661167     warning: the following clause is redundant:11681169         def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index, _mode})11701171     it has type:11721173         dynamic({:drop_if_exists, %Ecto.Migration.Index{}, term()})11741175     previous clauses have already matched on the following types:11761177         {:create, %Ecto.Migration.Table{}, term()}1178         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1179         {:drop, %Ecto.Migration.Table{}}1180         {:drop, %Ecto.Migration.Table{}, term()}1181         {:drop_if_exists, %Ecto.Migration.Table{}}1182         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1183         {:alter, %Ecto.Migration.Table{}, term()}1184         {:create, %Ecto.Migration.Index{}}1185         {:create_if_not_exists, %Ecto.Migration.Index{}}1186         {:drop, %Ecto.Migration.Index{}}1187         {:drop, %Ecto.Migration.Index{}, term()}1188         {:drop_if_exists, %Ecto.Migration.Index{}}1189         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1190         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1191         {:rename, %Ecto.Migration.Table{}, term(), term()}1192         {:create, %Ecto.Migration.Constraint{}}11931194     │1195 634 │   def execute_ddl({:drop_if_exists, %Index{} = index, _mode}) do1196     │       ~1197     │1198     └─ lib/ecto/adapters/sqlite3/connection.ex:634:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/111991200     warning: the following clause is redundant:12011202         def execute_ddl(1203               {:rename, %Ecto.Migration.Table{} = current_table, %Ecto.Migration.Table{} = new_table}1204             )12051206     it has type:12071208         dynamic({:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}})12091210     previous clauses have already matched on the following types:12111212         {:create, %Ecto.Migration.Table{}, term()}1213         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1214         {:drop, %Ecto.Migration.Table{}}1215         {:drop, %Ecto.Migration.Table{}, term()}1216         {:drop_if_exists, %Ecto.Migration.Table{}}1217         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1218         {:alter, %Ecto.Migration.Table{}, term()}1219         {:create, %Ecto.Migration.Index{}}1220         {:create_if_not_exists, %Ecto.Migration.Index{}}1221         {:drop, %Ecto.Migration.Index{}}1222         {:drop, %Ecto.Migration.Index{}, term()}1223         {:drop_if_exists, %Ecto.Migration.Index{}}1224         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1225         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1226         {:rename, %Ecto.Migration.Table{}, term(), term()}1227         {:create, %Ecto.Migration.Constraint{}}1228         {:drop, %Ecto.Migration.Constraint{}, term()}1229         {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12301231     │1232 649 │   def execute_ddl({:rename, %Table{} = current_table, %Table{} = new_table}) do1233     │       ~1234     │1235     └─ lib/ecto/adapters/sqlite3/connection.ex:649:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112361237     warning: the following clause is redundant:12381239         def execute_ddl({:rename, %Ecto.Migration.Table{} = table, current_column, new_column})12401241     it has type:12421243         dynamic({:rename, %Ecto.Migration.Table{}, term(), term()})12441245     previous clauses have already matched on the following types:12461247         {:create, %Ecto.Migration.Table{}, term()}1248         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}1249         {:drop, %Ecto.Migration.Table{}}1250         {:drop, %Ecto.Migration.Table{}, term()}1251         {:drop_if_exists, %Ecto.Migration.Table{}}1252         {:drop_if_exists, %Ecto.Migration.Table{}, term()}1253         {:alter, %Ecto.Migration.Table{}, term()}1254         {:create, %Ecto.Migration.Index{}}1255         {:create_if_not_exists, %Ecto.Migration.Index{}}1256         {:drop, %Ecto.Migration.Index{}}1257         {:drop, %Ecto.Migration.Index{}, term()}1258         {:drop_if_exists, %Ecto.Migration.Index{}}1259         {:drop_if_exists, %Ecto.Migration.Index{}, term()}1260         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}1261         {:rename, %Ecto.Migration.Table{}, term(), term()}1262         {:create, %Ecto.Migration.Constraint{}}1263         {:drop, %Ecto.Migration.Constraint{}, term()}1264         {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}12651266     │1267 661 │   def execute_ddl({:rename, %Table{} = table, current_column, new_column}) do1268     │       ~1269     │1270     └─ lib/ecto/adapters/sqlite3/connection.ex:661:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/112711272Generated ecto_sqlite3 app1273==> property_table1274Compiling 8 files (.ex)1275Generated property_table app1276==> nerves_uevent1277 CC uevent.o1278 LD uevent1279Compiling 5 files (.ex)1280Generated nerves_uevent app1281==> nerves_runtime1282Compiling 14 files (.ex)1283Generated nerves_runtime app1284==> toolshed1285Compiling 5 files (.ex)1286Generated toolshed app1287==> tailwind1288Compiling 3 files (.ex)1289Generated tailwind app1290==> nerves_compatibility_test1291===> Analyzing applications...1292===> Compiling cowboy_telemetry1293==> plug_cowboy1294Compiling 5 files (.ex)1295Generated plug_cowboy app1296warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1297  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21298  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11299  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51300  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21301  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41302  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/213031304==> phoenix1305Compiling 69 files (.ex)1306     warning: using single-quoted strings to represent charlists is deprecated.1307     Use ~c"" if you indeed want a charlist or use "" instead.1308     You may run "mix format --migrate" to change all single-quoted1309     strings to use the ~c sigil and fix this warning.1310     │1311 258 │           notBefore: {:utcTime, '#{not_before}000000Z'},1312     │                                 ~1313     │1314     └─ lib/mix/tasks/phx.gen.cert.ex:258:3313151316     warning: using single-quoted strings to represent charlists is deprecated.1317     Use ~c"" if you indeed want a charlist or use "" instead.1318     You may run "mix format --migrate" to change all single-quoted1319     strings to use the ~c sigil and fix this warning.1320     │1321 259 │           notAfter: {:utcTime, '#{not_after}000000Z'}1322     │                                ~1323     │1324     └─ lib/mix/tasks/phx.gen.cert.ex:259:3213251326    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1327    │1328 50 │             Logger.warn(1329    │                    ~1330    │1331    └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/313321333    warning: unused require Logger1334    │1335  9 │   require Logger1336    │   ~1337    │1338    └─ lib/phoenix/config.ex:9:313391340     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13411342     This error happens when you have function calls without parentheses inside keywords. For example:13431344         function(arg, one: nested_call a, b, c)1345         function(arg, one: if expr, do: :this, else: :that)13461347     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:13481349         function(arg, one: if(expr, do: :this, else: :that))1350         function(arg, one: nested_call(a, b, c))13511352     Ambiguity found at:1353     │1354 998 │   defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"1355     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1356     │1357     └─ lib/phoenix/controller.ex:99813581359     warning: unused require Logger1360     │1361 259 │   require Logger1362     │   ~1363     │1364     └─ lib/phoenix/endpoint.ex:259:313651366      warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1367      │1368 1009 │       Logger.warn "send_download/3 has been invoked during an AJAX request. " <>1369      │              ~1370      │1371      └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/113721373    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1374    │1375 34 │             Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")1376    │                    ~1377    │1378    └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/113791380    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1381    │1382 57 │       Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")1383    │              ~1384    │1385    └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/113861387    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1388    │1389 78 │       Logger.warn """1390    │              ~1391    │1392    └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/213931394     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1395     │1396 264 │       Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")1397     │              ~1398     │1399     └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/214001401    warning: unused require Phoenix.Endpoint1402    │1403  6 │   require Phoenix.Endpoint1404    │   ~1405    │1406    └─ lib/phoenix/controller.ex:6:314071408    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 operator1409    │1410 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1411    │                             ~1412    │1413    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/214141415    warning: unused require Phoenix.Endpoint1416    │1417 19 │   require Phoenix.Endpoint1418    │   ~1419    │1420    └─ lib/phoenix/endpoint/render_errors.ex:19:314211422    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.14231424    This error happens when you have function calls without parentheses inside keywords. For example:14251426        function(arg, one: nested_call a, b, c)1427        function(arg, one: if expr, do: :this, else: :that)14281429    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:14301431        function(arg, one: if(expr, do: :this, else: :that))1432        function(arg, one: nested_call(a, b, c))14331434    Ambiguity found at:1435    │1436 71 │     unless actions -- supported_actions == [], do: raise ArgumentError, """1437    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1438    │1439    └─ lib/phoenix/router/resource.ex:7114401441     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1442     │1443 653 │         Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end1444     │                ~1445     │1446     └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/414471448    warning: unused require Phoenix.Endpoint1449    │1450  6 │   require Phoenix.Endpoint1451    │   ~1452    │1453    └─ lib/phoenix/channel/server.ex:6:314541455     warning: unused require Phoenix.Endpoint1456     │1457 192 │   require Phoenix.Endpoint1458     │   ~1459     │1460     └─ lib/phoenix/socket.ex:192:314611462    warning: unused require Logger1463    │1464 93 │   require Logger1465    │   ~1466    │1467    └─ lib/phoenix/token.ex:93:314681469     warning: comparison between distinct types found:14701471         merge_all != []14721473     given types:14741475         dynamic(non_empty_list({atom(), term()})) != empty_list()14761477     where "merge_all" was given the type:14781479         # type: dynamic(non_empty_list({atom(), term()}))1480         # from: lib/phoenix/router/route.ex:111:151481         merge_all = merge_params ++ merge_private ++ merge_assigns14821483     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 false14841485     type warning found at:1486     │1487 113 │     if merge_all != [] do1488     │                  ~1489     │1490     └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/114911492    warning: a struct for Plug.Conn is expected on struct update:14931494        %Plug.Conn{conn | state: :sent}14951496    but got type:14971498        dynamic()14991500    where "conn" was given the type:15011502        # type: dynamic()1503        # from: lib/phoenix/endpoint/render_errors.ex:57:171504        conn15051506    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15071508    type warning found at:1509    │1510 61 │         %Plug.Conn{conn | state: :sent}1511    │         ~1512    │1513    └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/515141515     warning: a struct for Plug.Conn is expected on struct update:15161517         %Plug.Conn{conn | query_params: %{}, params: %{}}15181519     but got type:15201521         dynamic(%{..., params: %Plug.Conn.Unfetched{}})15221523     where "conn" was given the types:15241525         # type: dynamic(%{..., params: term()})1526         # from: lib/phoenix/endpoint/render_errors.ex:124:171527         conn.params15281529         # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1530         # from: lib/phoenix/endpoint/render_errors.ex:124:171531         conn.params15321533     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15341535     type warning found at:1536     │1537 125 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1538     │                                   ~1539     │1540     └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115411542    warning: incompatible types given to socket_children/1:15431544        socket_children(mod)15451546    given types:15471548        -dynamic(atom())-15491550    but expected one of:15511552        %{..., __sockets__: term()}15531554    where "mod" was given the types:15551556        # type: dynamic(atom() or binary())1557        # from: lib/phoenix/endpoint/supervisor.ex:27:411558        defaults(otp_app, mod)15591560        # type: dynamic(atom())1561        # from: lib/phoenix/endpoint/supervisor.ex:31:161562        mod.init(:supervisor, env_conf)15631564    type warning found at:1565    │1566 67 │       socket_children(mod) ++1567    │       ~1568    │1569    └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/115701571     warning: a struct for Plug.Conn is expected on struct update:15721573         %Plug.Conn{conn | query_params: %{}, params: params}15741575     but got type:15761577         dynamic(%{..., params: not %Plug.Conn.Unfetched{}})15781579     where "conn" was given the types:15801581         # type: dynamic(%{..., params: term()})1582         # from: lib/phoenix/endpoint/render_errors.ex:124:171583         conn.params15841585         # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1586         # from: lib/phoenix/endpoint/render_errors.ex:124:171587         conn.params15881589     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"15901591     type warning found at:1592     │1593 126 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}1594     │                   ~1595     │1596     └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/115971598     warning: expected a module (an atom) when invoking compress_file/2 in expression:15991600         compressor.compress_file(file.digested_filename, file.digested_content)16011602     where "compressor" was given the type:16031604         # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1605         # from: lib/phoenix/digester.ex:167:281606         [file_extension | _] = compressor.file_extensions16071608     where "file" was given the type:16091610         # type: dynamic(%{..., relative_path: term()})1611         # from: lib/phoenix/digester.ex:161:171612         Path.join(output_path, file.relative_path)16131614     type warning found at:1615     │1616 170 │              compressor.compress_file(file.digested_filename, file.digested_content) do1617     │                         ~1618     │1619     └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/216201621      warning: a struct for Plug.Conn is expected on struct update:16221623          %Plug.Conn{conn | params: params}16241625      but got type:16261627          dynamic(%{..., params: map()})16281629      where "conn" was given the type:16301631          # type: dynamic(%{..., params: map()})1632          # from: lib/phoenix/controller.ex:1036:171633          Map.get(conn.params, required_key)16341635      when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"16361637      type warning found at:1638      │1639 1043 │     %Plug.Conn{conn | params: params}1640      │     ~1641      │1642      └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/216431644Generated phoenix app1645warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1646  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21647  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11648  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51649  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21650  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41651  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/216521653==> phoenix_live_view1654Compiling 31 files (.ex)1655     warning: using single-quoted strings to represent charlists is deprecated.1656     Use ~c"" if you indeed want a charlist or use "" instead.1657     You may run "mix format --migrate" to change all single-quoted1658     strings to use the ~c sigil and fix this warning.1659     │1660 319 │         {'LiveView', view},1661     │          ~1662     │1663     └─ lib/phoenix_live_view/channel.ex:319:1016641665     warning: using single-quoted strings to represent charlists is deprecated.1666     Use ~c"" if you indeed want a charlist or use "" instead.1667     You may run "mix format --migrate" to change all single-quoted1668     strings to use the ~c sigil and fix this warning.1669     │1670 320 │         {'Parent pid', parent_pid},1671     │          ~1672     │1673     └─ lib/phoenix_live_view/channel.ex:320:1016741675     warning: using single-quoted strings to represent charlists is deprecated.1676     Use ~c"" if you indeed want a charlist or use "" instead.1677     You may run "mix format --migrate" to change all single-quoted1678     strings to use the ~c sigil and fix this warning.1679     │1680 321 │         {'Transport pid', transport_pid},1681     │          ~1682     │1683     └─ lib/phoenix_live_view/channel.ex:321:1016841685     warning: using single-quoted strings to represent charlists is deprecated.1686     Use ~c"" if you indeed want a charlist or use "" instead.1687     You may run "mix format --migrate" to change all single-quoted1688     strings to use the ~c sigil and fix this warning.1689     │1690 322 │         {'Topic', topic},1691     │          ~1692     │1693     └─ lib/phoenix_live_view/channel.ex:322:1016941695     warning: using single-quoted strings to represent charlists is deprecated.1696     Use ~c"" if you indeed want a charlist or use "" instead.1697     You may run "mix format --migrate" to change all single-quoted1698     strings to use the ~c sigil and fix this warning.1699     │1700 323 │         {'Components count', map_size(cid_to_component)}1701     │          ~1702     │1703     └─ lib/phoenix_live_view/channel.ex:323:1017041705     warning: using single-quoted strings to represent charlists is deprecated.1706     Use ~c"" if you indeed want a charlist or use "" instead.1707     You may run "mix format --migrate" to change all single-quoted1708     strings to use the ~c sigil and fix this warning.1709     │1710 329 │     [data: [{'State', state}]]1711     │              ~1712     │1713     └─ lib/phoenix_live_view/channel.ex:329:1417141715     warning: using single-quoted strings to represent charlists is deprecated.1716     Use ~c"" if you indeed want a charlist or use "" instead.1717     You may run "mix format --migrate" to change all single-quoted1718     strings to use the ~c sigil and fix this warning.1719     │1720 112 │   @codepoints '\s\n\r\t'1721     │               ~1722     │1723     └─ lib/phoenix_live_view/html_algebra.ex:112:1517241725     warning: using single-quoted strings to represent charlists is deprecated.1726     Use ~c"" if you indeed want a charlist or use "" instead.1727     You may run "mix format --migrate" to change all single-quoted1728     strings to use the ~c sigil and fix this warning.1729     │1730 125 │     do: :binary.first(text) in '\n\r'1731     │                                ~1732     │1733     └─ lib/phoenix_live_view/html_algebra.ex:125:3217341735     warning: using single-quoted strings to represent charlists is deprecated.1736     Use ~c"" if you indeed want a charlist or use "" instead.1737     You may run "mix format --migrate" to change all single-quoted1738     strings to use the ~c sigil and fix this warning.1739     │1740 130 │     do: :binary.last(text) in '\n\r'1741     │                               ~1742     │1743     └─ lib/phoenix_live_view/html_algebra.ex:130:3117441745     warning: using single-quoted strings to represent charlists is deprecated.1746     Use ~c"" if you indeed want a charlist or use "" instead.1747     You may run "mix format --migrate" to change all single-quoted1748     strings to use the ~c sigil and fix this warning.1749     │1750 503 │   defp count_newlines_until_text(<<char, rest::binary>>, counter) when char in '\s\t\r',1751     │                                                                                ~1752     │1753     └─ lib/phoenix_live_view/html_formatter.ex:503:8017541755     warning: using single-quoted strings to represent charlists is deprecated.1756     Use ~c"" if you indeed want a charlist or use "" instead.1757     You may run "mix format --migrate" to change all single-quoted1758     strings to use the ~c sigil and fix this warning.1759     │1760 536 │     do: if(String.trim_leading(text) == "", do: false, else: !(:binary.last(text) in '\s\t'))1761     │                                                                                      ~1762     │1763     └─ lib/phoenix_live_view/html_formatter.ex:536:8617641765     warning: using single-quoted strings to represent charlists is deprecated.1766     Use ~c"" if you indeed want a charlist or use "" instead.1767     You may run "mix format --migrate" to change all single-quoted1768     strings to use the ~c sigil and fix this warning.1769     │1770 546 │       if String.trim_leading(text) != "" and :binary.first(text) not in '\s\t\n\r' do1771     │                                                                         ~1772     │1773     └─ lib/phoenix_live_view/html_formatter.ex:546:7317741775    warning: using single-quoted strings to represent charlists is deprecated.1776    Use ~c"" if you indeed want a charlist or use "" instead.1777    You may run "mix format --migrate" to change all single-quoted1778    strings to use the ~c sigil and fix this warning.1779    │1780  3 │   @space_chars '\s\t\f'1781    │                ~1782    │1783    └─ lib/phoenix_live_view/html_tokenizer.ex:3:1617841785    warning: using single-quoted strings to represent charlists is deprecated.1786    Use ~c"" if you indeed want a charlist or use "" instead.1787    You may run "mix format --migrate" to change all single-quoted1788    strings to use the ~c sigil and fix this warning.1789    │1790  4 │   @quote_chars '"\''1791    │                ~1792    │1793    └─ lib/phoenix_live_view/html_tokenizer.ex:4:1617941795    warning: using single-quoted strings to represent charlists is deprecated.1796    Use ~c"" if you indeed want a charlist or use "" instead.1797    You may run "mix format --migrate" to change all single-quoted1798    strings to use the ~c sigil and fix this warning.1799    │1800  5 │   @stop_chars '>/=\r\n' ++ @quote_chars ++ @space_chars1801    │               ~1802    │1803    └─ lib/phoenix_live_view/html_tokenizer.ex:5:1518041805    warning: unused require Logger1806    │1807 25 │   require Logger1808    │   ~1809    │1810    └─ lib/phoenix_live_view/socket.ex:25:318111812    warning: unused require Phoenix.ChannelTest1813    │1814  4 │   require Phoenix.ChannelTest1815    │   ~1816    │1817    └─ lib/phoenix_live_view/test/upload_client.ex:4:318181819     warning: unused require Phoenix.ChannelTest1820     │1821 179 │   require Phoenix.ChannelTest1822     │   ~1823     │1824     └─ lib/phoenix_live_view/test/live_view_test.ex:179:318251826     warning: unused require Phoenix.ConnTest1827     │1828 178 │   require Phoenix.ConnTest1829     │   ~1830     │1831     └─ lib/phoenix_live_view/test/live_view_test.ex:178:318321833    warning: unused require Logger1834    │1835  6 │   require Logger1836    │   ~1837    │1838    └─ lib/phoenix_live_view/upload_channel.ex:6:318391840     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18411842         %Phoenix.LiveView.Socket{1843           socket1844           | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1845         }18461847     but got type:18481849         dynamic()18501851     where "socket" was given the type:18521853         # type: dynamic()1854         # from: lib/phoenix_live_view/utils.ex:459:211855         socket18561857     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18581859     type warning found at:1860     │1861 460 │     %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1862     │     ~1863     │1864     └─ lib/phoenix_live_view/utils.ex:460:5: Phoenix.LiveView.Utils.do_mount_opt/318651866     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18671868         %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}18691870     but got type:18711872         dynamic()18731874     where "socket" was given the type:18751876         # type: dynamic()1877         # from: lib/phoenix_live_view/utils.ex:463:211878         socket18791880     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"18811882     type warning found at:1883     │1884 464 │     %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1885     │     ~1886     │1887     └─ lib/phoenix_live_view/utils.ex:464:5: Phoenix.LiveView.Utils.do_mount_opt/318881889     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:18901891         %Phoenix.LiveView.Socket{1892           socket1893           | assigns: Map.merge(temp_assigns, socket.assigns),1894             private: Map.put(socket.private, :temporary_assigns, temp_assigns)1895         }18961897     but got type:18981899         dynamic()19001901     where "socket" was given the type:19021903         # type: dynamic()1904         # from: lib/phoenix_live_view/utils.ex:473:211905         socket19061907     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19081909     type warning found at:1910     │1911 480 │     %Socket{1912     │     ~1913     │1914     └─ lib/phoenix_live_view/utils.ex:480:5: Phoenix.LiveView.Utils.do_mount_opt/319151916     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:19171918         %Phoenix.LiveView.Socket{1919           socket1920           | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1921         }19221923     but got type:19241925         dynamic(%{..., assigns: term()})19261927     where "socket" was given the type:19281929         # type: dynamic(%{..., assigns: term()})1930         # from: lib/phoenix_live_view/utils.ex:491:431931         %{assigns: assigns} = socket19321933     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"19341935     type warning found at:1936     │1937 492 │     socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1938     │              ~1939     │1940     └─ lib/phoenix_live_view/utils.ex:492:14: Phoenix.LiveView.Utils.render_assigns/119411942      warning: a struct for Phoenix.HTML.Form is expected on struct update:19431944          %Phoenix.HTML.Form{Phoenix.HTML.FormData.to_form(form_for, form_options) | action: action || "#"}19451946      but got type:19471948          dynamic()19491950      where "form_for" was given the type:19511952          # type: dynamic(not false and not nil)1953          # from: lib/phoenix_live_view/helpers.ex:1101:141954          form_for = assigns[:for] || :erlang.error(ArgumentError.exception("missing :for assign to form"))19551956      where "form_options" was given the type:19571958          # type: dynamic(list({term(), term()}))1959          # from: lib/phoenix_live_view/helpers.ex:1102:181960          form_options = assigns_to_attributes(assigns, [:action, :for])19611962      you must assign "Phoenix.HTML.FormData.to_form(form_for, form_options)" to variable and pattern match on "%Phoenix.HTML.Form{}"19631964      type warning found at:1965      │1966 1106 │       form = %Phoenix.HTML.Form{1967      │              ~1968      │1969      └─ lib/phoenix_live_view/helpers.ex:1106:14: Phoenix.LiveView.Helpers.form/119701971     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19721973         %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}19741975     but got type:19761977         dynamic()19781979     where "entry" was given the type:19801981         # type: dynamic()1982         # from: lib/phoenix_live_view/upload_config.ex:339:281983         entry <- conf.entries19841985     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"19861987     type warning found at:1988     │1989 339 │       | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1990     │                                                 ~1991     │1992     └─ lib/phoenix_live_view/upload_config.ex:339:49: Phoenix.LiveView.UploadConfig.mark_preflighted/119931994     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:19951996         %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}19971998     but got type:19992000         dynamic()20012002     where "entry" was given the type:20032004         # type: dynamic()2005         # from: lib/phoenix_live_view/upload_config.ex:539:302006         entry20072008     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20092010     type warning found at:2011     │2012 540 │     entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}2013     │             ~2014     │2015     └─ lib/phoenix_live_view/upload_config.ex:540:13: Phoenix.LiveView.UploadConfig.put_valid_entry/220162017    warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead2018    │2019 72 │     Logger.disable(self())2020    │            ~2021    │2022    └─ lib/phoenix_live_view/test/client_proxy.ex:72:12: Phoenix.LiveViewTest.ClientProxy.init/120232024     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:20252026         %Phoenix.LiveView.UploadEntry{entry | valid?: false}20272028     but got type:20292030         dynamic()20312032     where "entry" was given the type:20332034         # type: dynamic()2035         # from: lib/phoenix_live_view/upload_config.ex:552:322036         entry20372038     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20392040     type warning found at:2041     │2042 553 │     entry = %UploadEntry{entry | valid?: false}2043     │             ~2044     │2045     └─ lib/phoenix_live_view/upload_config.ex:553:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/320462047     warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:20482049         %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}20502051     but got type:20522053         dynamic(%{..., rendered: map()})20542055     where "view" was given the type:20562057         # type: dynamic(%{..., rendered: map()})2058         # from: lib/phoenix_live_view/test/client_proxy.ex:701:242059         Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)20602061     when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"20622063     type warning found at:2064     │2065 702 │         new_view = %ClientProxy{view | rendered: rendered}2066     │                    ~2067     │2068     └─ lib/phoenix_live_view/test/client_proxy.ex:702:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/320692070     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:20712072         %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}20732074     but got type:20752076         dynamic()20772078     where "entry" was given the type:20792080         # type: dynamic()2081         # from: lib/phoenix_live_view/upload_config.ex:635:422082         entry20832084     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"20852086     type warning found at:2087     │2088 635 │         update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)2089     │                                                   ~2090     │2091     └─ lib/phoenix_live_view/upload_config.ex:635:51: Phoenix.LiveView.UploadConfig.cancel_entry/220922093      warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead2094      │2095 1095 │       Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)2096      │                       ~2097      │2098      └─ lib/phoenix_live_view/test/client_proxy.ex:1095:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/32099      └─ lib/phoenix_live_view/test/client_proxy.ex:1100:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/32100      └─ lib/phoenix_live_view/test/client_proxy.ex:1110:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/32101      └─ lib/phoenix_live_view/test/client_proxy.ex:1119:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/321022103     warning: the following clause is redundant:21042105         def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)21062107     it has type:21082109         dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))21102111     previous clauses have already matched on the following types:21122113         %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())2114         %Phoenix.LiveView.Socket{}, term(), (none() -> term())2115         term(), term(), (none(), none() -> term())2116         term(), term(), (none() -> term())21172118     │2119 952 │   def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do2120     │       ~2121     │2122     └─ lib/phoenix_live_view.ex:952:7: Phoenix.LiveView.update/321232124     warning: the right-hand side of || (shown as ... below) will never be executed:21252126         conn.private[:live_view_connect_info] || prune_conn(conn) || ...21272128     because the left-hand side always evaluates to:21292130         dynamic(not false and not nil)21312132     where "conn" was given the types:21332134         # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})2135         # from: lib/phoenix_live_view/test/live_view_test.ex:320:722136         %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn21372138         # type: dynamic(%Plug.Conn{2139           assigns: %{..., live_module: term()},2140           private:2141             %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or2142               non_struct_map(),2143           status: integer()2144         })2145         # from: lib/phoenix_live_view/test/live_view_test.ex:334:352146         conn.private[:live_view_connect_params]21472148     type warning found at:2149     │2150 335 │       connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},2151     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2152     │2153     └─ lib/phoenix_live_view/test/live_view_test.ex:335: Phoenix.LiveViewTest.connect_from_static_token/221542155     warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)2156     │2157 603 │   defp class_names(nil), do: []2158     │        ~2159     │2160     └─ lib/phoenix_live_view/js.ex:603:8: Phoenix.LiveView.JS.class_names/121612162     warning: the following clause is redundant:21632164         def to_iodata(%_{} = struct)21652166     it has type:21672168         dynamic(%Phoenix.LiveView.Rendered{})21692170     previous clauses have already matched on the following types:21712172         %Phoenix.LiveView.Rendered{}21732174     │2175 127 │     def to_iodata(%_{} = struct) do2176     │         ~2177     │2178     └─ lib/phoenix_live_view/engine.ex:127:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121792180     warning: the 1st pattern in clause will never match:21812182         nil21832184     because it is expected to receive type:21852186         dynamic(%Phoenix.LiveView.Rendered{})21872188     hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}21892190     type warning found at:2191     │2192 131 │     def to_iodata(nil) do2193     │     ~~~~~~~~~~~~~~~~~~~~~2194     │2195     └─ lib/phoenix_live_view/engine.ex:131: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/121962197     warning: the following clause is redundant:21982199         def to_iodata(other)22002201     it has type:22022203         dynamic(%Phoenix.LiveView.Rendered{})22042205     previous clauses have already matched on the following types:22062207         %Phoenix.LiveView.Rendered{}22082209     │2210 135 │     def to_iodata(other) do2211     │         ~2212     │2213     └─ lib/phoenix_live_view/engine.ex:135:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/122142215Generated phoenix_live_view app2216warning: Phoenix now requires you to explicitly list which engine to use2217for Phoenix JSON encoding. We recommend everyone to upgrade to2218Jason by setting in your config/config.exs:22192220    config :phoenix, :json_library, Jason22212222And then adding {:jason, "~> 1.0"} as a dependency.22232224If instead you would rather continue using Poison, then add to2225your config/config.exs:22262227    config :phoenix, :json_library, Poison22282229  (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/22230  (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/422312232warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"2233  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/22234  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/12235  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52236  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22237  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42238  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/222392240==> phoenix_live_dashboard2241Compiling 40 files (.ex)2242     warning: using single-quoted strings to represent charlists is deprecated.2243     Use ~c"" if you indeed want a charlist or use "" instead.2244     You may run "mix format --migrate" to change all single-quoted2245     strings to use the ~c sigil and fix this warning.2246     │2247 709 │     '#Port' ++ rest = :erlang.port_to_list(ref)2248     │     ~2249     │2250     └─ lib/phoenix/live_dashboard/page_builder.ex:709:522512252     warning: using single-quoted strings to represent charlists is deprecated.2253     Use ~c"" if you indeed want a charlist or use "" instead.2254     You may run "mix format --migrate" to change all single-quoted2255     strings to use the ~c sigil and fix this warning.2256     │2257 728 │     '#Ref' ++ rest = :erlang.ref_to_list(ref)2258     │     ~2259     │2260     └─ lib/phoenix/live_dashboard/page_builder.ex:728:522612262     warning: using single-quoted strings to represent charlists is deprecated.2263     Use ~c"" if you indeed want a charlist or use "" instead.2264     You may run "mix format --migrate" to change all single-quoted2265     strings to use the ~c sigil and fix this warning.2266     │2267 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2268     │                ~2269     │2270     └─ lib/phoenix/live_dashboard/system_info.ex:446:1622712272     warning: using single-quoted strings to represent charlists is deprecated.2273     Use ~c"" if you indeed want a charlist or use "" instead.2274     You may run "mix format --migrate" to change all single-quoted2275     strings to use the ~c sigil and fix this warning.2276     │2277 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2278     │                            ~2279     │2280     └─ lib/phoenix/live_dashboard/system_info.ex:446:2822812282     warning: using single-quoted strings to represent charlists is deprecated.2283     Use ~c"" if you indeed want a charlist or use "" instead.2284     You may run "mix format --migrate" to change all single-quoted2285     strings to use the ~c sigil and fix this warning.2286     │2287 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']2288     │                                        ~2289     │2290     └─ lib/phoenix/live_dashboard/system_info.ex:446:4022912292     warning: using single-quoted strings to represent charlists is deprecated.2293     Use ~c"" if you indeed want a charlist or use "" instead.2294     You may run "mix format --migrate" to change all single-quoted2295     strings to use the ~c sigil and fix this warning.2296     │2297 654 │         [{'none', 0, 0}] -> []2298     │           ~2299     │2300     └─ lib/phoenix/live_dashboard/system_info.ex:654:1123012302warning: 0..-2 has a default step of -1, please write 0..-2//-1 instead2303  lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323042305warning: 0..-3 has a default step of -1, please write 0..-3//-1 instead2306  lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/323072308     warning: expected a module (an atom) when invoking __live__/0 in expression:23092310         Map.put(component_assigns, :page, page).__live__()23112312     but got type:23132314         dynamic(%{..., page: term()})23152316     where "component_assigns" was given the type:23172318         # type: dynamic(map())2319         # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:218:392320         Map.put(component_assigns, :page, page)23212322     where "page" was given the type:23232324         # type: dynamic()2325         # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:215:232326         page23272328     hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23292330     type warning found at:2331     │2332 218 │         live_component(component, Map.put(component_assigns, :page, page))2333     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2334     │2335     └─ lib/phoenix/live_dashboard/components/nav_bar_component.ex:218: Phoenix.LiveDashboard.NavBarComponent.render_content/223362337     warning: expected a module (an atom) when invoking __live__/0 in expression:23382339         component_assigns.__live__()23402341     where "component_assigns" was given the type:23422343         # type: dynamic(%{..., page: term()})2344         # from: lib/phoenix/live_dashboard/page_live.ex:238:232345         component_assigns = Map.put(component_assigns, :page, assigns.page)23462347     hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()23482349     type warning found at:2350     │2351 239 │     live_component(component, component_assigns)2352     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2353     │2354     └─ lib/phoenix/live_dashboard/page_live.ex:239: Phoenix.LiveDashboard.PageLive.render_page/223552356     warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)2357     │2358 276 │     do: struct.to_string(value)2359     │                ~2360     │2361     └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:276:16: Phoenix.LiveDashboard.EctoStatsPage.format/223622363    warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency2364    │2365  8 │     Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)2366    │            ~2367    │2368    └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/223692370Generated phoenix_live_dashboard app2371warning: the :gettext compiler is no longer required in your mix.exs.23722373Please find the following line in your mix.exs and remove the :gettext entry:23742375    compilers: [..., :gettext, ...] ++ Mix.compilers(),23762377  (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/12378  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52379  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22380  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42381  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/22382  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/523832384==> exshome2385Compiling 68 files (.ex)2386    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2387    │2388  6 │   use Exshome.Dependency.GenServerDependency,2389    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2390    │2391    └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_dependency_change/123922393    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2394    │2395  6 │   use Exshome.Dependency.GenServerDependency,2396    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2397    │2398    └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_event/223992400    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2401    │2402  5 │   use Exshome.Dependency.GenServerDependency, name: "utc_time"2403    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2404    │2405    └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_dependency_change/124062407    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2408    │2409  5 │   use Exshome.Dependency.GenServerDependency, name: "utc_time"2410    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2411    │2412    └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_event/224132414    warning: using single-quoted strings to represent charlists is deprecated.2415    Use ~c"" if you indeed want a charlist or use "" instead.2416    You may run "mix format --migrate" to change all single-quoted2417    strings to use the ~c sigil and fix this warning.2418    │2419 80 │       '--no-video',2420    │       ~2421    │2422    └─ lib/exshome_player/services/mpv_server.ex:80:724232424    warning: using single-quoted strings to represent charlists is deprecated.2425    Use ~c"" if you indeed want a charlist or use "" instead.2426    You may run "mix format --migrate" to change all single-quoted2427    strings to use the ~c sigil and fix this warning.2428    │2429 81 │       '--idle',2430    │       ~2431    │2432    └─ lib/exshome_player/services/mpv_server.ex:81:724332434    warning: using single-quoted strings to represent charlists is deprecated.2435    Use ~c"" if you indeed want a charlist or use "" instead.2436    You may run "mix format --migrate" to change all single-quoted2437    strings to use the ~c sigil and fix this warning.2438    │2439 82 │       '--no-cache',2440    │       ~2441    │2442    └─ lib/exshome_player/services/mpv_server.ex:82:724432444    warning: using single-quoted strings to represent charlists is deprecated.2445    Use ~c"" if you indeed want a charlist or use "" instead.2446    You may run "mix format --migrate" to change all single-quoted2447    strings to use the ~c sigil and fix this warning.2448    │2449 83 │       '--no-terminal',2450    │       ~2451    │2452    └─ lib/exshome_player/services/mpv_server.ex:83:724532454    warning: using single-quoted strings to represent charlists is deprecated.2455    Use ~c"" if you indeed want a charlist or use "" instead.2456    You may run "mix format --migrate" to change all single-quoted2457    strings to use the ~c sigil and fix this warning.2458    │2459 84 │       '--input-ipc-server=#{socket_path()}'2460    │       ~2461    │2462    └─ lib/exshome_player/services/mpv_server.ex:84:724632464    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2465    │2466  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_server"2467    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2468    │2469    └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_dependency_change/124702471    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2472    │2473  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_server"2474    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2475    │2476    └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_event/224772478    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2479    │2480  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2481    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2482    │2483    └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_dependency_change/124842485    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2486    │2487  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2488    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2489    │2490    └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_event/224912492    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2493    │2494 11 │   use Exshome.Dependency.GenServerDependency,2495    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2496    │2497    └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_dependency_change/124982499    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2500    │2501 11 │   use Exshome.Dependency.GenServerDependency,2502    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2503    │2504    └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_event/225052506    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2507    │2508 11 │   use Exshome.Dependency.GenServerDependency,2509    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2510    │2511    └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_dependency_change/125122513    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2514    │2515 11 │   use Exshome.Dependency.GenServerDependency,2516    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2517    │2518    └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_event/225192520    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2521    │2522  8 │   use Exshome.Dependency.GenServerDependency,2523    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2524    │2525    └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_dependency_change/125262527    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2528    │2529  8 │   use Exshome.Dependency.GenServerDependency,2530    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2531    │2532    └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_event/225332534    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2535    │2536  8 │   use Exshome.Dependency.GenServerDependency,2537    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2538    │2539    └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_dependency_change/125402541    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2542    │2543  8 │   use Exshome.Dependency.GenServerDependency,2544    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2545    │2546    └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_event/225472548    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2549    │2550  8 │   use Exshome.Dependency.GenServerDependency,2551    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2552    │2553    └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_dependency_change/125542555    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2556    │2557  8 │   use Exshome.Dependency.GenServerDependency,2558    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2559    │2560    └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_event/225612562    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2563    │2564  8 │   use Exshome.Dependency.GenServerDependency,2565    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2566    │2567    └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_dependency_change/125682569    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2570    │2571  8 │   use Exshome.Dependency.GenServerDependency,2572    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2573    │2574    └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_event/225752576    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2577    │2578  8 │   use Exshome.Dependency.GenServerDependency,2579    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2580    │2581    └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_dependency_change/125822583    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2584    │2585  8 │   use Exshome.Dependency.GenServerDependency,2586    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2587    │2588    └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_event/225892590    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2591    │2592  8 │   use Exshome.Dependency.GenServerDependency,2593    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2594    │2595    └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_dependency_change/125962597    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2598    │2599  8 │   use Exshome.Dependency.GenServerDependency,2600    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2601    │2602    └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_event/226032604warning: defining a Gettext backend by calling26052606    use Gettext, otp_app: ...26072608is deprecated. To define a backend, call:26092610    use Gettext.Backend, otp_app: :my_app26112612Then, instead of importing your backend, call this in your module:26132614    use Gettext, backend: MyApp.Gettext26152616  lib/exshome_web/gettext.ex:23: ExshomeWeb.Gettext (module)26172618    warning: using single-quoted strings to represent charlists is deprecated.2619    Use ~c"" if you indeed want a charlist or use "" instead.2620    You may run "mix format --migrate" to change all single-quoted2621    strings to use the ~c sigil and fix this warning.2622    │2623 21 │             class={"text-4xl #{if @deps.playlist.current_id == track.id, do: 'playing'}"}2624    │                                                                              ~2625    │2626    └─ lib/exshome_player/web/templates/playlist.html.heex:21:7826272628    warning: using single-quoted strings to represent charlists is deprecated.2629    Use ~c"" if you indeed want a charlist or use "" instead.2630    You may run "mix format --migrate" to change all single-quoted2631    strings to use the ~c sigil and fix this warning.2632    │2633 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"2634    │                                                              ~2635    │2636    └─ lib/exshome_player/web/templates/playlist.html.heex:26:6226372638    warning: using single-quoted strings to represent charlists is deprecated.2639    Use ~c"" if you indeed want a charlist or use "" instead.2640    You may run "mix format --migrate" to change all single-quoted2641    strings to use the ~c sigil and fix this warning.2642    │2643  6 │     <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2644    │                                                      ~2645    │2646    └─ lib/exshome_player/web/templates/preview.html.heex:6:5426472648    warning: using single-quoted strings to represent charlists is deprecated.2649    Use ~c"" if you indeed want a charlist or use "" instead.2650    You may run "mix format --migrate" to change all single-quoted2651    strings to use the ~c sigil and fix this warning.2652    │2653  6 │     <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2654    │                                                                    ~2655    │2656    └─ lib/exshome_player/web/templates/preview.html.heex:6:68265726582659== Compilation error in file lib/exshome_web/endpoint.ex ==2660** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found2661    (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/12662    (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/12663    (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/22664    (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22665    (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22666    (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/12667    (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/42668    (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/32669could 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"