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: "<"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: ">"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: "&"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: """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: "'"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"