Build log
host
config_manager 0.1.1 · fail · run config_manager-0.1.1-1791072597047
1443 of 1443 lines
1Resolving Hex dependencies...2Resolution completed in 0.365s3Unchanged:4 castore 1.0.215 circular_buffer 1.1.06 config_manager 0.1.17 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 3.1.121 ecto 3.14.222 ecto_sql 3.14.023 elixir_make 0.10.024 esbuild 0.10.025 expo 1.1.126 gettext 0.26.227 idna 7.1.028 interactive_cmd 0.1.429 jason 1.4.530 mime 2.0.731 nerves 2.0.0-pre.232 nerves_discovery 0.1.533 nerves_logging 0.2.434 nerves_runtime 0.13.1335 nerves_system_bbb 2.30.236 nerves_system_br 1.34.437 nerves_system_mangopi_mq_pro 0.17.238 nerves_system_qemu_aarch64 0.4.239 nerves_system_rpi0 2.1.240 nerves_system_rpi4 2.1.241 nerves_system_rpi5 2.1.242 nerves_system_trellis 0.5.043 nerves_system_x86_64 1.34.244 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.145 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.146 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.147 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.148 nerves_toolchain_x86_64_nerves_linux_musl 15.3.149 nerves_uevent 0.1.750 phoenix 1.6.1751 phoenix_ecto 4.7.052 phoenix_html 3.3.453 phoenix_live_dashboard 0.6.554 phoenix_live_view 0.17.14 VULNERABLE!55 EEF-CVE-2026-64941 (LOW)56 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf57 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR58 https://osv.dev/vulnerability/EEF-CVE-2026-6494159 phoenix_pubsub 2.3.060 phoenix_template 1.1.061 phoenix_view 2.0.462 plug 1.20.363 plug_cowboy 2.9.064 plug_crypto 1.2.565 postgrex 0.22.466 property_table 0.3.467 ranch 2.3.068 ring_logger 0.11.769 swoosh 1.28.170 tablet 0.3.371 telemetry 1.4.272 telemetry_metrics 0.6.273 telemetry_poller 1.3.074 toolshed 0.5.075 uboot_env 1.0.276Found packages with security advisories, see above for details77All dependencies have been fetched78==> esbuild79Compiling 4 files (.ex)80Generated esbuild app81==> phoenix_html82Compiling 9 files (.ex)83 warning: comparison between distinct types found:8485 id == nil8687 given types:8889 dynamic(not false and not nil and not binary()) == nil9091 where "id" was given the types:9293 # type: dynamic(not false and not nil)94 # from: lib/phoenix_html/form_data.ex:92:895 id = Keyword.get(opts, :id) || name9697 # type: dynamic(not false and not nil and not binary())98 # from: lib/phoenix_html/form_data.ex:94:1299 is_binary(id)100101 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 false102103 type warning found at:104 │105 94 │ unless is_binary(id) or is_nil(id) do106 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~107 │108 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2109110 warning: the 1st pattern in clause will never match:111112 60113114 because it is expected to receive type:115116 dynamic(empty_list() or non_empty_list(term(), term()))117118 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())119120 type warning found at:121 │122 56 │ def to_iodata(?<), do: "<"123 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~124 │125 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1126127 warning: the 1st pattern in clause will never match:128129 62130131 because it is expected to receive type:132133 dynamic(empty_list() or non_empty_list(term(), term()))134135 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())136137 type warning found at:138 │139 57 │ def to_iodata(?>), do: ">"140 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~141 │142 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1143144 warning: the 1st pattern in clause will never match:145146 38147148 because it is expected to receive type:149150 dynamic(empty_list() or non_empty_list(term(), term()))151152 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())153154 type warning found at:155 │156 58 │ def to_iodata(?&), do: "&"157 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~158 │159 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1160161 warning: the 1st pattern in clause will never match:162163 34164165 because it is expected to receive type:166167 dynamic(empty_list() or non_empty_list(term(), term()))168169 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())170171 type warning found at:172 │173 59 │ def to_iodata(?"), do: """174 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~175 │176 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1177178 warning: the 1st pattern in clause will never match:179180 39181182 because it is expected to receive type:183184 dynamic(empty_list() or non_empty_list(term(), term()))185186 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())187188 type warning found at:189 │190 60 │ def to_iodata(?'), do: "'"191 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~192 │193 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1194195 warning: the 1st pattern in clause will never match:196197 {:safe, data}198199 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 76 │ def to_iodata({:safe, data}) do208 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~209 │210 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1211212 warning: the following clause is redundant:213214 def to_iodata(other)215216 it has type:217218 dynamic(empty_list() or non_empty_list(term(), term()))219220 previous clauses have already matched on the following types:221222 non_empty_list(term(), term())223 empty_list()224225 │226 80 │ def to_iodata(other) do227 │ ~228 │229 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1230231 warning: the 1st pattern in clause will never match:232233 h234235 because it is expected to receive type:236237 dynamic(empty_list() or non_empty_list(term(), term()))238239 where "h" was given the type:240241 # type: integer()242 # from: lib/phoenix_html/safe.ex:62:25243 is_integer(h)244245 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())246247 type warning found at:248 │249 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do250 │ ~251 │252 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1253254 warning: the 1st pattern in clause will never match:255256 h257258 because it is expected to receive type:259260 dynamic(empty_list() or non_empty_list(term(), term()))261262 where "h" was given the type:263264 # type: integer()265 # from: lib/phoenix_html/safe.ex:66:25266 is_integer(h)267268 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())269270 type warning found at:271 │272 66 │ def to_iodata(h) when is_integer(h) do273 │ ~274 │275 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1276277 warning: the 1st pattern in clause will never match:278279 h280281 because it is expected to receive type:282283 dynamic(empty_list() or non_empty_list(term(), term()))284285 where "h" was given the type:286287 # type: binary()288 # from: lib/phoenix_html/safe.ex:72:25289 is_binary(h)290291 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())292293 type warning found at:294 │295 72 │ def to_iodata(h) when is_binary(h) do296 │ ~297 │298 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1299300Generated phoenix_html app301==> phoenix_template302Compiling 4 files (.ex)303Generated phoenix_template app304==> phoenix_view305Compiling 1 file (.ex)306 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 operator307 │308 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix309 │ ~310 │311 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2312313Generated phoenix_view app314warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"315 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2316 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1317 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5318 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2319 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4320 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2321322==> phoenix_ecto323Compiling 7 files (.ex)324Generated phoenix_ecto app325warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"326 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2327 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1328 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5329 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2330 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4331 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2332333==> phoenix334Compiling 69 files (.ex)335 warning: using single-quoted strings to represent charlists is deprecated.336 Use ~c"" if you indeed want a charlist or use "" instead.337 You may run "mix format --migrate" to change all single-quoted338 strings to use the ~c sigil and fix this warning.339 │340 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},341 │ ~342 │343 └─ lib/mix/tasks/phx.gen.cert.ex:258:33344345 warning: using single-quoted strings to represent charlists is deprecated.346 Use ~c"" if you indeed want a charlist or use "" instead.347 You may run "mix format --migrate" to change all single-quoted348 strings to use the ~c sigil and fix this warning.349 │350 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}351 │ ~352 │353 └─ lib/mix/tasks/phx.gen.cert.ex:259:32354355 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead356 │357 50 │ Logger.warn(358 │ ~359 │360 └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/3361362 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.363364 This error happens when you have function calls without parentheses inside keywords. For example:365366 function(arg, one: nested_call a, b, c)367 function(arg, one: if expr, do: :this, else: :that)368369 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:370371 function(arg, one: if(expr, do: :this, else: :that))372 function(arg, one: nested_call(a, b, c))373374 Ambiguity found at:375 │376 998 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"377 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~378 │379 └─ lib/phoenix/controller.ex:998380381 warning: unused require Logger382 │383 9 │ require Logger384 │ ~385 │386 └─ lib/phoenix/config.ex:9:3387388 warning: unused require Logger389 │390 259 │ require Logger391 │ ~392 │393 └─ lib/phoenix/endpoint.ex:259:3394395 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead396 │397 1009 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>398 │ ~399 │400 └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/1401402 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead403 │404 34 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")405 │ ~406 │407 └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/1408409 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead410 │411 57 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")412 │ ~413 │414 └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/1415416 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead417 │418 78 │ Logger.warn """419 │ ~420 │421 └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/2422423 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead424 │425 264 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")426 │ ~427 │428 └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/2429430 warning: unused require Phoenix.Endpoint431 │432 6 │ require Phoenix.Endpoint433 │ ~434 │435 └─ lib/phoenix/controller.ex:6:3436437 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 operator438 │439 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix440 │ ~441 │442 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2443444 warning: unused require Phoenix.Endpoint445 │446 19 │ require Phoenix.Endpoint447 │ ~448 │449 └─ lib/phoenix/endpoint/render_errors.ex:19:3450451 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.452453 This error happens when you have function calls without parentheses inside keywords. For example:454455 function(arg, one: nested_call a, b, c)456 function(arg, one: if expr, do: :this, else: :that)457458 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:459460 function(arg, one: if(expr, do: :this, else: :that))461 function(arg, one: nested_call(a, b, c))462463 Ambiguity found at:464 │465 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """466 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~467 │468 └─ lib/phoenix/router/resource.ex:71469470 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead471 │472 653 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end473 │ ~474 │475 └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/4476477 warning: unused require Phoenix.Endpoint478 │479 6 │ require Phoenix.Endpoint480 │ ~481 │482 └─ lib/phoenix/channel/server.ex:6:3483484 warning: unused require Phoenix.Endpoint485 │486 192 │ require Phoenix.Endpoint487 │ ~488 │489 └─ lib/phoenix/socket.ex:192:3490491 warning: unused require Logger492 │493 93 │ require Logger494 │ ~495 │496 └─ lib/phoenix/token.ex:93:3497498 warning: comparison between distinct types found:499500 merge_all != []501502 given types:503504 dynamic(non_empty_list({atom(), term()})) != empty_list()505506 where "merge_all" was given the type:507508 # type: dynamic(non_empty_list({atom(), term()}))509 # from: lib/phoenix/router/route.ex:111:15510 merge_all = merge_params ++ merge_private ++ merge_assigns511512 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 false513514 type warning found at:515 │516 113 │ if merge_all != [] do517 │ ~518 │519 └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/1520521 warning: a struct for Plug.Conn is expected on struct update:522523 %Plug.Conn{conn | state: :sent}524525 but got type:526527 dynamic()528529 where "conn" was given the type:530531 # type: dynamic()532 # from: lib/phoenix/endpoint/render_errors.ex:57:17533 conn534535 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"536537 type warning found at:538 │539 61 │ %Plug.Conn{conn | state: :sent}540 │ ~541 │542 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/5543544 warning: a struct for Plug.Conn is expected on struct update:545546 %Plug.Conn{conn | query_params: %{}, params: %{}}547548 but got type:549550 dynamic(%{..., params: %Plug.Conn.Unfetched{}})551552 where "conn" was given the types:553554 # type: dynamic(%{..., params: term()})555 # from: lib/phoenix/endpoint/render_errors.ex:124:17556 conn.params557558 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})559 # from: lib/phoenix/endpoint/render_errors.ex:124:17560 conn.params561562 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"563564 type warning found at:565 │566 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}567 │ ~568 │569 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1570571 warning: a struct for Plug.Conn is expected on struct update:572573 %Plug.Conn{conn | query_params: %{}, params: params}574575 but got type:576577 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})578579 where "conn" was given the types:580581 # type: dynamic(%{..., params: term()})582 # from: lib/phoenix/endpoint/render_errors.ex:124:17583 conn.params584585 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})586 # from: lib/phoenix/endpoint/render_errors.ex:124:17587 conn.params588589 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"590591 type warning found at:592 │593 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}594 │ ~595 │596 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1597598 warning: incompatible types given to socket_children/1:599600 socket_children(mod)601602 given types:603604 -dynamic(atom())-605606 but expected one of:607608 %{..., __sockets__: term()}609610 where "mod" was given the types:611612 # type: dynamic(atom() or binary())613 # from: lib/phoenix/endpoint/supervisor.ex:27:41614 defaults(otp_app, mod)615616 # type: dynamic(atom())617 # from: lib/phoenix/endpoint/supervisor.ex:31:16618 mod.init(:supervisor, env_conf)619620 type warning found at:621 │622 67 │ socket_children(mod) ++623 │ ~624 │625 └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/1626627 warning: a struct for Plug.Conn is expected on struct update:628629 %Plug.Conn{conn | params: params}630631 but got type:632633 dynamic(%{..., params: map()})634635 where "conn" was given the type:636637 # type: dynamic(%{..., params: map()})638 # from: lib/phoenix/controller.ex:1036:17639 Map.get(conn.params, required_key)640641 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"642643 type warning found at:644 │645 1043 │ %Plug.Conn{conn | params: params}646 │ ~647 │648 └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/2649650 warning: expected a module (an atom) when invoking compress_file/2 in expression:651652 compressor.compress_file(file.digested_filename, file.digested_content)653654 where "compressor" was given the type:655656 # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})657 # from: lib/phoenix/digester.ex:167:28658 [file_extension | _] = compressor.file_extensions659660 where "file" was given the type:661662 # type: dynamic(%{..., relative_path: term()})663 # from: lib/phoenix/digester.ex:161:17664 Path.join(output_path, file.relative_path)665666 type warning found at:667 │668 170 │ compressor.compress_file(file.digested_filename, file.digested_content) do669 │ ~670 │671 └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/2672673Generated phoenix app674warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"675 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2676 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1677 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5678 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2679 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4680 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2681682==> phoenix_live_view683Compiling 31 files (.ex)684 warning: using single-quoted strings to represent charlists is deprecated.685 Use ~c"" if you indeed want a charlist or use "" instead.686 You may run "mix format --migrate" to change all single-quoted687 strings to use the ~c sigil and fix this warning.688 │689 319 │ {'LiveView', view},690 │ ~691 │692 └─ lib/phoenix_live_view/channel.ex:319:10693694 warning: using single-quoted strings to represent charlists is deprecated.695 Use ~c"" if you indeed want a charlist or use "" instead.696 You may run "mix format --migrate" to change all single-quoted697 strings to use the ~c sigil and fix this warning.698 │699 320 │ {'Parent pid', parent_pid},700 │ ~701 │702 └─ lib/phoenix_live_view/channel.ex:320:10703704 warning: using single-quoted strings to represent charlists is deprecated.705 Use ~c"" if you indeed want a charlist or use "" instead.706 You may run "mix format --migrate" to change all single-quoted707 strings to use the ~c sigil and fix this warning.708 │709 321 │ {'Transport pid', transport_pid},710 │ ~711 │712 └─ lib/phoenix_live_view/channel.ex:321:10713714 warning: using single-quoted strings to represent charlists is deprecated.715 Use ~c"" if you indeed want a charlist or use "" instead.716 You may run "mix format --migrate" to change all single-quoted717 strings to use the ~c sigil and fix this warning.718 │719 322 │ {'Topic', topic},720 │ ~721 │722 └─ lib/phoenix_live_view/channel.ex:322:10723724 warning: using single-quoted strings to represent charlists is deprecated.725 Use ~c"" if you indeed want a charlist or use "" instead.726 You may run "mix format --migrate" to change all single-quoted727 strings to use the ~c sigil and fix this warning.728 │729 323 │ {'Components count', map_size(cid_to_component)}730 │ ~731 │732 └─ lib/phoenix_live_view/channel.ex:323:10733734 warning: using single-quoted strings to represent charlists is deprecated.735 Use ~c"" if you indeed want a charlist or use "" instead.736 You may run "mix format --migrate" to change all single-quoted737 strings to use the ~c sigil and fix this warning.738 │739 329 │ [data: [{'State', state}]]740 │ ~741 │742 └─ lib/phoenix_live_view/channel.ex:329:14743744 warning: using single-quoted strings to represent charlists is deprecated.745 Use ~c"" if you indeed want a charlist or use "" instead.746 You may run "mix format --migrate" to change all single-quoted747 strings to use the ~c sigil and fix this warning.748 │749 112 │ @codepoints '\s\n\r\t'750 │ ~751 │752 └─ lib/phoenix_live_view/html_algebra.ex:112:15753754 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 125 │ do: :binary.first(text) in '\n\r'760 │ ~761 │762 └─ lib/phoenix_live_view/html_algebra.ex:125:32763764 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 130 │ do: :binary.last(text) in '\n\r'770 │ ~771 │772 └─ lib/phoenix_live_view/html_algebra.ex:130:31773774 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 503 │ defp count_newlines_until_text(<<char, rest::binary>>, counter) when char in '\s\t\r',780 │ ~781 │782 └─ lib/phoenix_live_view/html_formatter.ex:503:80783784 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 536 │ do: if(String.trim_leading(text) == "", do: false, else: !(:binary.last(text) in '\s\t'))790 │ ~791 │792 └─ lib/phoenix_live_view/html_formatter.ex:536:86793794 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 546 │ if String.trim_leading(text) != "" and :binary.first(text) not in '\s\t\n\r' do800 │ ~801 │802 └─ lib/phoenix_live_view/html_formatter.ex:546:73803804 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 3 │ @space_chars '\s\t\f'810 │ ~811 │812 └─ lib/phoenix_live_view/html_tokenizer.ex:3:16813814 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 4 │ @quote_chars '"\''820 │ ~821 │822 └─ lib/phoenix_live_view/html_tokenizer.ex:4:16823824 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 5 │ @stop_chars '>/=\r\n' ++ @quote_chars ++ @space_chars830 │ ~831 │832 └─ lib/phoenix_live_view/html_tokenizer.ex:5:15833834 warning: unused require Logger835 │836 25 │ require Logger837 │ ~838 │839 └─ lib/phoenix_live_view/socket.ex:25:3840841 warning: unused require Phoenix.ChannelTest842 │843 179 │ require Phoenix.ChannelTest844 │ ~845 │846 └─ lib/phoenix_live_view/test/live_view_test.ex:179:3847848 warning: unused require Phoenix.ConnTest849 │850 178 │ require Phoenix.ConnTest851 │ ~852 │853 └─ lib/phoenix_live_view/test/live_view_test.ex:178:3854855 warning: unused require Phoenix.ChannelTest856 │857 4 │ require Phoenix.ChannelTest858 │ ~859 │860 └─ lib/phoenix_live_view/test/upload_client.ex:4:3861862 warning: unused require Logger863 │864 6 │ require Logger865 │ ~866 │867 └─ lib/phoenix_live_view/upload_channel.ex:6:3868869 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:870871 %Phoenix.LiveView.Socket{872 socket873 | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})874 }875876 but got type:877878 dynamic()879880 where "socket" was given the type:881882 # type: dynamic()883 # from: lib/phoenix_live_view/utils.ex:459:21884 socket885886 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"887888 type warning found at:889 │890 460 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}891 │ ~892 │893 └─ lib/phoenix_live_view/utils.ex:460:5: Phoenix.LiveView.Utils.do_mount_opt/3894895 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:896897 %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}898899 but got type:900901 dynamic()902903 where "socket" was given the type:904905 # type: dynamic()906 # from: lib/phoenix_live_view/utils.ex:463:21907 socket908909 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"910911 type warning found at:912 │913 464 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}914 │ ~915 │916 └─ lib/phoenix_live_view/utils.ex:464:5: Phoenix.LiveView.Utils.do_mount_opt/3917918 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:919920 %Phoenix.LiveView.Socket{921 socket922 | assigns: Map.merge(temp_assigns, socket.assigns),923 private: Map.put(socket.private, :temporary_assigns, temp_assigns)924 }925926 but got type:927928 dynamic()929930 where "socket" was given the type:931932 # type: dynamic()933 # from: lib/phoenix_live_view/utils.ex:473:21934 socket935936 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"937938 type warning found at:939 │940 480 │ %Socket{941 │ ~942 │943 └─ lib/phoenix_live_view/utils.ex:480:5: Phoenix.LiveView.Utils.do_mount_opt/3944945 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:946947 %Phoenix.LiveView.Socket{948 socket949 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}950 }951952 but got type:953954 dynamic(%{..., assigns: term()})955956 where "socket" was given the type:957958 # type: dynamic(%{..., assigns: term()})959 # from: lib/phoenix_live_view/utils.ex:491:43960 %{assigns: assigns} = socket961962 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"963964 type warning found at:965 │966 492 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}967 │ ~968 │969 └─ lib/phoenix_live_view/utils.ex:492:14: Phoenix.LiveView.Utils.render_assigns/1970971 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:972973 %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}974975 but got type:976977 dynamic()978979 where "entry" was given the type:980981 # type: dynamic()982 # from: lib/phoenix_live_view/upload_config.ex:339:28983 entry <- conf.entries984985 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"986987 type warning found at:988 │989 339 │ | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})990 │ ~991 │992 └─ lib/phoenix_live_view/upload_config.ex:339:49: Phoenix.LiveView.UploadConfig.mark_preflighted/1993994 warning: a struct for Phoenix.HTML.Form is expected on struct update:995996 %Phoenix.HTML.Form{Phoenix.HTML.FormData.to_form(form_for, form_options) | action: action || "#"}997998 but got type:9991000 dynamic()10011002 where "form_for" was given the type:10031004 # type: dynamic(not false and not nil)1005 # from: lib/phoenix_live_view/helpers.ex:1101:141006 form_for = assigns[:for] || :erlang.error(ArgumentError.exception("missing :for assign to form"))10071008 where "form_options" was given the type:10091010 # type: dynamic(list({term(), term()}))1011 # from: lib/phoenix_live_view/helpers.ex:1102:181012 form_options = assigns_to_attributes(assigns, [:action, :for])10131014 you must assign "Phoenix.HTML.FormData.to_form(form_for, form_options)" to variable and pattern match on "%Phoenix.HTML.Form{}"10151016 type warning found at:1017 │1018 1106 │ form = %Phoenix.HTML.Form{1019 │ ~1020 │1021 └─ lib/phoenix_live_view/helpers.ex:1106:14: Phoenix.LiveView.Helpers.form/110221023 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10241025 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}10261027 but got type:10281029 dynamic()10301031 where "entry" was given the type:10321033 # type: dynamic()1034 # from: lib/phoenix_live_view/upload_config.ex:539:301035 entry10361037 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10381039 type warning found at:1040 │1041 540 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1042 │ ~1043 │1044 └─ lib/phoenix_live_view/upload_config.ex:540:13: Phoenix.LiveView.UploadConfig.put_valid_entry/210451046 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10471048 %Phoenix.LiveView.UploadEntry{entry | valid?: false}10491050 but got type:10511052 dynamic()10531054 where "entry" was given the type:10551056 # type: dynamic()1057 # from: lib/phoenix_live_view/upload_config.ex:552:321058 entry10591060 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10611062 type warning found at:1063 │1064 553 │ entry = %UploadEntry{entry | valid?: false}1065 │ ~1066 │1067 └─ lib/phoenix_live_view/upload_config.ex:553:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/310681069 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10701071 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}10721073 but got type:10741075 dynamic()10761077 where "entry" was given the type:10781079 # type: dynamic()1080 # from: lib/phoenix_live_view/upload_config.ex:635:421081 entry10821083 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10841085 type warning found at:1086 │1087 635 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1088 │ ~1089 │1090 └─ lib/phoenix_live_view/upload_config.ex:635:51: Phoenix.LiveView.UploadConfig.cancel_entry/210911092 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1093 │1094 72 │ Logger.disable(self())1095 │ ~1096 │1097 └─ lib/phoenix_live_view/test/client_proxy.ex:72:12: Phoenix.LiveViewTest.ClientProxy.init/110981099 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:11001101 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}11021103 but got type:11041105 dynamic(%{..., rendered: map()})11061107 where "view" was given the type:11081109 # type: dynamic(%{..., rendered: map()})1110 # from: lib/phoenix_live_view/test/client_proxy.ex:701:241111 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)11121113 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"11141115 type warning found at:1116 │1117 702 │ new_view = %ClientProxy{view | rendered: rendered}1118 │ ~1119 │1120 └─ lib/phoenix_live_view/test/client_proxy.ex:702:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/311211122 warning: the right-hand side of || (shown as ... below) will never be executed:11231124 conn.private[:live_view_connect_info] || prune_conn(conn) || ...11251126 because the left-hand side always evaluates to:11271128 dynamic(not false and not nil)11291130 where "conn" was given the types:11311132 # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1133 # from: lib/phoenix_live_view/test/live_view_test.ex:320:721134 %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn11351136 # type: dynamic(%Plug.Conn{1137 assigns: %{..., live_module: term()},1138 private:1139 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1140 non_struct_map(),1141 status: integer()1142 })1143 # from: lib/phoenix_live_view/test/live_view_test.ex:334:351144 conn.private[:live_view_connect_params]11451146 type warning found at:1147 │1148 335 │ connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1149 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1150 │1151 └─ lib/phoenix_live_view/test/live_view_test.ex:335: Phoenix.LiveViewTest.connect_from_static_token/211521153 warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead1154 │1155 1095 │ Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)1156 │ ~1157 │1158 └─ lib/phoenix_live_view/test/client_proxy.ex:1095:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/31159 └─ lib/phoenix_live_view/test/client_proxy.ex:1100:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/31160 └─ lib/phoenix_live_view/test/client_proxy.ex:1110:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/31161 └─ lib/phoenix_live_view/test/client_proxy.ex:1119:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/311621163 warning: the following clause is redundant:11641165 def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)11661167 it has type:11681169 dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))11701171 previous clauses have already matched on the following types:11721173 %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1174 %Phoenix.LiveView.Socket{}, term(), (none() -> term())1175 term(), term(), (none(), none() -> term())1176 term(), term(), (none() -> term())11771178 │1179 952 │ def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1180 │ ~1181 │1182 └─ lib/phoenix_live_view.ex:952:7: Phoenix.LiveView.update/311831184 warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1185 │1186 603 │ defp class_names(nil), do: []1187 │ ~1188 │1189 └─ lib/phoenix_live_view/js.ex:603:8: Phoenix.LiveView.JS.class_names/111901191 warning: the following clause is redundant:11921193 def to_iodata(%_{} = struct)11941195 it has type:11961197 dynamic(%Phoenix.LiveView.Rendered{})11981199 previous clauses have already matched on the following types:12001201 %Phoenix.LiveView.Rendered{}12021203 │1204 127 │ def to_iodata(%_{} = struct) do1205 │ ~1206 │1207 └─ lib/phoenix_live_view/engine.ex:127:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/112081209 warning: the 1st pattern in clause will never match:12101211 nil12121213 because it is expected to receive type:12141215 dynamic(%Phoenix.LiveView.Rendered{})12161217 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}12181219 type warning found at:1220 │1221 131 │ def to_iodata(nil) do1222 │ ~~~~~~~~~~~~~~~~~~~~~1223 │1224 └─ lib/phoenix_live_view/engine.ex:131: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/112251226 warning: the following clause is redundant:12271228 def to_iodata(other)12291230 it has type:12311232 dynamic(%Phoenix.LiveView.Rendered{})12331234 previous clauses have already matched on the following types:12351236 %Phoenix.LiveView.Rendered{}12371238 │1239 135 │ def to_iodata(other) do1240 │ ~1241 │1242 └─ lib/phoenix_live_view/engine.ex:135:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/112431244Generated phoenix_live_view app1245warning: Phoenix now requires you to explicitly list which engine to use1246for Phoenix JSON encoding. We recommend everyone to upgrade to1247Jason by setting in your config/config.exs:12481249 config :phoenix, :json_library, Jason12501251And then adding {:jason, "~> 1.0"} as a dependency.12521253If instead you would rather continue using Poison, then add to1254your config/config.exs:12551256 config :phoenix, :json_library, Poison12571258 (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/21259 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/412601261warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1262 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21263 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11264 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51265 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21266 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41267 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/212681269==> phoenix_live_dashboard1270Compiling 40 files (.ex)1271 warning: using single-quoted strings to represent charlists is deprecated.1272 Use ~c"" if you indeed want a charlist or use "" instead.1273 You may run "mix format --migrate" to change all single-quoted1274 strings to use the ~c sigil and fix this warning.1275 │1276 709 │ '#Port' ++ rest = :erlang.port_to_list(ref)1277 │ ~1278 │1279 └─ lib/phoenix/live_dashboard/page_builder.ex:709:512801281 warning: using single-quoted strings to represent charlists is deprecated.1282 Use ~c"" if you indeed want a charlist or use "" instead.1283 You may run "mix format --migrate" to change all single-quoted1284 strings to use the ~c sigil and fix this warning.1285 │1286 728 │ '#Ref' ++ rest = :erlang.ref_to_list(ref)1287 │ ~1288 │1289 └─ lib/phoenix/live_dashboard/page_builder.ex:728:512901291 warning: using single-quoted strings to represent charlists is deprecated.1292 Use ~c"" if you indeed want a charlist or use "" instead.1293 You may run "mix format --migrate" to change all single-quoted1294 strings to use the ~c sigil and fix this warning.1295 │1296 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1297 │ ~1298 │1299 └─ lib/phoenix/live_dashboard/system_info.ex:446:1613001301 warning: using single-quoted strings to represent charlists is deprecated.1302 Use ~c"" if you indeed want a charlist or use "" instead.1303 You may run "mix format --migrate" to change all single-quoted1304 strings to use the ~c sigil and fix this warning.1305 │1306 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1307 │ ~1308 │1309 └─ lib/phoenix/live_dashboard/system_info.ex:446:2813101311 warning: using single-quoted strings to represent charlists is deprecated.1312 Use ~c"" if you indeed want a charlist or use "" instead.1313 You may run "mix format --migrate" to change all single-quoted1314 strings to use the ~c sigil and fix this warning.1315 │1316 446 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1317 │ ~1318 │1319 └─ lib/phoenix/live_dashboard/system_info.ex:446:4013201321 warning: using single-quoted strings to represent charlists is deprecated.1322 Use ~c"" if you indeed want a charlist or use "" instead.1323 You may run "mix format --migrate" to change all single-quoted1324 strings to use the ~c sigil and fix this warning.1325 │1326 654 │ [{'none', 0, 0}] -> []1327 │ ~1328 │1329 └─ lib/phoenix/live_dashboard/system_info.ex:654:1113301331warning: 0..-2 has a default step of -1, please write 0..-2//-1 instead1332 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/313331334warning: 0..-3 has a default step of -1, please write 0..-3//-1 instead1335 lib/phoenix/live_dashboard/page_live.ex:178: Phoenix.LiveDashboard.PageLive.dashboard_mount_path/313361337 warning: expected a module (an atom) when invoking __live__/0 in expression:13381339 Map.put(component_assigns, :page, page).__live__()13401341 but got type:13421343 dynamic(%{..., page: term()})13441345 where "component_assigns" was given the type:13461347 # type: dynamic(map())1348 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:218:391349 Map.put(component_assigns, :page, page)13501351 where "page" was given the type:13521353 # type: dynamic()1354 # from: lib/phoenix/live_dashboard/components/nav_bar_component.ex:215:231355 page13561357 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13581359 type warning found at:1360 │1361 218 │ live_component(component, Map.put(component_assigns, :page, page))1362 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1363 │1364 └─ lib/phoenix/live_dashboard/components/nav_bar_component.ex:218: Phoenix.LiveDashboard.NavBarComponent.render_content/213651366 warning: expected a module (an atom) when invoking __live__/0 in expression:13671368 component_assigns.__live__()13691370 where "component_assigns" was given the type:13711372 # type: dynamic(%{..., page: term()})1373 # from: lib/phoenix/live_dashboard/page_live.ex:238:231374 component_assigns = Map.put(component_assigns, :page, assigns.page)13751376 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13771378 type warning found at:1379 │1380 239 │ live_component(component, component_assigns)1381 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1382 │1383 └─ lib/phoenix/live_dashboard/page_live.ex:239: Phoenix.LiveDashboard.PageLive.render_page/213841385 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1386 │1387 276 │ do: struct.to_string(value)1388 │ ~1389 │1390 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:276:16: Phoenix.LiveDashboard.EctoStatsPage.format/213911392 warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1393 │1394 8 │ Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)1395 │ ~1396 │1397 └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/213981399Generated phoenix_live_dashboard app1400==> swoosh1401Compiling 62 files (.ex)1402Generated swoosh app1403warning: the :gettext compiler is no longer required in your mix.exs.14041405Please find the following line in your mix.exs and remove the :gettext entry:14061407 compilers: [..., :gettext, ...] ++ Mix.compilers(),14081409 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11410 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51411 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21412 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41413 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21414 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/514151416==> config_manager1417Compiling 18 files (.ex)1418warning: defining a Gettext backend by calling14191420 use Gettext, otp_app: ...14211422is deprecated. To define a backend, call:14231424 use Gettext.Backend, otp_app: :my_app14251426Then, instead of importing your backend, call this in your module:14271428 use Gettext, backend: MyApp.Gettext14291430 lib/config_manager_web/gettext.ex:23: ConfigManagerWeb.Gettext (module)143114321433== Compilation error in file lib/config_manager_web/endpoint.ex ==1434** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found1435 (plug 1.20.3) lib/plug/parsers/json.ex:48: Plug.Parsers.JSON.validate_decoder!/11436 (plug 1.20.3) lib/plug/parsers/json.ex:35: Plug.Parsers.JSON.init/11437 (plug 1.20.3) lib/plug/parsers.ex:283: anonymous fn/2 in Plug.Parsers.convert_parsers/21438 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21439 (elixir 1.20.3) lib/enum.ex:1725: Enum."-map/2-lists^map/1-1-"/21440 (plug 1.20.3) lib/plug/parsers.ex:263: Plug.Parsers.init/11441 (plug 1.20.3) lib/plug/builder.ex:358: Plug.Builder.init_module_plug/41442 (plug 1.20.3) lib/plug/builder.ex:339: anonymous fn/5 in Plug.Builder.compile/31443could not compile dependency :config_manager, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile config_manager --force", update it with "mix deps.update config_manager" or clean it with "mix deps.clean config_manager"