exshome

Build log

nerves_system_x86_64

exshome 0.1.7 · fail · run exshome-0.1.7-1791181754346
2296 of 2296 lines
1Resolving Hex dependencies...2Resolution completed in 0.414s3Unchanged: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==> nimble_options154Compiling 3 files (.ex)155Generated nimble_options app156==> nerves_compatibility_test157===> Fetching pc v1.15.0158===> Analyzing applications...159===> Compiling pc160===> Compiling c_src/ei++.cpp161===> Compiling c_src/exec.cpp162===> Compiling c_src/exec_impl.cpp163===> Linking /work/proj/_build/x86_64/lib/erlexec/priv/x86_64-nerves-linux-musl/exec-port164===> Analyzing applications...165===> Compiling erlexec166==> phoenix_html167Compiling 9 files (.ex)168    warning: comparison between distinct types found:169170        id == nil171172    given types:173174        dynamic(not false and not nil and not binary()) == nil175176    where "id" was given the types:177178        # type: dynamic(not false and not nil)179        # from: lib/phoenix_html/form_data.ex:92:8180        id = Keyword.get(opts, :id) || name181182        # type: dynamic(not false and not nil and not binary())183        # from: lib/phoenix_html/form_data.ex:94:12184        is_binary(id)185186    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 false187188    type warning found at:189    │190 94 │     unless is_binary(id) or is_nil(id) do191    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~192    │193    └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2194195    warning: the 1st pattern in clause will never match:196197        60198199    because it is expected to receive type:200201        dynamic(empty_list() or non_empty_list(term(), term()))202203    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())204205    type warning found at:206    │207 56 │   def to_iodata(?<), do: "&lt;"208    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~209    │210    └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1211212    warning: the 1st pattern in clause will never match:213214        62215216    because it is expected to receive type:217218        dynamic(empty_list() or non_empty_list(term(), term()))219220    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())221222    type warning found at:223    │224 57 │   def to_iodata(?>), do: "&gt;"225    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~226    │227    └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1228229    warning: the 1st pattern in clause will never match:230231        38232233    because it is expected to receive type:234235        dynamic(empty_list() or non_empty_list(term(), term()))236237    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())238239    type warning found at:240    │241 58 │   def to_iodata(?&), do: "&amp;"242    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~243    │244    └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1245246    warning: the 1st pattern in clause will never match:247248        34249250    because it is expected to receive type:251252        dynamic(empty_list() or non_empty_list(term(), term()))253254    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())255256    type warning found at:257    │258 59 │   def to_iodata(?"), do: "&quot;"259    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~260    │261    └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1262263    warning: the 1st pattern in clause will never match:264265        39266267    because it is expected to receive type:268269        dynamic(empty_list() or non_empty_list(term(), term()))270271    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())272273    type warning found at:274    │275 60 │   def to_iodata(?'), do: "&#39;"276    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~277    │278    └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1279280    warning: the 1st pattern in clause will never match:281282        {:safe, data}283284    because it is expected to receive type:285286        dynamic(empty_list() or non_empty_list(term(), term()))287288    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())289290    type warning found at:291    │292 76 │   def to_iodata({:safe, data}) do293    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~294    │295    └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1296297    warning: the following clause is redundant:298299        def to_iodata(other)300301    it has type:302303        dynamic(empty_list() or non_empty_list(term(), term()))304305    previous clauses have already matched on the following types:306307        non_empty_list(term(), term())308        empty_list()309310    │311 80 │   def to_iodata(other) do312    │       ~313    │314    └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1315316    warning: the 1st pattern in clause will never match:317318        h319320    because it is expected to receive type:321322        dynamic(empty_list() or non_empty_list(term(), term()))323324    where "h" was given the type:325326        # type: integer()327        # from: lib/phoenix_html/safe.ex:62:25328        is_integer(h)329330    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())331332    type warning found at:333    │334 62 │   def to_iodata(h) when is_integer(h) and h <= 255 do335    │                 ~336    │337    └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1338339    warning: the 1st pattern in clause will never match:340341        h342343    because it is expected to receive type:344345        dynamic(empty_list() or non_empty_list(term(), term()))346347    where "h" was given the type:348349        # type: integer()350        # from: lib/phoenix_html/safe.ex:66:25351        is_integer(h)352353    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())354355    type warning found at:356    │357 66 │   def to_iodata(h) when is_integer(h) do358    │                 ~359    │360    └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1361362    warning: the 1st pattern in clause will never match:363364        h365366    because it is expected to receive type:367368        dynamic(empty_list() or non_empty_list(term(), term()))369370    where "h" was given the type:371372        # type: binary()373        # from: lib/phoenix_html/safe.ex:72:25374        is_binary(h)375376    hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())377378    type warning found at:379    │380 72 │   def to_iodata(h) when is_binary(h) do381    │                 ~382    │383    └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1384385Generated phoenix_html app386warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"387  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2388  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1389  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5390  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2391  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4392  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2393394==> phoenix_ecto395Compiling 7 files (.ex)396Generated phoenix_ecto app397==> phoenix_template398Compiling 4 files (.ex)399Generated phoenix_template app400==> phoenix_view401Compiling 1 file (.ex)402     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 operator403     │404 655 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix405     │                             ~406     │407     └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2408409Generated phoenix_view app410==> tz411Compiling 15 files (.ex)412    warning: Application.fetch_env/2 is discouraged in the module body, use Application.compile_env/3 instead413    │414  3 │     case Application.fetch_env(:tz, :http_client) do415    │                      ~416    │417    └─ lib/http/http.ex:3:22: Tz.HTTP (module)418419    warning: using single-quoted strings to represent charlists is deprecated.420    Use ~c"" if you indeed want a charlist or use "" instead.421    You may run "mix format --migrate" to change all single-quoted422    strings to use the ~c sigil and fix this warning.423    │424 55 │       'africa',425    │       ~426    │427    └─ lib/iana_data_dir.ex:55:7428429    warning: using single-quoted strings to represent charlists is deprecated.430    Use ~c"" if you indeed want a charlist or use "" instead.431    You may run "mix format --migrate" to change all single-quoted432    strings to use the ~c sigil and fix this warning.433    │434 56 │       'antarctica',435    │       ~436    │437    └─ lib/iana_data_dir.ex:56:7438439    warning: using single-quoted strings to represent charlists is deprecated.440    Use ~c"" if you indeed want a charlist or use "" instead.441    You may run "mix format --migrate" to change all single-quoted442    strings to use the ~c sigil and fix this warning.443    │444 57 │       'asia',445    │       ~446    │447    └─ lib/iana_data_dir.ex:57:7448449    warning: using single-quoted strings to represent charlists is deprecated.450    Use ~c"" if you indeed want a charlist or use "" instead.451    You may run "mix format --migrate" to change all single-quoted452    strings to use the ~c sigil and fix this warning.453    │454 58 │       'australasia',455    │       ~456    │457    └─ lib/iana_data_dir.ex:58:7458459    warning: using single-quoted strings to represent charlists is deprecated.460    Use ~c"" if you indeed want a charlist or use "" instead.461    You may run "mix format --migrate" to change all single-quoted462    strings to use the ~c sigil and fix this warning.463    │464 59 │       'backward',465    │       ~466    │467    └─ lib/iana_data_dir.ex:59:7468469    warning: using single-quoted strings to represent charlists is deprecated.470    Use ~c"" if you indeed want a charlist or use "" instead.471    You may run "mix format --migrate" to change all single-quoted472    strings to use the ~c sigil and fix this warning.473    │474 60 │       'etcetera',475    │       ~476    │477    └─ lib/iana_data_dir.ex:60:7478479    warning: using single-quoted strings to represent charlists is deprecated.480    Use ~c"" if you indeed want a charlist or use "" instead.481    You may run "mix format --migrate" to change all single-quoted482    strings to use the ~c sigil and fix this warning.483    │484 61 │       'europe',485    │       ~486    │487    └─ lib/iana_data_dir.ex:61:7488489    warning: using single-quoted strings to represent charlists is deprecated.490    Use ~c"" if you indeed want a charlist or use "" instead.491    You may run "mix format --migrate" to change all single-quoted492    strings to use the ~c sigil and fix this warning.493    │494 62 │       'northamerica',495    │       ~496    │497    └─ lib/iana_data_dir.ex:62:7498499    warning: using single-quoted strings to represent charlists is deprecated.500    Use ~c"" if you indeed want a charlist or use "" instead.501    You may run "mix format --migrate" to change all single-quoted502    strings to use the ~c sigil and fix this warning.503    │504 63 │       'southamerica',505    │       ~506    │507    └─ lib/iana_data_dir.ex:63:7508509    warning: using single-quoted strings to represent charlists is deprecated.510    Use ~c"" if you indeed want a charlist or use "" instead.511    You may run "mix format --migrate" to change all single-quoted512    strings to use the ~c sigil and fix this warning.513    │514 64 │       'iso3166.tab',515    │       ~516    │517    └─ lib/iana_data_dir.ex:64:7518519    warning: using single-quoted strings to represent charlists is deprecated.520    Use ~c"" if you indeed want a charlist or use "" instead.521    You may run "mix format --migrate" to change all single-quoted522    strings to use the ~c sigil and fix this warning.523    │524 65 │       'zone1970.tab'525    │       ~526    │527    └─ lib/iana_data_dir.ex:65:7528529    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead530    │531  3 │   @custom_data_dir Application.get_env(:tz, :data_dir)532    │                                ~533    │534    └─ lib/iana_data_dir.ex:3:32: Tz.IanaDataDir (module)535536    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead537    │538  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)539    │                                                                  ~540    │541    └─ lib/iana_file_parser.ex:5:66: Tz.IanaFileParser (module)542543    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead544    │545 11 │   @reject_periods_before_year Application.get_env(:tz, :reject_time_zone_periods_before_year)546    │                                           ~547    │548    └─ lib/compiler.ex:11:43: Tz.Compiler (module)549550    warning: unused require Tz.IanaFileParser551    │552  4 │   require Tz.IanaFileParser553    │   ~554    │555    └─ lib/compiler.ex:4:3556557    warning: unused require Tz.PeriodsBuilder558    │559  5 │   require Tz.PeriodsBuilder560    │   ~561    │562    └─ lib/compiler.ex:5:3563564    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead565    │566 15 │           Logger.warn("Tz found a more recent time zone database available for download at #{link}")567    │                  ~568    │569    └─ lib/watch_periodically.ex:15:18: Tz.WatchPeriodically.watch/0570571    warning: nil.request/2 is undefined (module nil is not available or is yet to be defined)572    │573 27 │     case HTTP.get_http_client!().request("data.iana.org", "/time-zones/tzdb/version") do574    │                                  ~575    │576    └─ lib/updater.ex:27:34: Tz.Updater.fetch_iana_tz_version/0577    └─ lib/updater.ex:75:34: Tz.Updater.download_tz_database/1578579    warning: this clause of defp reject_periods_before_year/2 is never used (or it will always fail/warn when invoked)580    │581 65 │   defp reject_periods_before_year(periods, reject_before_year) do582    │        ~583    │584    └─ lib/compiler.ex:65:8: Tz.Compiler.reject_periods_before_year/2585586     warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)587     │588 250 │   defp add_to_and_convert_date_tuple(:min, _, _, _), do: :min589     │        ~590     │591     └─ lib/periods_builder.ex:250:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4592593     warning: this clause of defp add_to_and_convert_date_tuple/4 is never used (or it will always fail/warn when invoked)594     │595 251 │   defp add_to_and_convert_date_tuple(:max, _, _, _), do: :max596     │        ~597     │598     └─ lib/periods_builder.ex:251:8: Tz.PeriodsBuilder.add_to_and_convert_date_tuple/4599600Generated tz app601==> tz_extra602Compiling 7 files (.ex)603    warning: unused require TzExtra.IanaFileParser604    │605  4 │   require TzExtra.IanaFileParser606    │   ~607    │608    └─ lib/compiler.ex:4:3609610    warning: unused require TzExtra.Compiler611    │612  3 │     require TzExtra.Compiler613    │     ~614    │615    └─ lib/changeset.ex:3:5616617Generated tz_extra app618==> ecto_sqlite3619Compiling 4 files (.ex)620     warning: using single-quoted strings to represent charlists is deprecated.621     Use ~c"" if you indeed want a charlist or use "" instead.622     You may run "mix format --migrate" to change all single-quoted623     strings to use the ~c sigil and fix this warning.624     │625 778 │         {['?'], counter + 1}626     │           ~627     │628     └─ lib/ecto/adapters/sqlite3/connection.ex:778:11629630      warning: using single-quoted strings to represent charlists is deprecated.631      Use ~c"" if you indeed want a charlist or use "" instead.632      You may run "mix format --migrate" to change all single-quoted633      strings to use the ~c sigil and fix this warning.634      │635 1177 │     '?'636      │     ~637      │638      └─ lib/ecto/adapters/sqlite3/connection.ex:1177:5639640    warning: function dump_cmd/3 required by behaviour Ecto.Adapter.Structure is not implemented (in module Ecto.Adapters.SQLite3)641    │642  1 │ defmodule Ecto.Adapters.SQLite3 do643    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~644    │645    └─ lib/ecto/adapters/sqlite3.ex:1: Ecto.Adapters.SQLite3 (module)646647    warning: function query_many/4 required by behaviour Ecto.Adapters.SQL.Connection is not implemented (in module Ecto.Adapters.SQLite3.Connection)648    │649  1 │ defmodule Ecto.Adapters.SQLite3.Connection do650    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~651    │652    └─ lib/ecto/adapters/sqlite3/connection.ex:1: Ecto.Adapters.SQLite3.Connection (module)653654     warning: the following clause is redundant:655656         def execute_ddl({:create, %Ecto.Migration.Index{} = index})657658     it has type:659660         dynamic({:create, %Ecto.Migration.Index{}})661662     previous clauses have already matched on the following types:663664         {:create, %Ecto.Migration.Table{}, term()}665         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}666         {:drop, %Ecto.Migration.Table{}}667         {:drop, %Ecto.Migration.Table{}, term()}668         {:drop_if_exists, %Ecto.Migration.Table{}}669         {:drop_if_exists, %Ecto.Migration.Table{}, term()}670         {:alter, %Ecto.Migration.Table{}, term()}671         {:create, %Ecto.Migration.Index{}}672         {:create_if_not_exists, %Ecto.Migration.Index{}}673         {:drop, %Ecto.Migration.Index{}}674         {:drop, %Ecto.Migration.Index{}, term()}675         {:drop_if_exists, %Ecto.Migration.Index{}}676         {:drop_if_exists, %Ecto.Migration.Index{}, term()}677         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}678         {:rename, %Ecto.Migration.Table{}, term(), term()}679680     │681 560 │   def execute_ddl({:create, %Index{} = index}) do682     │       ~683     │684     └─ lib/ecto/adapters/sqlite3/connection.ex:560:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1685686     warning: the following clause is redundant:687688         def execute_ddl({:create_if_not_exists, %Ecto.Migration.Index{} = index})689690     it has type:691692         dynamic({:create_if_not_exists, %Ecto.Migration.Index{}})693694     previous clauses have already matched on the following types:695696         {:create, %Ecto.Migration.Table{}, term()}697         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}698         {:drop, %Ecto.Migration.Table{}}699         {:drop, %Ecto.Migration.Table{}, term()}700         {:drop_if_exists, %Ecto.Migration.Table{}}701         {:drop_if_exists, %Ecto.Migration.Table{}, term()}702         {:alter, %Ecto.Migration.Table{}, term()}703         {:create, %Ecto.Migration.Index{}}704         {:create_if_not_exists, %Ecto.Migration.Index{}}705         {:drop, %Ecto.Migration.Index{}}706         {:drop, %Ecto.Migration.Index{}, term()}707         {:drop_if_exists, %Ecto.Migration.Index{}}708         {:drop_if_exists, %Ecto.Migration.Index{}, term()}709         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}710         {:rename, %Ecto.Migration.Table{}, term(), term()}711712     │713 582 │   def execute_ddl({:create_if_not_exists, %Index{} = index}) do714     │       ~715     │716     └─ lib/ecto/adapters/sqlite3/connection.ex:582:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1717718     warning: the following clause is redundant:719720         def execute_ddl({:drop, %Ecto.Migration.Index{} = index})721722     it has type:723724         dynamic({:drop, %Ecto.Migration.Index{}})725726     previous clauses have already matched on the following types:727728         {:create, %Ecto.Migration.Table{}, term()}729         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}730         {:drop, %Ecto.Migration.Table{}}731         {:drop, %Ecto.Migration.Table{}, term()}732         {:drop_if_exists, %Ecto.Migration.Table{}}733         {:drop_if_exists, %Ecto.Migration.Table{}, term()}734         {:alter, %Ecto.Migration.Table{}, term()}735         {:create, %Ecto.Migration.Index{}}736         {:create_if_not_exists, %Ecto.Migration.Index{}}737         {:drop, %Ecto.Migration.Index{}}738         {:drop, %Ecto.Migration.Index{}, term()}739         {:drop_if_exists, %Ecto.Migration.Index{}}740         {:drop_if_exists, %Ecto.Migration.Index{}, term()}741         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}742         {:rename, %Ecto.Migration.Table{}, term(), term()}743         {:create, %Ecto.Migration.Constraint{}}744745     │746 609 │   def execute_ddl({:drop, %Index{} = index}) do747     │       ~748     │749     └─ lib/ecto/adapters/sqlite3/connection.ex:609:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1750751     warning: the following clause is redundant:752753         def execute_ddl({:drop, %Ecto.Migration.Index{} = index, _mode})754755     it has type:756757         dynamic({:drop, %Ecto.Migration.Index{}, term()})758759     previous clauses have already matched on the following types:760761         {:create, %Ecto.Migration.Table{}, term()}762         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}763         {:drop, %Ecto.Migration.Table{}}764         {:drop, %Ecto.Migration.Table{}, term()}765         {:drop_if_exists, %Ecto.Migration.Table{}}766         {:drop_if_exists, %Ecto.Migration.Table{}, term()}767         {:alter, %Ecto.Migration.Table{}, term()}768         {:create, %Ecto.Migration.Index{}}769         {:create_if_not_exists, %Ecto.Migration.Index{}}770         {:drop, %Ecto.Migration.Index{}}771         {:drop, %Ecto.Migration.Index{}, term()}772         {:drop_if_exists, %Ecto.Migration.Index{}}773         {:drop_if_exists, %Ecto.Migration.Index{}, term()}774         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}775         {:rename, %Ecto.Migration.Table{}, term(), term()}776         {:create, %Ecto.Migration.Constraint{}}777778     │779 619 │   def execute_ddl({:drop, %Index{} = index, _mode}) do780     │       ~781     │782     └─ lib/ecto/adapters/sqlite3/connection.ex:619:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1783784     warning: the following clause is redundant:785786         def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index})787788     it has type:789790         dynamic({:drop_if_exists, %Ecto.Migration.Index{}})791792     previous clauses have already matched on the following types:793794         {:create, %Ecto.Migration.Table{}, term()}795         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}796         {:drop, %Ecto.Migration.Table{}}797         {:drop, %Ecto.Migration.Table{}, term()}798         {:drop_if_exists, %Ecto.Migration.Table{}}799         {:drop_if_exists, %Ecto.Migration.Table{}, term()}800         {:alter, %Ecto.Migration.Table{}, term()}801         {:create, %Ecto.Migration.Index{}}802         {:create_if_not_exists, %Ecto.Migration.Index{}}803         {:drop, %Ecto.Migration.Index{}}804         {:drop, %Ecto.Migration.Index{}, term()}805         {:drop_if_exists, %Ecto.Migration.Index{}}806         {:drop_if_exists, %Ecto.Migration.Index{}, term()}807         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}808         {:rename, %Ecto.Migration.Table{}, term(), term()}809         {:create, %Ecto.Migration.Constraint{}}810811     │812 624 │   def execute_ddl({:drop_if_exists, %Index{} = index}) do813     │       ~814     │815     └─ lib/ecto/adapters/sqlite3/connection.ex:624:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1816817     warning: the following clause is redundant:818819         def execute_ddl({:drop_if_exists, %Ecto.Migration.Index{} = index, _mode})820821     it has type:822823         dynamic({:drop_if_exists, %Ecto.Migration.Index{}, term()})824825     previous clauses have already matched on the following types:826827         {:create, %Ecto.Migration.Table{}, term()}828         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}829         {:drop, %Ecto.Migration.Table{}}830         {:drop, %Ecto.Migration.Table{}, term()}831         {:drop_if_exists, %Ecto.Migration.Table{}}832         {:drop_if_exists, %Ecto.Migration.Table{}, term()}833         {:alter, %Ecto.Migration.Table{}, term()}834         {:create, %Ecto.Migration.Index{}}835         {:create_if_not_exists, %Ecto.Migration.Index{}}836         {:drop, %Ecto.Migration.Index{}}837         {:drop, %Ecto.Migration.Index{}, term()}838         {:drop_if_exists, %Ecto.Migration.Index{}}839         {:drop_if_exists, %Ecto.Migration.Index{}, term()}840         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}841         {:rename, %Ecto.Migration.Table{}, term(), term()}842         {:create, %Ecto.Migration.Constraint{}}843844     │845 634 │   def execute_ddl({:drop_if_exists, %Index{} = index, _mode}) do846     │       ~847     │848     └─ lib/ecto/adapters/sqlite3/connection.ex:634:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1849850     warning: the following clause is redundant:851852         def execute_ddl(853               {:rename, %Ecto.Migration.Table{} = current_table, %Ecto.Migration.Table{} = new_table}854             )855856     it has type:857858         dynamic({:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}})859860     previous clauses have already matched on the following types:861862         {:create, %Ecto.Migration.Table{}, term()}863         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}864         {:drop, %Ecto.Migration.Table{}}865         {:drop, %Ecto.Migration.Table{}, term()}866         {:drop_if_exists, %Ecto.Migration.Table{}}867         {:drop_if_exists, %Ecto.Migration.Table{}, term()}868         {:alter, %Ecto.Migration.Table{}, term()}869         {:create, %Ecto.Migration.Index{}}870         {:create_if_not_exists, %Ecto.Migration.Index{}}871         {:drop, %Ecto.Migration.Index{}}872         {:drop, %Ecto.Migration.Index{}, term()}873         {:drop_if_exists, %Ecto.Migration.Index{}}874         {:drop_if_exists, %Ecto.Migration.Index{}, term()}875         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}876         {:rename, %Ecto.Migration.Table{}, term(), term()}877         {:create, %Ecto.Migration.Constraint{}}878         {:drop, %Ecto.Migration.Constraint{}, term()}879         {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}880881     │882 649 │   def execute_ddl({:rename, %Table{} = current_table, %Table{} = new_table}) do883     │       ~884     │885     └─ lib/ecto/adapters/sqlite3/connection.ex:649:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1886887     warning: the following clause is redundant:888889         def execute_ddl({:rename, %Ecto.Migration.Table{} = table, current_column, new_column})890891     it has type:892893         dynamic({:rename, %Ecto.Migration.Table{}, term(), term()})894895     previous clauses have already matched on the following types:896897         {:create, %Ecto.Migration.Table{}, term()}898         {:create_if_not_exists, %Ecto.Migration.Table{}, term()}899         {:drop, %Ecto.Migration.Table{}}900         {:drop, %Ecto.Migration.Table{}, term()}901         {:drop_if_exists, %Ecto.Migration.Table{}}902         {:drop_if_exists, %Ecto.Migration.Table{}, term()}903         {:alter, %Ecto.Migration.Table{}, term()}904         {:create, %Ecto.Migration.Index{}}905         {:create_if_not_exists, %Ecto.Migration.Index{}}906         {:drop, %Ecto.Migration.Index{}}907         {:drop, %Ecto.Migration.Index{}, term()}908         {:drop_if_exists, %Ecto.Migration.Index{}}909         {:drop_if_exists, %Ecto.Migration.Index{}, term()}910         {:rename, %Ecto.Migration.Table{}, %Ecto.Migration.Table{}}911         {:rename, %Ecto.Migration.Table{}, term(), term()}912         {:create, %Ecto.Migration.Constraint{}}913         {:drop, %Ecto.Migration.Constraint{}, term()}914         {:drop_if_exists, %Ecto.Migration.Constraint{}, term()}915916     │917 661 │   def execute_ddl({:rename, %Table{} = table, current_column, new_column}) do918     │       ~919     │920     └─ lib/ecto/adapters/sqlite3/connection.ex:661:7: Ecto.Adapters.SQLite3.Connection.execute_ddl/1921922Generated ecto_sqlite3 app923warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"924  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2925  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1926  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5927  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2928  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4929  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2930931==> phoenix932Compiling 69 files (.ex)933     warning: using single-quoted strings to represent charlists is deprecated.934     Use ~c"" if you indeed want a charlist or use "" instead.935     You may run "mix format --migrate" to change all single-quoted936     strings to use the ~c sigil and fix this warning.937     │938 258 │           notBefore: {:utcTime, '#{not_before}000000Z'},939     │                                 ~940     │941     └─ lib/mix/tasks/phx.gen.cert.ex:258:33942943     warning: using single-quoted strings to represent charlists is deprecated.944     Use ~c"" if you indeed want a charlist or use "" instead.945     You may run "mix format --migrate" to change all single-quoted946     strings to use the ~c sigil and fix this warning.947     │948 259 │           notAfter: {:utcTime, '#{not_after}000000Z'}949     │                                ~950     │951     └─ lib/mix/tasks/phx.gen.cert.ex:259:32952953    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead954    │955 50 │             Logger.warn(956    │                    ~957    │958    └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/3959960    warning: unused require Logger961    │962  9 │   require Logger963    │   ~964    │965    └─ lib/phoenix/config.ex:9:3966967     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.968969     This error happens when you have function calls without parentheses inside keywords. For example:970971         function(arg, one: nested_call a, b, c)972         function(arg, one: if expr, do: :this, else: :that)973974     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:975976         function(arg, one: if(expr, do: :this, else: :that))977         function(arg, one: nested_call(a, b, c))978979     Ambiguity found at:980     │981 998 │   defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"982     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~983     │984     └─ lib/phoenix/controller.ex:998985986     warning: unused require Logger987     │988 259 │   require Logger989     │   ~990     │991     └─ lib/phoenix/endpoint.ex:259:3992993      warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead994      │995 1009 │       Logger.warn "send_download/3 has been invoked during an AJAX request. " <>996      │              ~997      │998      └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/19991000    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1001    │1002 34 │             Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")1003    │                    ~1004    │1005    └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/110061007    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1008    │1009 57 │       Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")1010    │              ~1011    │1012    └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/110131014    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1015    │1016 78 │       Logger.warn """1017    │              ~1018    │1019    └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/210201021     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1022     │1023 264 │       Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")1024     │              ~1025     │1026     └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/210271028    warning: unused require Phoenix.Endpoint1029    │1030  6 │   require Phoenix.Endpoint1031    │   ~1032    │1033    └─ lib/phoenix/controller.ex:6:310341035    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 operator1036    │1037 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1038    │                             ~1039    │1040    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/210411042    warning: unused require Phoenix.Endpoint1043    │1044 19 │   require Phoenix.Endpoint1045    │   ~1046    │1047    └─ lib/phoenix/endpoint/render_errors.ex:19:310481049    warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10501051    This error happens when you have function calls without parentheses inside keywords. For example:10521053        function(arg, one: nested_call a, b, c)1054        function(arg, one: if expr, do: :this, else: :that)10551056    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:10571058        function(arg, one: if(expr, do: :this, else: :that))1059        function(arg, one: nested_call(a, b, c))10601061    Ambiguity found at:1062    │1063 71 │     unless actions -- supported_actions == [], do: raise ArgumentError, """1064    │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1065    │1066    └─ lib/phoenix/router/resource.ex:7110671068     warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1069     │1070 653 │         Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end1071     │                ~1072     │1073     └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/410741075    warning: unused require Phoenix.Endpoint1076    │1077  6 │   require Phoenix.Endpoint1078    │   ~1079    │1080    └─ lib/phoenix/channel/server.ex:6:310811082     warning: unused require Phoenix.Endpoint1083     │1084 192 │   require Phoenix.Endpoint1085     │   ~1086     │1087     └─ lib/phoenix/socket.ex:192:310881089    warning: unused require Logger1090    │1091 93 │   require Logger1092    │   ~1093    │1094    └─ lib/phoenix/token.ex:93:310951096     warning: comparison between distinct types found:10971098         merge_all != []10991100     given types:11011102         dynamic(non_empty_list({atom(), term()})) != empty_list()11031104     where "merge_all" was given the type:11051106         # type: dynamic(non_empty_list({atom(), term()}))1107         # from: lib/phoenix/router/route.ex:111:151108         merge_all = merge_params ++ merge_private ++ merge_assigns11091110     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 false11111112     type warning found at:1113     │1114 113 │     if merge_all != [] do1115     │                  ~1116     │1117     └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/111181119    warning: a struct for Plug.Conn is expected on struct update:11201121        %Plug.Conn{conn | state: :sent}11221123    but got type:11241125        dynamic()11261127    where "conn" was given the type:11281129        # type: dynamic()1130        # from: lib/phoenix/endpoint/render_errors.ex:57:171131        conn11321133    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11341135    type warning found at:1136    │1137 61 │         %Plug.Conn{conn | state: :sent}1138    │         ~1139    │1140    └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/511411142     warning: a struct for Plug.Conn is expected on struct update:11431144         %Plug.Conn{conn | query_params: %{}, params: %{}}11451146     but got type:11471148         dynamic(%{..., params: %Plug.Conn.Unfetched{}})11491150     where "conn" was given the types:11511152         # type: dynamic(%{..., params: term()})1153         # from: lib/phoenix/endpoint/render_errors.ex:124:171154         conn.params11551156         # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1157         # from: lib/phoenix/endpoint/render_errors.ex:124:171158         conn.params11591160     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11611162     type warning found at:1163     │1164 125 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1165     │                                   ~1166     │1167     └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/111681169     warning: a struct for Plug.Conn is expected on struct update:11701171         %Plug.Conn{conn | query_params: %{}, params: params}11721173     but got type:11741175         dynamic(%{..., params: not %Plug.Conn.Unfetched{}})11761177     where "conn" was given the types:11781179         # type: dynamic(%{..., params: term()})1180         # from: lib/phoenix/endpoint/render_errors.ex:124:171181         conn.params11821183         # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1184         # from: lib/phoenix/endpoint/render_errors.ex:124:171185         conn.params11861187     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11881189     type warning found at:1190     │1191 126 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}1192     │                   ~1193     │1194     └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/111951196      warning: a struct for Plug.Conn is expected on struct update:11971198          %Plug.Conn{conn | params: params}11991200      but got type:12011202          dynamic(%{..., params: map()})12031204      where "conn" was given the type:12051206          # type: dynamic(%{..., params: map()})1207          # from: lib/phoenix/controller.ex:1036:171208          Map.get(conn.params, required_key)12091210      when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"12111212      type warning found at:1213      │1214 1043 │     %Plug.Conn{conn | params: params}1215      │     ~1216      │1217      └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/212181219    warning: incompatible types given to socket_children/1:12201221        socket_children(mod)12221223    given types:12241225        -dynamic(atom())-12261227    but expected one of:12281229        %{..., __sockets__: term()}12301231    where "mod" was given the types:12321233        # type: dynamic(atom() or binary())1234        # from: lib/phoenix/endpoint/supervisor.ex:27:411235        defaults(otp_app, mod)12361237        # type: dynamic(atom())1238        # from: lib/phoenix/endpoint/supervisor.ex:31:161239        mod.init(:supervisor, env_conf)12401241    type warning found at:1242    │1243 67 │       socket_children(mod) ++1244    │       ~1245    │1246    └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/112471248     warning: expected a module (an atom) when invoking compress_file/2 in expression:12491250         compressor.compress_file(file.digested_filename, file.digested_content)12511252     where "compressor" was given the type:12531254         # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1255         # from: lib/phoenix/digester.ex:167:281256         [file_extension | _] = compressor.file_extensions12571258     where "file" was given the type:12591260         # type: dynamic(%{..., relative_path: term()})1261         # from: lib/phoenix/digester.ex:161:171262         Path.join(output_path, file.relative_path)12631264     type warning found at:1265     │1266 170 │              compressor.compress_file(file.digested_filename, file.digested_content) do1267     │                         ~1268     │1269     └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/212701271Generated phoenix app1272warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1273  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21274  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11275  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51276  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21277  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41278  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/212791280==> phoenix_live_view1281Compiling 31 files (.ex)1282     warning: using single-quoted strings to represent charlists is deprecated.1283     Use ~c"" if you indeed want a charlist or use "" instead.1284     You may run "mix format --migrate" to change all single-quoted1285     strings to use the ~c sigil and fix this warning.1286     │1287 319 │         {'LiveView', view},1288     │          ~1289     │1290     └─ lib/phoenix_live_view/channel.ex:319:1012911292     warning: using single-quoted strings to represent charlists is deprecated.1293     Use ~c"" if you indeed want a charlist or use "" instead.1294     You may run "mix format --migrate" to change all single-quoted1295     strings to use the ~c sigil and fix this warning.1296     │1297 320 │         {'Parent pid', parent_pid},1298     │          ~1299     │1300     └─ lib/phoenix_live_view/channel.ex:320:1013011302     warning: using single-quoted strings to represent charlists is deprecated.1303     Use ~c"" if you indeed want a charlist or use "" instead.1304     You may run "mix format --migrate" to change all single-quoted1305     strings to use the ~c sigil and fix this warning.1306     │1307 321 │         {'Transport pid', transport_pid},1308     │          ~1309     │1310     └─ lib/phoenix_live_view/channel.ex:321:1013111312     warning: using single-quoted strings to represent charlists is deprecated.1313     Use ~c"" if you indeed want a charlist or use "" instead.1314     You may run "mix format --migrate" to change all single-quoted1315     strings to use the ~c sigil and fix this warning.1316     │1317 322 │         {'Topic', topic},1318     │          ~1319     │1320     └─ lib/phoenix_live_view/channel.ex:322:1013211322     warning: using single-quoted strings to represent charlists is deprecated.1323     Use ~c"" if you indeed want a charlist or use "" instead.1324     You may run "mix format --migrate" to change all single-quoted1325     strings to use the ~c sigil and fix this warning.1326     │1327 323 │         {'Components count', map_size(cid_to_component)}1328     │          ~1329     │1330     └─ lib/phoenix_live_view/channel.ex:323:1013311332     warning: using single-quoted strings to represent charlists is deprecated.1333     Use ~c"" if you indeed want a charlist or use "" instead.1334     You may run "mix format --migrate" to change all single-quoted1335     strings to use the ~c sigil and fix this warning.1336     │1337 329 │     [data: [{'State', state}]]1338     │              ~1339     │1340     └─ lib/phoenix_live_view/channel.ex:329:1413411342     warning: using single-quoted strings to represent charlists is deprecated.1343     Use ~c"" if you indeed want a charlist or use "" instead.1344     You may run "mix format --migrate" to change all single-quoted1345     strings to use the ~c sigil and fix this warning.1346     │1347 112 │   @codepoints '\s\n\r\t'1348     │               ~1349     │1350     └─ lib/phoenix_live_view/html_algebra.ex:112:1513511352     warning: using single-quoted strings to represent charlists is deprecated.1353     Use ~c"" if you indeed want a charlist or use "" instead.1354     You may run "mix format --migrate" to change all single-quoted1355     strings to use the ~c sigil and fix this warning.1356     │1357 125 │     do: :binary.first(text) in '\n\r'1358     │                                ~1359     │1360     └─ lib/phoenix_live_view/html_algebra.ex:125:3213611362     warning: using single-quoted strings to represent charlists is deprecated.1363     Use ~c"" if you indeed want a charlist or use "" instead.1364     You may run "mix format --migrate" to change all single-quoted1365     strings to use the ~c sigil and fix this warning.1366     │1367 130 │     do: :binary.last(text) in '\n\r'1368     │                               ~1369     │1370     └─ lib/phoenix_live_view/html_algebra.ex:130:3113711372     warning: using single-quoted strings to represent charlists is deprecated.1373     Use ~c"" if you indeed want a charlist or use "" instead.1374     You may run "mix format --migrate" to change all single-quoted1375     strings to use the ~c sigil and fix this warning.1376     │1377 503 │   defp count_newlines_until_text(<<char, rest::binary>>, counter) when char in '\s\t\r',1378     │                                                                                ~1379     │1380     └─ lib/phoenix_live_view/html_formatter.ex:503:8013811382     warning: using single-quoted strings to represent charlists is deprecated.1383     Use ~c"" if you indeed want a charlist or use "" instead.1384     You may run "mix format --migrate" to change all single-quoted1385     strings to use the ~c sigil and fix this warning.1386     │1387 536 │     do: if(String.trim_leading(text) == "", do: false, else: !(:binary.last(text) in '\s\t'))1388     │                                                                                      ~1389     │1390     └─ lib/phoenix_live_view/html_formatter.ex:536:8613911392     warning: using single-quoted strings to represent charlists is deprecated.1393     Use ~c"" if you indeed want a charlist or use "" instead.1394     You may run "mix format --migrate" to change all single-quoted1395     strings to use the ~c sigil and fix this warning.1396     │1397 546 │       if String.trim_leading(text) != "" and :binary.first(text) not in '\s\t\n\r' do1398     │                                                                         ~1399     │1400     └─ lib/phoenix_live_view/html_formatter.ex:546:7314011402    warning: using single-quoted strings to represent charlists is deprecated.1403    Use ~c"" if you indeed want a charlist or use "" instead.1404    You may run "mix format --migrate" to change all single-quoted1405    strings to use the ~c sigil and fix this warning.1406    │1407  3 │   @space_chars '\s\t\f'1408    │                ~1409    │1410    └─ lib/phoenix_live_view/html_tokenizer.ex:3:1614111412    warning: using single-quoted strings to represent charlists is deprecated.1413    Use ~c"" if you indeed want a charlist or use "" instead.1414    You may run "mix format --migrate" to change all single-quoted1415    strings to use the ~c sigil and fix this warning.1416    │1417  4 │   @quote_chars '"\''1418    │                ~1419    │1420    └─ lib/phoenix_live_view/html_tokenizer.ex:4:1614211422    warning: using single-quoted strings to represent charlists is deprecated.1423    Use ~c"" if you indeed want a charlist or use "" instead.1424    You may run "mix format --migrate" to change all single-quoted1425    strings to use the ~c sigil and fix this warning.1426    │1427  5 │   @stop_chars '>/=\r\n' ++ @quote_chars ++ @space_chars1428    │               ~1429    │1430    └─ lib/phoenix_live_view/html_tokenizer.ex:5:1514311432    warning: unused require Logger1433    │1434 25 │   require Logger1435    │   ~1436    │1437    └─ lib/phoenix_live_view/socket.ex:25:314381439     warning: unused require Phoenix.ChannelTest1440     │1441 179 │   require Phoenix.ChannelTest1442     │   ~1443     │1444     └─ lib/phoenix_live_view/test/live_view_test.ex:179:314451446     warning: unused require Phoenix.ConnTest1447     │1448 178 │   require Phoenix.ConnTest1449     │   ~1450     │1451     └─ lib/phoenix_live_view/test/live_view_test.ex:178:314521453    warning: unused require Phoenix.ChannelTest1454    │1455  4 │   require Phoenix.ChannelTest1456    │   ~1457    │1458    └─ lib/phoenix_live_view/test/upload_client.ex:4:314591460    warning: unused require Logger1461    │1462  6 │   require Logger1463    │   ~1464    │1465    └─ lib/phoenix_live_view/upload_channel.ex:6:314661467     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:14681469         %Phoenix.LiveView.Socket{1470           socket1471           | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1472         }14731474     but got type:14751476         dynamic()14771478     where "socket" was given the type:14791480         # type: dynamic()1481         # from: lib/phoenix_live_view/utils.ex:459:211482         socket14831484     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"14851486     type warning found at:1487     │1488 460 │     %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1489     │     ~1490     │1491     └─ lib/phoenix_live_view/utils.ex:460:5: Phoenix.LiveView.Utils.do_mount_opt/314921493     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:14941495         %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}14961497     but got type:14981499         dynamic()15001501     where "socket" was given the type:15021503         # type: dynamic()1504         # from: lib/phoenix_live_view/utils.ex:463:211505         socket15061507     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15081509     type warning found at:1510     │1511 464 │     %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1512     │     ~1513     │1514     └─ lib/phoenix_live_view/utils.ex:464:5: Phoenix.LiveView.Utils.do_mount_opt/315151516     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15171518         %Phoenix.LiveView.Socket{1519           socket1520           | assigns: Map.merge(temp_assigns, socket.assigns),1521             private: Map.put(socket.private, :temporary_assigns, temp_assigns)1522         }15231524     but got type:15251526         dynamic()15271528     where "socket" was given the type:15291530         # type: dynamic()1531         # from: lib/phoenix_live_view/utils.ex:473:211532         socket15331534     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15351536     type warning found at:1537     │1538 480 │     %Socket{1539     │     ~1540     │1541     └─ lib/phoenix_live_view/utils.ex:480:5: Phoenix.LiveView.Utils.do_mount_opt/315421543     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15441545         %Phoenix.LiveView.Socket{1546           socket1547           | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1548         }15491550     but got type:15511552         dynamic(%{..., assigns: term()})15531554     where "socket" was given the type:15551556         # type: dynamic(%{..., assigns: term()})1557         # from: lib/phoenix_live_view/utils.ex:491:431558         %{assigns: assigns} = socket15591560     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15611562     type warning found at:1563     │1564 492 │     socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1565     │              ~1566     │1567     └─ lib/phoenix_live_view/utils.ex:492:14: Phoenix.LiveView.Utils.render_assigns/115681569      warning: a struct for Phoenix.HTML.Form is expected on struct update:15701571          %Phoenix.HTML.Form{Phoenix.HTML.FormData.to_form(form_for, form_options) | action: action || "#"}15721573      but got type:15741575          dynamic()15761577      where "form_for" was given the type:15781579          # type: dynamic(not false and not nil)1580          # from: lib/phoenix_live_view/helpers.ex:1101:141581          form_for = assigns[:for] || :erlang.error(ArgumentError.exception("missing :for assign to form"))15821583      where "form_options" was given the type:15841585          # type: dynamic(list({term(), term()}))1586          # from: lib/phoenix_live_view/helpers.ex:1102:181587          form_options = assigns_to_attributes(assigns, [:action, :for])15881589      you must assign "Phoenix.HTML.FormData.to_form(form_for, form_options)" to variable and pattern match on "%Phoenix.HTML.Form{}"15901591      type warning found at:1592      │1593 1106 │       form = %Phoenix.HTML.Form{1594      │              ~1595      │1596      └─ lib/phoenix_live_view/helpers.ex:1106:14: Phoenix.LiveView.Helpers.form/115971598     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:15991600         %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}16011602     but got type:16031604         dynamic()16051606     where "entry" was given the type:16071608         # type: dynamic()1609         # from: lib/phoenix_live_view/upload_config.ex:339:281610         entry <- conf.entries16111612     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16131614     type warning found at:1615     │1616 339 │       | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1617     │                                                 ~1618     │1619     └─ lib/phoenix_live_view/upload_config.ex:339:49: Phoenix.LiveView.UploadConfig.mark_preflighted/116201621     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16221623         %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}16241625     but got type:16261627         dynamic()16281629     where "entry" was given the type:16301631         # type: dynamic()1632         # from: lib/phoenix_live_view/upload_config.ex:539:301633         entry16341635     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16361637     type warning found at:1638     │1639 540 │     entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1640     │             ~1641     │1642     └─ lib/phoenix_live_view/upload_config.ex:540:13: Phoenix.LiveView.UploadConfig.put_valid_entry/216431644    warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1645    │1646 72 │     Logger.disable(self())1647    │            ~1648    │1649    └─ lib/phoenix_live_view/test/client_proxy.ex:72:12: Phoenix.LiveViewTest.ClientProxy.init/116501651     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16521653         %Phoenix.LiveView.UploadEntry{entry | valid?: false}16541655     but got type:16561657         dynamic()16581659     where "entry" was given the type:16601661         # type: dynamic()1662         # from: lib/phoenix_live_view/upload_config.ex:552:321663         entry16641665     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16661667     type warning found at:1668     │1669 553 │     entry = %UploadEntry{entry | valid?: false}1670     │             ~1671     │1672     └─ lib/phoenix_live_view/upload_config.ex:553:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/316731674     warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:16751676         %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}16771678     but got type:16791680         dynamic(%{..., rendered: map()})16811682     where "view" was given the type:16831684         # type: dynamic(%{..., rendered: map()})1685         # from: lib/phoenix_live_view/test/client_proxy.ex:701:241686         Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)16871688     when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"16891690     type warning found at:1691     │1692 702 │         new_view = %ClientProxy{view | rendered: rendered}1693     │                    ~1694     │1695     └─ lib/phoenix_live_view/test/client_proxy.ex:702:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/316961697     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16981699         %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}17001701     but got type:17021703         dynamic()17041705     where "entry" was given the type:17061707         # type: dynamic()1708         # from: lib/phoenix_live_view/upload_config.ex:635:421709         entry17101711     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"17121713     type warning found at:1714     │1715 635 │         update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1716     │                                                   ~1717     │1718     └─ lib/phoenix_live_view/upload_config.ex:635:51: Phoenix.LiveView.UploadConfig.cancel_entry/217191720      warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead1721      │1722 1095 │       Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)1723      │                       ~1724      │1725      └─ lib/phoenix_live_view/test/client_proxy.ex:1095:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/31726      └─ lib/phoenix_live_view/test/client_proxy.ex:1100:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/31727      └─ lib/phoenix_live_view/test/client_proxy.ex:1110:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/31728      └─ lib/phoenix_live_view/test/client_proxy.ex:1119:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/317291730     warning: the right-hand side of || (shown as ... below) will never be executed:17311732         conn.private[:live_view_connect_info] || prune_conn(conn) || ...17331734     because the left-hand side always evaluates to:17351736         dynamic(not false and not nil)17371738     where "conn" was given the types:17391740         # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1741         # from: lib/phoenix_live_view/test/live_view_test.ex:320:721742         %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn17431744         # type: dynamic(%Plug.Conn{1745           assigns: %{..., live_module: term()},1746           private:1747             %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1748               non_struct_map(),1749           status: integer()1750         })1751         # from: lib/phoenix_live_view/test/live_view_test.ex:334:351752         conn.private[:live_view_connect_params]17531754     type warning found at:1755     │1756 335 │       connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1757     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1758     │1759     └─ lib/phoenix_live_view/test/live_view_test.ex:335: Phoenix.LiveViewTest.connect_from_static_token/217601761     warning: the following clause is redundant:17621763         def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)17641765     it has type:17661767         dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))17681769     previous clauses have already matched on the following types:17701771         %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1772         %Phoenix.LiveView.Socket{}, term(), (none() -> term())1773         term(), term(), (none(), none() -> term())1774         term(), term(), (none() -> term())17751776     │1777 952 │   def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1778     │       ~1779     │1780     └─ lib/phoenix_live_view.ex:952:7: Phoenix.LiveView.update/317811782     warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1783     │1784 603 │   defp class_names(nil), do: []1785     │        ~1786     │1787     └─ lib/phoenix_live_view/js.ex:603:8: Phoenix.LiveView.JS.class_names/117881789     warning: the following clause is redundant:17901791         def to_iodata(%_{} = struct)17921793     it has type:17941795         dynamic(%Phoenix.LiveView.Rendered{})17961797     previous clauses have already matched on the following types:17981799         %Phoenix.LiveView.Rendered{}18001801     │1802 127 │     def to_iodata(%_{} = struct) do1803     │         ~1804     │1805     └─ lib/phoenix_live_view/engine.ex:127:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118061807     warning: the 1st pattern in clause will never match:18081809         nil18101811     because it is expected to receive type:18121813         dynamic(%Phoenix.LiveView.Rendered{})18141815     hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}18161817     type warning found at:1818     │1819 131 │     def to_iodata(nil) do1820     │     ~~~~~~~~~~~~~~~~~~~~~1821     │1822     └─ lib/phoenix_live_view/engine.ex:131: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118231824     warning: the following clause is redundant:18251826         def to_iodata(other)18271828     it has type:18291830         dynamic(%Phoenix.LiveView.Rendered{})18311832     previous clauses have already matched on the following types:18331834         %Phoenix.LiveView.Rendered{}18351836     │1837 135 │     def to_iodata(other) do1838     │         ~1839     │1840     └─ lib/phoenix_live_view/engine.ex:135:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/118411842Generated phoenix_live_view app1843warning: Phoenix now requires you to explicitly list which engine to use1844for Phoenix JSON encoding. We recommend everyone to upgrade to1845Jason by setting in your config/config.exs:18461847    config :phoenix, :json_library, Jason18481849And then adding {:jason, "~> 1.0"} as a dependency.18501851If instead you would rather continue using Poison, then add to1852your config/config.exs:18531854    config :phoenix, :json_library, Poison18551856  (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/21857  (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/418581859warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1860  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21861  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11862  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51863  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21864  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41865  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/218661867==> phoenix_live_dashboard1868Compiling 40 files (.ex)1869     warning: using single-quoted strings to represent charlists is deprecated.1870     Use ~c"" if you indeed want a charlist or use "" instead.1871     You may run "mix format --migrate" to change all single-quoted1872     strings to use the ~c sigil and fix this warning.1873     │1874 709 │     '#Port' ++ rest = :erlang.port_to_list(ref)1875     │     ~1876     │1877     └─ lib/phoenix/live_dashboard/page_builder.ex:709:518781879     warning: using single-quoted strings to represent charlists is deprecated.1880     Use ~c"" if you indeed want a charlist or use "" instead.1881     You may run "mix format --migrate" to change all single-quoted1882     strings to use the ~c sigil and fix this warning.1883     │1884 728 │     '#Ref' ++ rest = :erlang.ref_to_list(ref)1885     │     ~1886     │1887     └─ lib/phoenix/live_dashboard/page_builder.ex:728:518881889     warning: using single-quoted strings to represent charlists is deprecated.1890     Use ~c"" if you indeed want a charlist or use "" instead.1891     You may run "mix format --migrate" to change all single-quoted1892     strings to use the ~c sigil and fix this warning.1893     │1894 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1895     │                ~1896     │1897     └─ lib/phoenix/live_dashboard/system_info.ex:446:1618981899     warning: using single-quoted strings to represent charlists is deprecated.1900     Use ~c"" if you indeed want a charlist or use "" instead.1901     You may run "mix format --migrate" to change all single-quoted1902     strings to use the ~c sigil and fix this warning.1903     │1904 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1905     │                            ~1906     │1907     └─ lib/phoenix/live_dashboard/system_info.ex:446:2819081909     warning: using single-quoted strings to represent charlists is deprecated.1910     Use ~c"" if you indeed want a charlist or use "" instead.1911     You may run "mix format --migrate" to change all single-quoted1912     strings to use the ~c sigil and fix this warning.1913     │1914 446 │   @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1915     │                                        ~1916     │1917     └─ lib/phoenix/live_dashboard/system_info.ex:446:4019181919     warning: using single-quoted strings to represent charlists is deprecated.1920     Use ~c"" if you indeed want a charlist or use "" instead.1921     You may run "mix format --migrate" to change all single-quoted1922     strings to use the ~c sigil and fix this warning.1923     │1924 654 │         [{'none', 0, 0}] -> []1925     │           ~1926     │1927     └─ lib/phoenix/live_dashboard/system_info.ex:654:1119281929warning: 0..-2 has a default step of -1, please write 0..-2//-1 instead1930  lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/319311932warning: 0..-3 has a default step of -1, please write 0..-3//-1 instead1933  lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/319341935     warning: expected a module (an atom) when invoking __live__/0 in expression:19361937         Map.put(component_assigns, :page, page).__live__()19381939     but got type:19401941         dynamic(%{..., page: term()})19421943     where "component_assigns" was given the type:19441945         # type: dynamic(map())1946         # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:218:391947         Map.put(component_assigns, :page, page)19481949     where "page" was given the type:19501951         # type: dynamic()1952         # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:215:231953         page19541955     hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()19561957     type warning found at:1958     │1959 218 │         live_component(component, Map.put(component_assigns, :page, page))1960     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1961     │1962     └─ lib/phoenix/live_dashboard/components/nav_bar_component.ex:218: Phoenix.LiveDashboard.NavBarComponent.render_content/219631964     warning: expected a module (an atom) when invoking __live__/0 in expression:19651966         component_assigns.__live__()19671968     where "component_assigns" was given the type:19691970         # type: dynamic(%{..., page: term()})1971         # from: lib/phoenix/live_dashboard/page_live.ex:238:231972         component_assigns = Map.put(component_assigns, :page, assigns.page)19731974     hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()19751976     type warning found at:1977     │1978 239 │     live_component(component, component_assigns)1979     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1980     │1981     └─ lib/phoenix/live_dashboard/page_live.ex:239: Phoenix.LiveDashboard.PageLive.render_page/219821983     warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1984     │1985 276 │     do: struct.to_string(value)1986     │                ~1987     │1988     └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:276:16: Phoenix.LiveDashboard.EctoStatsPage.format/219891990    warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1991    │1992  8 │     Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)1993    │            ~1994    │1995    └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/219961997Generated phoenix_live_dashboard app1998warning: the :gettext compiler is no longer required in your mix.exs.19992000Please find the following line in your mix.exs and remove the :gettext entry:20012002    compilers: [..., :gettext, ...] ++ Mix.compilers(),20032004  (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/12005  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52006  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22007  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42008  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/22009  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/520102011==> exshome2012Compiling 68 files (.ex)2013    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2014    │2015  6 │   use Exshome.Dependency.GenServerDependency,2016    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2017    │2018    └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_dependency_change/120192020    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2021    │2022  6 │   use Exshome.Dependency.GenServerDependency,2023    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2024    │2025    └─ lib/exshome_clock/services/local_time.ex:6: ExshomeClock.Services.LocalTime.handle_event/220262027    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2028    │2029  5 │   use Exshome.Dependency.GenServerDependency, name: "utc_time"2030    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2031    │2032    └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_dependency_change/120332034    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2035    │2036  5 │   use Exshome.Dependency.GenServerDependency, name: "utc_time"2037    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2038    │2039    └─ lib/exshome_clock/services/utc_time.ex:5: ExshomeClock.Services.UtcTime.handle_event/220402041    warning: using single-quoted strings to represent charlists is deprecated.2042    Use ~c"" if you indeed want a charlist or use "" instead.2043    You may run "mix format --migrate" to change all single-quoted2044    strings to use the ~c sigil and fix this warning.2045    │2046 80 │       '--no-video',2047    │       ~2048    │2049    └─ lib/exshome_player/services/mpv_server.ex:80:720502051    warning: using single-quoted strings to represent charlists is deprecated.2052    Use ~c"" if you indeed want a charlist or use "" instead.2053    You may run "mix format --migrate" to change all single-quoted2054    strings to use the ~c sigil and fix this warning.2055    │2056 81 │       '--idle',2057    │       ~2058    │2059    └─ lib/exshome_player/services/mpv_server.ex:81:720602061    warning: using single-quoted strings to represent charlists is deprecated.2062    Use ~c"" if you indeed want a charlist or use "" instead.2063    You may run "mix format --migrate" to change all single-quoted2064    strings to use the ~c sigil and fix this warning.2065    │2066 82 │       '--no-cache',2067    │       ~2068    │2069    └─ lib/exshome_player/services/mpv_server.ex:82:720702071    warning: using single-quoted strings to represent charlists is deprecated.2072    Use ~c"" if you indeed want a charlist or use "" instead.2073    You may run "mix format --migrate" to change all single-quoted2074    strings to use the ~c sigil and fix this warning.2075    │2076 83 │       '--no-terminal',2077    │       ~2078    │2079    └─ lib/exshome_player/services/mpv_server.ex:83:720802081    warning: using single-quoted strings to represent charlists is deprecated.2082    Use ~c"" if you indeed want a charlist or use "" instead.2083    You may run "mix format --migrate" to change all single-quoted2084    strings to use the ~c sigil and fix this warning.2085    │2086 84 │       '--input-ipc-server=#{socket_path()}'2087    │       ~2088    │2089    └─ lib/exshome_player/services/mpv_server.ex:84:720902091    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2092    │2093  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_server"2094    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2095    │2096    └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_dependency_change/120972098    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2099    │2100  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_server"2101    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2102    │2103    └─ lib/exshome_player/services/mpv_server.ex:5: ExshomePlayer.Services.MpvServer.handle_event/221042105    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2106    │2107  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2108    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2109    │2110    └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_dependency_change/121112112    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2113    │2114  5 │   use Exshome.Dependency.GenServerDependency, name: "mpv_socket"2115    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2116    │2117    └─ lib/exshome_player/services/mpv_socket.ex:5: ExshomePlayer.Services.MpvSocket.handle_event/221182119    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2120    │2121 11 │   use Exshome.Dependency.GenServerDependency,2122    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2123    │2124    └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_dependency_change/121252126    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2127    │2128 11 │   use Exshome.Dependency.GenServerDependency,2129    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2130    │2131    └─ lib/exshome_player/services/player_state.ex:11: ExshomePlayer.Services.PlayerState.handle_event/221322133    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2134    │2135 11 │   use Exshome.Dependency.GenServerDependency,2136    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2137    │2138    └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_dependency_change/121392140    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2141    │2142 11 │   use Exshome.Dependency.GenServerDependency,2143    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2144    │2145    └─ lib/exshome_player/services/playlist.ex:11: ExshomePlayer.Services.Playlist.handle_event/221462147    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2148    │2149  8 │   use Exshome.Dependency.GenServerDependency,2150    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2151    │2152    └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_dependency_change/121532154    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2155    │2156  8 │   use Exshome.Dependency.GenServerDependency,2157    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2158    │2159    └─ lib/exshome_player/variables/duration.ex:8: ExshomePlayer.Variables.Duration.handle_event/221602161    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2162    │2163  8 │   use Exshome.Dependency.GenServerDependency,2164    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2165    │2166    └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_dependency_change/121672168    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2169    │2170  8 │   use Exshome.Dependency.GenServerDependency,2171    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2172    │2173    └─ lib/exshome_player/variables/path.ex:8: ExshomePlayer.Variables.Path.handle_event/221742175    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2176    │2177  8 │   use Exshome.Dependency.GenServerDependency,2178    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2179    │2180    └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_dependency_change/121812182    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2183    │2184  8 │   use Exshome.Dependency.GenServerDependency,2185    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2186    │2187    └─ lib/exshome_player/variables/position.ex:8: ExshomePlayer.Variables.Position.handle_event/221882189    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2190    │2191  8 │   use Exshome.Dependency.GenServerDependency,2192    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2193    │2194    └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_dependency_change/121952196    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2197    │2198  8 │   use Exshome.Dependency.GenServerDependency,2199    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2200    │2201    └─ lib/exshome_player/variables/pause.ex:8: ExshomePlayer.Variables.Pause.handle_event/222022203    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2204    │2205  8 │   use Exshome.Dependency.GenServerDependency,2206    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2207    │2208    └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_dependency_change/122092210    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2211    │2212  8 │   use Exshome.Dependency.GenServerDependency,2213    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2214    │2215    └─ lib/exshome_player/variables/volume.ex:8: ExshomePlayer.Variables.Volume.handle_event/222162217    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2218    │2219  8 │   use Exshome.Dependency.GenServerDependency,2220    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2221    │2222    └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_dependency_change/122232224    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead2225    │2226  8 │   use Exshome.Dependency.GenServerDependency,2227    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2228    │2229    └─ lib/exshome_player/variables/title.ex:8: ExshomePlayer.Variables.Title.handle_event/222302231warning: defining a Gettext backend by calling22322233    use Gettext, otp_app: ...22342235is deprecated. To define a backend, call:22362237    use Gettext.Backend, otp_app: :my_app22382239Then, instead of importing your backend, call this in your module:22402241    use Gettext, backend: MyApp.Gettext22422243  lib/exshome_web/gettext.ex:23: ExshomeWeb.Gettext (module)22442245    warning: using single-quoted strings to represent charlists is deprecated.2246    Use ~c"" if you indeed want a charlist or use "" instead.2247    You may run "mix format --migrate" to change all single-quoted2248    strings to use the ~c sigil and fix this warning.2249    │2250 21 │             class={"text-4xl #{if @deps.playlist.current_id == track.id, do: 'playing'}"}2251    │                                                                              ~2252    │2253    └─ lib/exshome_player/web/templates/playlist.html.heex:21:7822542255    warning: using single-quoted strings to represent charlists is deprecated.2256    Use ~c"" if you indeed want a charlist or use "" instead.2257    You may run "mix format --migrate" to change all single-quoted2258    strings to use the ~c sigil and fix this warning.2259    │2260 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"2261    │                                                              ~2262    │2263    └─ lib/exshome_player/web/templates/playlist.html.heex:26:6222642265    warning: using single-quoted strings to represent charlists is deprecated.2266    Use ~c"" if you indeed want a charlist or use "" instead.2267    You may run "mix format --migrate" to change all single-quoted2268    strings to use the ~c sigil and fix this warning.2269    │2270  6 │     <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2271    │                                                      ~2272    │2273    └─ lib/exshome_player/web/templates/preview.html.heex:6:5422742275    warning: using single-quoted strings to represent charlists is deprecated.2276    Use ~c"" if you indeed want a charlist or use "" instead.2277    You may run "mix format --migrate" to change all single-quoted2278    strings to use the ~c sigil and fix this warning.2279    │2280  6 │     <div class={"icon mt-[15%] #{if @deps.pause, do: 'play', else: 'pause'}"}>2281    │                                                                    ~2282    │2283    └─ lib/exshome_player/web/templates/preview.html.heex:6:68228422852286== Compilation error in file lib/exshome_web/endpoint.ex ==2287** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found2288    (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/12289    (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/12290    (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/22291    (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22292    (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/22293    (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/12294    (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/42295    (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/32296could 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"