Build log
nerves_system_x86_64
servicex 0.1.2 · fail · run servicex-0.1.2-1791099550611
1908 of 1908 lines
1Resolving Hex dependencies...2Resolution completed in 0.23s3Unchanged:4 bcrypt_elixir 1.1.15 circular_buffer 1.1.06 combine 0.10.07 comeonin 4.1.28 connection 1.0.49 cowboy 1.1.2 VULNERABLE!10 GHSA-w4f7-4cxr-rv3c (MEDIUM)11 aka: CVE-2026-43966, EEF-CVE-2026-4396612 cowboy and gun affected by an HTTP Request/Response Splitting vulnerability13 https://osv.dev/vulnerability/GHSA-w4f7-4cxr-rv3c14 cowlib 1.0.2 VULNERABLE!15 EEF-CVE-2026-7790 (HIGH)16 aka: CVE-2026-7790, GHSA-32p9-57cr-4x6517 Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS18 https://osv.dev/vulnerability/EEF-CVE-2026-77901920 EEF-CVE-2026-43970 (HIGH)21 aka: CVE-2026-43970, GHSA-84f2-rp86-235p22 Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame23 https://osv.dev/vulnerability/EEF-CVE-2026-4397024 db_connection 1.1.325 decimal 1.9.0 VULNERABLE!26 EEF-CVE-2026-32686 (MEDIUM)27 aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v28 Unbounded exponent in decimal enables unauthenticated DoS29 https://osv.dev/vulnerability/EEF-CVE-2026-3268630 ecto 2.2.1231 elixir_make 0.10.032 expo 1.1.133 gettext 0.26.234 guardian 1.2.1 VULNERABLE!35 EEF-CVE-2026-54894 (MEDIUM)36 aka: CVE-2026-54894, GHSA-xqch-c77q-rgh537 Atom-table exhaustion denial of service in Guardian via unbounded atom creation from binary keys38 https://osv.dev/vulnerability/EEF-CVE-2026-548943940 EEF-CVE-2026-55735 (HIGH)41 aka: CVE-2026-55735, GHSA-7975-hp3r-5qhv42 Guardian.revoke/3 acts on unverified token claims, allowing forged-token session revocation43 https://osv.dev/vulnerability/EEF-CVE-2026-5573544 guardian_db 1.1.045 interactive_cmd 0.1.446 jose 1.11.1247 mime 2.0.748 nerves 2.0.0-pre.249 nerves_discovery 0.1.550 nerves_logging 0.2.451 nerves_runtime 0.13.1352 nerves_system_bbb 2.30.253 nerves_system_br 1.34.454 nerves_system_mangopi_mq_pro 0.17.255 nerves_system_qemu_aarch64 0.4.256 nerves_system_rpi0 2.1.257 nerves_system_rpi4 2.1.258 nerves_system_rpi5 2.1.259 nerves_system_trellis 0.5.060 nerves_system_x86_64 1.34.261 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.162 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.163 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.164 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.165 nerves_toolchain_x86_64_nerves_linux_musl 15.3.166 nerves_uevent 0.1.767 phoenix 1.3.5 VULNERABLE!68 GHSA-p8f7-22gq-m7j9 (HIGH)69 aka: CVE-2022-4297570 Phoenix before 1.6.14 mishandles check_origin wildcarding71 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j97273 EEF-CVE-2026-56812 (MEDIUM)74 aka: CVE-2026-56812, GHSA-63mc-hw7g-86rr75 Phoenix JavaScript presence client crashes on presence keys colliding with Object.prototype members in Presence.syncState/syncDiff76 https://osv.dev/vulnerability/EEF-CVE-2026-568127778 EEF-CVE-2026-56811 (HIGH)79 aka: CVE-2026-56811, GHSA-6983-jfq8-485w80 Phoenix transports do not limit channel joins per connection, enabling process-exhaustion denial of service81 https://osv.dev/vulnerability/EEF-CVE-2026-5681182 phoenix_ecto 3.6.083 phoenix_html 2.14.3 VULNERABLE!84 GHSA-5g2h-9x5v-5h3x (MEDIUM)85 aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q286 phoenix_html allows Cross-site Scripting in HEEx class attributes87 https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x88 phoenix_pubsub 1.1.289 plug 1.20.390 plug_crypto 2.2.091 poison 3.1.092 poolboy 1.5.293 postgrex 0.13.594 property_table 0.3.495 ranch 1.3.296 ring_logger 0.11.797 servicex 0.1.298 tablet 0.3.399 telemetry 1.4.2100 timex 3.7.13101 toolshed 0.5.0102 tzdata 1.2.2103 uboot_env 1.0.2104* Getting servicex (Hex package)105* Getting nerves (Hex package)106* Getting ring_logger (Hex package)107* Getting toolshed (Hex package)108* Getting nerves_runtime (Hex package)109* Getting nerves_system_bbb (Hex package)110* Getting nerves_system_mangopi_mq_pro (Hex package)111* Getting nerves_system_qemu_aarch64 (Hex package)112* Getting nerves_system_rpi0 (Hex package)113* Getting nerves_system_rpi4 (Hex package)114* Getting nerves_system_rpi5 (Hex package)115* Getting nerves_system_trellis (Hex package)116* Getting nerves_system_x86_64 (Hex package)117* Getting nerves_system_br (Hex package)118* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)119* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)120* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)121* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)122* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)123* Getting nerves_logging (Hex package)124* Getting nerves_uevent (Hex package)125* Getting uboot_env (Hex package)126* Getting elixir_make (Hex package)127* Getting property_table (Hex package)128* Getting circular_buffer (Hex package)129* Getting interactive_cmd (Hex package)130* Getting nerves_discovery (Hex package)131* Getting tablet (Hex package)132* Getting bcrypt_elixir (Hex package)133* Getting comeonin (Hex package)134* Getting cowboy (Hex package)135* Getting gettext (Hex package)136* Getting guardian (Hex package)137* Getting guardian_db (Hex package)138* Getting phoenix (Hex package)139* Getting phoenix_ecto (Hex package)140* Getting phoenix_html (Hex package)141* Getting phoenix_pubsub (Hex package)142* Getting poison (Hex package)143* Getting postgrex (Hex package)144* Getting timex (Hex package)145* Getting combine (Hex package)146* Getting tzdata (Hex package)147* Getting connection (Hex package)148* Getting db_connection (Hex package)149* Getting decimal (Hex package)150* Getting plug (Hex package)151* Getting mime (Hex package)152* Getting plug_crypto (Hex package)153* Getting telemetry (Hex package)154* Getting ecto (Hex package)155* Getting poolboy (Hex package)156* Getting jose (Hex package)157* Getting expo (Hex package)158* Getting cowlib (Hex package)159* Getting ranch (Hex package)160Found packages with security advisories, see above for details161 warning: String.strip/1 is deprecated. Use String.trim/1 instead162 │163 4 │ @version File.read!("VERSION") |> String.strip164 │ ~165 │166 └─ /work/proj/deps_x86_64/poison/mix.exs:4:44: Poison.Mixfile (module)167168 warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes169 │170 79 │ "test": ["ecto.drop", "ecto.create --quiet", "ecto.migrate", "run priv/repo/seeds.exs", "test"]171 │ ~172 │173 └─ /work/proj/deps_x86_64/servicex/mix.exs:79:7174175==> comeonin176Compiling 2 files (.ex)177Generated comeonin app178warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"179 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2180 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1181 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5182 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2183 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4184 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2185186==> phoenix187Compiling 75 files (.ex)188 warning: the variable "prefix" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator189 │190 170 │ <<attr::size(prefix)-binary, ":unique">> -> attr191 │ ~192 │193 └─ lib/mix/phoenix/schema.ex:170:20: Mix.Phoenix.Schema.drop_unique/1194195 warning: using single-quoted strings to represent charlists is deprecated.196 Use ~c"" if you indeed want a charlist or use "" instead.197 You may run "mix format --migrate" to change all single-quoted198 strings to use the ~c sigil and fix this warning.199 │200 310 │ :error_logger.warning_msg('~p ~p received unexpected message in handle_info/2: ~p~n',201 │ ~202 │203 └─ lib/phoenix/channel/server.ex:310:31204205 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead206 │207 39 │ Logger.warn "Phoenix is unable to create symlinks. Phoenix' code reloader will run " <>208 │ ~209 │210 └─ lib/phoenix/code_reloader/server.ex:39:20: Phoenix.CodeReloader.Server.handle_call/3211212 warning: unused require Logger213 │214 20 │ require Logger215 │ ~216 │217 └─ lib/phoenix/endpoint/handler.ex:20:3218219 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead220 │221 39 │ Logger.warn """222 │ ~223 │224 └─ lib/phoenix/endpoint/supervisor.ex:39:14: Phoenix.Endpoint.Supervisor.init/1225226 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 operator227 │228 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix229 │ ~230 │231 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2232233 warning: using single-quoted strings to represent charlists is deprecated.234 Use ~c"" if you indeed want a charlist or use "" instead.235 You may run "mix format --migrate" to change all single-quoted236 strings to use the ~c sigil and fix this warning.237 │238 315 │ @anno (if :erlang.system_info(:otp_release) >= '19' do239 │ ~240 │241 └─ lib/phoenix/router.ex:315:50242243 warning: using single-quoted strings to represent charlists is deprecated.244 Use ~c"" if you indeed want a charlist or use "" instead.245 You may run "mix format --migrate" to change all single-quoted246 strings to use the ~c sigil and fix this warning.247 │248 195 │ @anno (if :erlang.system_info(:otp_release) >= '19' do249 │ ~250 │251 └─ lib/phoenix/router/helpers.ex:195:50252253 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.254255 This error happens when you have function calls without parentheses inside keywords. For example:256257 function(arg, one: nested_call a, b, c)258 function(arg, one: if expr, do: :this, else: :that)259260 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:261262 function(arg, one: if(expr, do: :this, else: :that))263 function(arg, one: nested_call(a, b, c))264265 Ambiguity found at:266 │267 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """268 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~269 │270 └─ lib/phoenix/router/resource.ex:71271272 warning: duplicate key :route found in struct273 │274 24 │ defstruct [:path, :actions, :param, :route, :controller, :route, :member, :collection, :singleton]275 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~276 │277 └─ lib/phoenix/router/resource.ex:24: Phoenix.Router.Resource (module)278279 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead280 │281 885 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>282 │ ~283 │284 └─ lib/phoenix/controller.ex:885:14: Phoenix.Controller.warn_if_ajax/1285286 warning: invalid type annotation. The left side of :: must be a variable, got: {:ok, pid()} | {:error, reason :: term()}. Note "left | right :: ann" is the same as "(left | right) :: ann". To solve this, use parentheses around the union operands: "left | (right :: ann)"287 │288 110 │ @callback start_link(Keyword.t) :: {:ok, pid()} | {:error, reason :: term()} :: :ignore289 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~290 │291 └─ lib/phoenix/presence.ex:110: Phoenix.Presence (module)292293 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead294 │295 304 │ Logger.warn fn -> "Ignoring unmatched topic \"#{msg.topic}\" in #{inspect(socket.handler)}" end296 │ ~297 │298 └─ lib/phoenix/socket/transport.ex:304:12: Phoenix.Socket.Transport.reply_ignore/2299300 warning: using single-quoted strings to represent charlists is deprecated.301 Use ~c"" if you indeed want a charlist or use "" instead.302 You may run "mix format --migrate" to change all single-quoted303 strings to use the ~c sigil and fix this warning.304 │305 174 │ @anno (if :erlang.system_info(:otp_release) >= '19' do306 │ ~307 │308 └─ lib/phoenix/template.ex:174:50309310 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead311 │312 227 │ Logger.warn ":max_age was not set on Phoenix.Token.verify/4. " <>313 │ ~314 │315 └─ lib/phoenix/token.ex:227:12: Phoenix.Token.expired?/2316317 warning: expected a module (an atom) when invoking config/1 in expression:318319 endpoint.config(:endpoint_id)320321 where "endpoint" was given the type:322323 # type: dynamic(%{..., __pubsub_server__: atom()})324 # from: lib/phoenix/transports/long_poll.ex:199:10325 verify_token(endpoint, token, opts)326327 type warning found at:328 │329 201 │ server_ref = server_ref(endpoint.config(:endpoint_id), id, pid, priv_topic)330 │ ~331 │332 └─ lib/phoenix/transports/long_poll.ex:201:42: Phoenix.Transports.LongPoll.resume_session/3333334 warning: unknown key .__pubsub_server__ in expression:335336 endpoint.__pubsub_server__337338 the given type does not have the given key:339340 dynamic(341 %Phoenix.Socket{342 id: term(),343 assigns: term(),344 channel: term(),345 channel_pid: term(),346 endpoint: atom(),347 handler: term(),348 joined: term(),349 pubsub_server: term(),350 ref: term(),351 join_ref: term(),352 topic: term(),353 transport: term(),354 transport_pid: term(),355 transport_name: term(),356 serializer: term(),357 private: term(),358 vsn: term()359 } or360 %Plug.Conn{361 adapter: term(),362 assigns: term(),363 body_params: term(),364 cookies: term(),365 halted: term(),366 host: term(),367 method: term(),368 owner: term(),369 params: term(),370 path_info: term(),371 path_params: term(),372 port: term(),373 private: term(),374 query_params: term(),375 query_string: term(),376 remote_ip: term(),377 req_cookies: term(),378 req_headers: term(),379 request_path: term(),380 resp_body: term(),381 resp_cookies: term(),382 resp_headers: term(),383 scheme: term(),384 script_name: term(),385 secret_key_base: term(),386 state: term(),387 status: term()388 } or atom() or binary()389 )390391 where "endpoint" was given the type:392393 # type: dynamic(%Phoenix.Socket{endpoint: atom()} or %Plug.Conn{} or atom() or binary())394 # from: lib/phoenix/transports/long_poll.ex:254:19395 Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])396397 type warning found at:398 │399 254 │ Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])400 │ ~~~~~~~~~~~~~~~~~401 │402 └─ lib/phoenix/transports/long_poll.ex:254:58: Phoenix.Transports.LongPoll.sign_token/3403404 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead405 │406 12 │ worker(Phoenix.Transports.LongPoll.Server, [], restart: :temporary)407 │ ~408 │409 └─ lib/phoenix/transports/long_poll_server.ex:12:7: Phoenix.Transports.LongPoll.Supervisor.init/1410411 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead412 │413 14 │ supervise(children, strategy: :simple_one_for_one)414 │ ~415 │416 └─ lib/phoenix/transports/long_poll_server.ex:14:5: Phoenix.Transports.LongPoll.Supervisor.init/1417418 warning: @behaviour :cowboy_websocket_handler does not exist (in module Phoenix.Endpoint.CowboyWebSocket)419 │420 1 │ defmodule Phoenix.Endpoint.CowboyWebSocket do421 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~422 │423 └─ lib/phoenix/endpoint/cowboy_websocket.ex:1: Phoenix.Endpoint.CowboyWebSocket (module)424425 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead426 │427 647 │ exception -> {:error, {exception, System.stacktrace()}}428 │ ~429 │430 └─ lib/phoenix/test/conn_test.ex:647:48: Phoenix.ConnTest.wrap_request/1431432 warning: Plug.Adapters.Cowboy.Conn.conn/2 is undefined (module Plug.Adapters.Cowboy.Conn is not available or is yet to be defined)433 │434 10 │ conn = @connection.conn(req, transport)435 │ ~436 │437 └─ lib/phoenix/endpoint/cowboy_websocket.ex:10:24: Phoenix.Endpoint.CowboyWebSocket.init/3438439 warning: :cowboy_req.compact/1 is undefined (module :cowboy_req is not available or is yet to be defined)440 │441 73 │ {:ok, :cowboy_req.compact(req), {handler, state}, timeout}442 │ ~443 │444 └─ lib/phoenix/endpoint/cowboy_websocket.ex:73:23: Phoenix.Endpoint.CowboyWebSocket.websocket_init/3445446 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead447 │448 23 │ {:upgrade, :protocol, __MODULE__, req, {:error, mfa, kind, reason, System.stacktrace}}449 │ ~450 │451 └─ lib/phoenix/endpoint/cowboy_websocket.ex:23:83: Phoenix.Endpoint.CowboyWebSocket.init/3452453 warning: Plug.Crypto.safe_binary_to_term/1 is undefined or private454 │455 176 │ %{data: data, signed: signed} = Plug.Crypto.safe_binary_to_term(message)456 │ ~457 │458 └─ lib/phoenix/token.ex:176:53: Phoenix.Token.verify/4459460 warning: a struct for Plug.Conn is expected on struct update:461462 %Plug.Conn{conn | state: :sent}463464 but got type:465466 dynamic()467468 where "conn" was given the type:469470 # type: dynamic()471 # from: lib/phoenix/endpoint/render_errors.ex:79:21472 conn473474 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"475476 type warning found at:477 │478 83 │ %Plug.Conn{conn | state: :sent}479 │ ~480 │481 └─ lib/phoenix/endpoint/render_errors.ex:83:9: Phoenix.Endpoint.RenderErrors.maybe_render/5482483 warning: a struct for Plug.Conn is expected on struct update:484485 %Plug.Conn{conn | query_params: %{}, params: %{}}486487 but got type:488489 dynamic(%{..., params: %Plug.Conn.Unfetched{}})490491 where "conn" was given the types:492493 # type: dynamic(%{..., params: term()})494 # from: lib/phoenix/endpoint/render_errors.ex:94:17495 conn.params496497 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})498 # from: lib/phoenix/endpoint/render_errors.ex:94:17499 conn.params500501 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"502503 type warning found at:504 │505 95 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}506 │ ~507 │508 └─ lib/phoenix/endpoint/render_errors.ex:95:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1509510 warning: a struct for Plug.Conn is expected on struct update:511512 %Plug.Conn{conn | query_params: %{}, params: params}513514 but got type:515516 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})517518 where "conn" was given the types:519520 # type: dynamic(%{..., params: term()})521 # from: lib/phoenix/endpoint/render_errors.ex:94:17522 conn.params523524 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})525 # from: lib/phoenix/endpoint/render_errors.ex:94:17526 conn.params527528 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"529530 type warning found at:531 │532 96 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}533 │ ~534 │535 └─ lib/phoenix/endpoint/render_errors.ex:96:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1536537 warning: a struct for Phoenix.Socket is expected on struct update:538539 %Phoenix.Socket{socket | id: id}540541 but got type:542543 dynamic()544545 where "socket" was given the type:546547 # type: dynamic()548 # from: lib/phoenix/socket/transport.ex549 {:ok, socket}550551 when defining the variable "socket", you must also pattern match on "%Phoenix.Socket{}"552553 type warning found at:554 │555 195 │ id when is_binary(id) -> {:ok, %Socket{socket | id: id}}556 │ ~557 │558 └─ lib/phoenix/socket/transport.ex:195:42: Phoenix.Socket.Transport.do_connect/7559560 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead561 │562 198 │ supervisor(Task.Supervisor, [[name: task_supervisor]]),563 │ ~564 │565 └─ lib/phoenix/presence.ex:198:7: Phoenix.Presence.start_link/4566567 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead568 │569 199 │ worker(Phoenix.Tracker, [module, opts, opts])570 │ ~571 │572 └─ lib/phoenix/presence.ex:199:7: Phoenix.Presence.start_link/4573574 warning: a struct for Plug.Conn is expected on struct update:575576 %Plug.Conn{conn | params: params}577578 but got type:579580 dynamic(%{..., params: map()})581582 where "conn" was given the type:583584 # type: dynamic(%{..., params: map()})585 # from: lib/phoenix/controller.ex:912:17586 Map.get(conn.params, required_key)587588 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"589590 type warning found at:591 │592 919 │ %Plug.Conn{conn | params: params}593 │ ~594 │595 └─ lib/phoenix/controller.ex:919:5: Phoenix.Controller.scrub_params/2596597 warning: a struct for Plug.Conn is expected on struct update:598599 %Plug.Conn{conn | path_info: path, script_name: script}600601 but got type:602603 dynamic()604605 where "conn" was given the type:606607 # type: dynamic()608 # from: lib/phoenix/router/route.ex:147:10609 conn = target.call(%Plug.Conn{...}, opts)610611 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"612613 type warning found at:614 │615 148 │ %Plug.Conn{conn | path_info: path, script_name: script}616 │ ~617 │618 └─ lib/phoenix/router/route.ex:148:5: Phoenix.Router.Route.forward/4619620 warning: expected a map or struct when accessing .url in expression:621622 endpoint.url623624 where "endpoint" was given the types:625626 # type: dynamic(atom())627 # from: lib/phoenix/router/helpers.ex:24:20628 endpoint629630 # type: atom()631 # from: lib/phoenix/router/helpers.ex:24:35632 is_atom(endpoint)633634 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()635636 type warning found at:637 │638 25 │ endpoint.url639 │ ~640 │641 └─ lib/phoenix/router/helpers.ex:25:14: Phoenix.Router.Helpers.url/2642643 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead644 │645 284 │ Phoenix.PlugError.reraise(piped_conn, :error, reason, System.stacktrace())646 │ ~647 │648 └─ lib/phoenix/router.ex:284:74: Phoenix.Router.__call__/1649650 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead651 │652 71 │ supervise(children, strategy: :one_for_one)653 │ ~654 │655 └─ lib/phoenix/endpoint/supervisor.ex:71:5: Phoenix.Endpoint.Supervisor.init/1656657 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead658 │659 76 │ [worker(Phoenix.Config, args)]660 │ ~661 │662 └─ lib/phoenix/endpoint/supervisor.ex:76:6: Phoenix.Endpoint.Supervisor.config_children/3663664 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead665 │666 84 │ [supervisor(adapter, [mod.__pubsub_server__(), pub_conf])]667 │ ~668 │669 └─ lib/phoenix/endpoint/supervisor.ex:84:8: Phoenix.Endpoint.Supervisor.pubsub_children/2670 └─ lib/phoenix/endpoint/supervisor.ex:96:8: Phoenix.Endpoint.Supervisor.server_children/3671 └─ lib/phoenix/endpoint/supervisor.ex:97:8: Phoenix.Endpoint.Supervisor.server_children/3672673 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead674 │675 106 │ worker(Phoenix.Endpoint.Watcher, watcher_args(cmd, args),676 │ ~677 │678 └─ lib/phoenix/endpoint/supervisor.ex:106:9: Phoenix.Endpoint.Supervisor.watcher_children/3679680 warning: expected a module (an atom) when invoking path/1 in expression:681682 endpoint.path("/")683684 where "endpoint" was given the type:685686 # type: dynamic(%{..., host: term()})687 # from: lib/phoenix/endpoint/supervisor.ex:312:14688 endpoint.host689690 type warning found at:691 │692 313 │ endpoint.path("/")693 │ ~694 │695 └─ lib/phoenix/endpoint/supervisor.ex:313:14: Phoenix.Endpoint.Supervisor.warmup/1696697 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead698 │699 35 │ supervise(children, strategy: :one_for_one)700 │ ~701 │702 └─ lib/phoenix/endpoint/handler.ex:35:5: Phoenix.Endpoint.Handler.init/1703704 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead705 │706 39 │ {config_keywords, config_other} = Enum.partition(config, &keyword_item?/1)707 │ ~708 │709 └─ lib/phoenix/endpoint/handler.ex:39:44: Phoenix.Endpoint.Handler.default/3710711 warning: Plug.Adapters.Cowboy.child_spec/4 is deprecated. Use Plug.Cowboy.child_spec/4 instead712 │713 81 │ Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)714 │ ~715 │716 └─ lib/phoenix/endpoint/cowboy_handler.ex:81:28: Phoenix.Endpoint.CowboyHandler.child_spec/3717718 warning: :ranch.get_addr/1 is undefined (module :ranch is not available or is yet to be defined)719 │720 113 │ {addr,port} = :ranch.get_addr(ref)721 │ ~722 │723 └─ lib/phoenix/endpoint/cowboy_handler.ex:113:26: Phoenix.Endpoint.CowboyHandler.info/3724725 warning: comparison between distinct types found:726727 !Path.extname(file_path) == ".gz"728729 given types:730731 dynamic(boolean()) == binary()732733 where "file_path" was given the type:734735 # type: dynamic(binary() or empty_list() or non_empty_list(term(), term()))736 # from: lib/phoenix/digester.ex:147:45737 Path.basename(file_path)738739 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 false740741 type warning found at:742 │743 148 │ !Path.extname(file_path) == ".gz"744 │ ~745 │746 └─ lib/phoenix/digester.ex:148:32: Phoenix.Digester.uncompressed_digested_file?/1747748 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead749 │750 51 │ worker(Phoenix.CodeReloader.Server, [])751 │ ~752 │753 └─ lib/phoenix.ex:51:7: Phoenix.start/2754755 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead756 │757 61 │ IO.puts Exception.format(kind, reason, System.stacktrace)758 │ ~759 │760 └─ lib/phoenix/code_reloader/server.ex:61:59: Phoenix.CodeReloader.Server.handle_call/3761762 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead763 │764 155 │ Enum.partition attrs, fn765 │ ~766 │767 └─ lib/mix/tasks/phoenix.gen.model.ex:155:10: Mix.Tasks.Phoenix.Gen.Model.partition_attrs_and_assocs/1768769 warning: expected a map or struct when accessing .__phoenix_recompile__? in expression:770771 mod.__phoenix_recompile__?772773 where "mod" was given the type:774775 # type: dynamic(atom())776 # from: lib/mix/tasks/compile.phoenix.ex:34:12777 Code.ensure_loaded?(mod)778779 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()780781 type warning found at:782 │783 36 │ mod.__phoenix_recompile__?784 │ ~785 │786 └─ lib/mix/tasks/compile.phoenix.ex:36:13: Mix.Tasks.Compile.Phoenix.modules_for_recompilation/1787788 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead789 │790 234 │ Enum.partition(attrs, fn791 │ ~792 │793 └─ lib/mix/phoenix/schema.ex:234:12: Mix.Phoenix.Schema.partition_attrs_and_assocs/2794795Generated phoenix app796warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"797 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2798 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1799 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5800 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2801 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4802 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2803804==> guardian805Compiling 20 files (.ex)806Generated guardian app807==> phoenix_html808Compiling 8 files (.ex)809 warning: using single-quoted strings to represent charlists is deprecated.810 Use ~c"" if you indeed want a charlist or use "" instead.811 You may run "mix format --migrate" to change all single-quoted812 strings to use the ~c sigil and fix this warning.813 │814 12 │ @anno (if :erlang.system_info(:otp_release) >= '19' do815 │ ~816 │817 └─ lib/phoenix_html/engine.ex:12:50818819 warning: the 1st pattern in clause will never match:820821 60822823 because it is expected to receive type:824825 dynamic(empty_list() or non_empty_list(term(), term()))826827 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())828829 type warning found at:830 │831 56 │ def to_iodata(?<), do: "<"832 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~833 │834 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1835836 warning: the 1st pattern in clause will never match:837838 62839840 because it is expected to receive type:841842 dynamic(empty_list() or non_empty_list(term(), term()))843844 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())845846 type warning found at:847 │848 57 │ def to_iodata(?>), do: ">"849 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~850 │851 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1852853 warning: the 1st pattern in clause will never match:854855 38856857 because it is expected to receive type:858859 dynamic(empty_list() or non_empty_list(term(), term()))860861 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())862863 type warning found at:864 │865 58 │ def to_iodata(?&), do: "&"866 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~867 │868 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1869870 warning: the 1st pattern in clause will never match:871872 34873874 because it is expected to receive type:875876 dynamic(empty_list() or non_empty_list(term(), term()))877878 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())879880 type warning found at:881 │882 59 │ def to_iodata(?"), do: """883 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~884 │885 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1886887 warning: the 1st pattern in clause will never match:888889 39890891 because it is expected to receive type:892893 dynamic(empty_list() or non_empty_list(term(), term()))894895 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())896897 type warning found at:898 │899 60 │ def to_iodata(?'), do: "'"900 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~901 │902 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1903904 warning: the 1st pattern in clause will never match:905906 {:safe, data}907908 because it is expected to receive type:909910 dynamic(empty_list() or non_empty_list(term(), term()))911912 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())913914 type warning found at:915 │916 76 │ def to_iodata({:safe, data}) do917 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~918 │919 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1920921 warning: the following clause is redundant:922923 def to_iodata(other)924925 it has type:926927 dynamic(empty_list() or non_empty_list(term(), term()))928929 previous clauses have already matched on the following types:930931 non_empty_list(term(), term())932 empty_list()933934 │935 80 │ def to_iodata(other) do936 │ ~937 │938 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1939940 warning: the 1st pattern in clause will never match:941942 h943944 because it is expected to receive type:945946 dynamic(empty_list() or non_empty_list(term(), term()))947948 where "h" was given the type:949950 # type: integer()951 # from: lib/phoenix_html/safe.ex:62:25952 is_integer(h)953954 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())955956 type warning found at:957 │958 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do959 │ ~960 │961 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1962963 warning: the 1st pattern in clause will never match:964965 h966967 because it is expected to receive type:968969 dynamic(empty_list() or non_empty_list(term(), term()))970971 where "h" was given the type:972973 # type: integer()974 # from: lib/phoenix_html/safe.ex:66:25975 is_integer(h)976977 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())978979 type warning found at:980 │981 66 │ def to_iodata(h) when is_integer(h) do982 │ ~983 │984 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1985986 warning: the 1st pattern in clause will never match:987988 h989990 because it is expected to receive type:991992 dynamic(empty_list() or non_empty_list(term(), term()))993994 where "h" was given the type:995996 # type: binary()997 # from: lib/phoenix_html/safe.ex:72:25998 is_binary(h)9991000 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())10011002 type warning found at:1003 │1004 72 │ def to_iodata(h) when is_binary(h) do1005 │ ~1006 │1007 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/110081009Generated phoenix_html app1010warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1011 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21012 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11013 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51014 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21015 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41016 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/210171018==> ecto1019Compiling 70 files (.ex)1020 warning: using single-quoted strings to represent charlists is deprecated.1021 Use ~c"" if you indeed want a charlist or use "" instead.1022 You may run "mix format --migrate" to change all single-quoted1023 strings to use the ~c sigil and fix this warning.1024 │1025 166 │ defp insert_all_value(_), do: '?'1026 │ ~1027 │1028 └─ lib/ecto/adapters/mysql/connection.ex:166:3710291030 warning: using single-quoted strings to represent charlists is deprecated.1031 Use ~c"" if you indeed want a charlist or use "" instead.1032 You may run "mix format --migrate" to change all single-quoted1033 strings to use the ~c sigil and fix this warning.1034 │1035 354 │ '?'1036 │ ~1037 │1038 └─ lib/ecto/adapters/mysql/connection.ex:354:710391040 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10411042 This error happens when you have function calls without parentheses inside keywords. For example:10431044 function(arg, one: nested_call a, b, c)1045 function(arg, one: if expr, do: :this, else: :that)10461047 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:10481049 function(arg, one: if(expr, do: :this, else: :that))1050 function(arg, one: nested_call(a, b, c))10511052 Ambiguity found at:1053 │1054 2286 │ raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"1055 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1056 │1057 └─ lib/ecto/changeset.ex:228610581059 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10601061 This error happens when you have function calls without parentheses inside keywords. For example:10621063 function(arg, one: nested_call a, b, c)1064 function(arg, one: if expr, do: :this, else: :that)10651066 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:10671068 function(arg, one: if(expr, do: :this, else: :that))1069 function(arg, one: nested_call(a, b, c))10701071 Ambiguity found at:1072 │1073 265 │ do: raise ArgumentError, "a constraint must have either a check or exclude option"1074 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1075 │1076 └─ lib/ecto/migration/runner.ex:26510771078 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10791080 This error happens when you have function calls without parentheses inside keywords. For example:10811082 function(arg, one: nested_call a, b, c)1083 function(arg, one: if expr, do: :this, else: :that)10841085 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:10861087 function(arg, one: if(expr, do: :this, else: :that))1088 function(arg, one: nested_call(a, b, c))10891090 Ambiguity found at:1091 │1092 267 │ do: raise ArgumentError, "a constraint must not have both check and exclude options"1093 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1094 │1095 └─ lib/ecto/migration/runner.ex:26710961097 warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity1098 │1099 136 │ {:::, _, [left, _]} -> is_integer(left) or is_binary(left)1100 │ ~1101 │1102 └─ lib/ecto/query/builder.ex:136:811031104 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)1105 │1106 643 │ def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime1107 │ ~~1108 │1109 └─ lib/ecto/query/builder.ex:643:45: Ecto.Query.Builder.quoted_type/211101111 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)1112 │1113 644 │ def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date1114 │ ~~1115 │1116 └─ lib/ecto/query/builder.ex:644:41: Ecto.Query.Builder.quoted_type/211171118 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.11191120 This error happens when you have function calls without parentheses inside keywords. For example:11211122 function(arg, one: nested_call a, b, c)1123 function(arg, one: if expr, do: :this, else: :that)11241125 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:11261127 function(arg, one: if(expr, do: :this, else: :that))1128 function(arg, one: nested_call(a, b, c))11291130 Ambiguity found at:1131 │1132 454 │ do: raise ArgumentError, "a changeset with action #{inspect given} was given to #{inspect repo}.#{action}/2"1133 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1134 │1135 └─ lib/ecto/repo/schema.ex:45411361137 warning: unused require Ecto.Query1138 │1139 6 │ require Ecto.Query1140 │ ~1141 │1142 └─ lib/ecto/repo/preloader.ex:6:311431144 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead1145 │1146 9 │ schema "schema_migrations" do1147 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1148 │1149 └─ lib/ecto/migration/schema_migration.ex:9: Ecto.Migration.SchemaMigration (module)11501151 warning: incompatible types given to Mix.Ecto.ensure_started/2:11521153 Mix.Ecto.ensure_started(repo, opts)11541155 given types:11561157 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))11581159 but expected one of:11601161 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())11621163 where "opts" was given the type:11641165 # type: dynamic(1166 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1167 non_struct_map()1168 )1169 # from: lib/mix/tasks/ecto.rollback.ex:64:101170 opts =1171 if opts[:quiet] do1172 Keyword.merge(opts, log: false, log_sql: false)1173 else1174 opts1175 end11761177 where "repo" was given the type:11781179 # type: dynamic(atom())1180 # from: lib/mix/tasks/ecto.rollback.ex:70:71181 Mix.Ecto.ensure_repo(repo, args)11821183 type warning found at:1184 │1185 72 │ {:ok, pid, apps} = ensure_started(repo, opts)1186 │ ~1187 │1188 └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/211891190 warning: incompatible types given to Mix.Ecto.ensure_started/2:11911192 Mix.Ecto.ensure_started(repo, all: true)11931194 given types:11951196 -dynamic(atom())-, non_empty_list({:all, true})11971198 but expected one of:11991200 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())12011202 where "repo" was given the type:12031204 # type: dynamic(atom())1205 # from: lib/mix/tasks/ecto.migrations.ex:37:71206 Mix.Ecto.ensure_repo(repo, args)12071208 type warning found at:1209 │1210 39 │ {:ok, pid, _} = ensure_started(repo, all: true)1211 │ ~1212 │1213 └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/312141215 warning: incompatible types given to Mix.Ecto.ensure_started/2:12161217 Mix.Ecto.ensure_started(repo, opts)12181219 given types:12201221 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))12221223 but expected one of:12241225 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())12261227 where "opts" was given the type:12281229 # type: dynamic(1230 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1231 non_struct_map()1232 )1233 # from: lib/mix/tasks/ecto.migrate.ex:68:101234 opts =1235 if opts[:quiet] do1236 Keyword.merge(opts, log: false, log_sql: false)1237 else1238 opts1239 end12401241 where "repo" was given the type:12421243 # type: dynamic(atom())1244 # from: lib/mix/tasks/ecto.migrate.ex:74:71245 Mix.Ecto.ensure_repo(repo, args)12461247 type warning found at:1248 │1249 76 │ {:ok, pid, apps} = ensure_started(repo, opts)1250 │ ~1251 │1252 └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/212531254 warning: incompatible types given to Mix.Ecto.source_repo_priv/1:12551256 Mix.Ecto.source_repo_priv(repo)12571258 given types:12591260 -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-12611262 but expected one of:12631264 atom()12651266 where "repo" was given the types:12671268 # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})1269 # from: lib/mix/tasks/ecto.load.ex:70:221270 Keyword.merge(repo.config, opts)12711272 # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})1273 # from: lib/mix/tasks/ecto.load.ex:72:271274 repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)12751276 type warning found at:1277 │1278 72 │ case repo.__adapter__.structure_load(source_repo_priv(repo), config) do1279 │ ~1280 │1281 └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/212821283 warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)1284 │1285 258 │ err in DBConnection.OwnershipError ->1286 │ ~1287 │1288 └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/612891290 warning: expected a map or struct when accessing .__adapter__ in expression:12911292 repo.__adapter__12931294 where "repo" was given the type:12951296 # type: dynamic(atom())1297 # from: lib/mix/tasks/ecto.load.ex:53:71298 Mix.Ecto.ensure_repo(repo, args)12991300 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13011302 type warning found at:1303 │1304 54 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,1305 │ ~1306 │1307 └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/113081309 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1310 │1311 260 │ reraise %{err | message: message}, System.stacktrace1312 │ ~1313 │1314 └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/613151316 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1317 │1318 2400 │ surround_many("#Ecto.Changeset<", list, ">", opts, fn1319 │ ~1320 │1321 └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/213221323 warning: expected a map or struct when accessing .__adapter__ in expression:13241325 repo.__adapter__13261327 where "repo" was given the type:13281329 # type: dynamic(atom())1330 # from: lib/mix/tasks/ecto.dump.ex:50:71331 Mix.Ecto.ensure_repo(repo, args)13321333 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13341335 type warning found at:1336 │1337 51 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,1338 │ ~1339 │1340 └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/113411342 warning: expected a map or struct when accessing .__adapter__ in expression:13431344 repo.__adapter__13451346 where "repo" was given the type:13471348 # type: dynamic(atom())1349 # from: lib/mix/tasks/ecto.drop.ex:39:71350 Mix.Ecto.ensure_repo(repo, args)13511352 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13531354 type warning found at:1355 │1356 40 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1357 │ ~1358 │1359 └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/113601361 warning: expected a map or struct when accessing .__adapter__ in expression:13621363 repo.__adapter__13641365 where "repo" was given the type:13661367 # type: dynamic(atom())1368 # from: lib/mix/tasks/ecto.create.ex:37:71369 Mix.Ecto.ensure_repo(repo, args)13701371 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13721373 type warning found at:1374 │1375 38 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1376 │ ~1377 │1378 └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/113791380 warning: Mix.Project.compile/1 is deprecated. Use Mix.Task.run("compile", args) instead1381 │1382 62 │ Mix.Project.compile(args)1383 │ ~1384 │1385 └─ lib/mix/ecto.ex:62:19: Mix.Ecto.ensure_repo/213861387 warning: expected a module (an atom) when invoking start_link/1 in expression:13881389 repo.start_link(pool_size: pool_size)13901391 where "pool_size" was given the type:13921393 # type: dynamic()1394 # from: lib/mix/ecto.ex:101:151395 pool_size = Keyword.get(opts, :pool_size, 1)13961397 where "repo" was given the type:13981399 # type: dynamic(%{..., __adapter__: atom()})1400 # from: lib/mix/ecto.ex:99:361401 repo.__adapter__.ensure_all_started(repo, :temporary)14021403 type warning found at:1404 │1405 102 │ case repo.start_link(pool_size: pool_size) do1406 │ ~1407 │1408 └─ lib/mix/ecto.ex:102:15: Mix.Ecto.ensure_started/214091410 warning: Logger.remove_backend/1 is deprecated. Use LoggerBackends.remove/2 from :logger_backends dependency1411 │1412 146 │ Logger.remove_backend(:console)1413 │ ~1414 │1415 └─ lib/mix/ecto.ex:146:12: Mix.Ecto.restart_apps_if_migrated/214161417 warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1418 │1419 155 │ Logger.add_backend(:console, flush: true)1420 │ ~1421 │1422 └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/214231424 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1425 │1426 856 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1427 │ ~1428 │1429 └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/21430 └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/214311432 warning: the following clause will never match:14331434 [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->14351436 because it attempts to match on the result of:14371438 System.stacktrace()14391440 which has type:14411442 empty_list()14431444 where "args_or_arity" was given the type:14451446 # type: float() or integer() or non_empty_list(term())1447 # from: lib/ecto/changeset.ex1448 (_() when args_or_arity == 2) when length(args_or_arity) == 214491450 where "module" was given the type:14511452 # type: dynamic()1453 # from: lib/ecto/changeset.ex:733:301454 module14551456 type warning found at:1457 │1458 741 │ ... when length(args_or_arity) == 2 ->1459 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1460 │1461 └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/214621463 warning: incompatible types given to get_source/1:14641465 get_source(repo)14661467 given types:14681469 -dynamic(atom())-14701471 but expected one of:14721473 %{..., config: empty_list() or non_empty_list(term(), term())}14741475 where "repo" was given the type:14761477 # type: dynamic(atom())1478 # from: lib/ecto/migration/schema_migration.ex:24:131479 repo.all(1480 Map.put(1481 (1482 query =1483 (1484 query = {get_source(repo), Ecto.Migration.SchemaMigration}1485 Ecto.Query.Builder.From.apply(query, 1)1486 )1487 1488 Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{1489 ...,1490 expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1491 file: "/work/proj/deps_x86_64/ecto/lib/ecto/migration/schema_migration.ex",1492 line: 22,1493 take: %{}1494 })1495 ),1496 :prefix,1497 prefix1498 ), timeout: :infinity, log: false)14991500 type warning found at:1501 │1502 22 │ from(p in {get_source(repo), __MODULE__}, select: p.version)1503 │ ~1504 │1505 └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/215061507 warning: incompatible types given to get_source/1:15081509 get_source(repo)15101511 given types:15121513 -dynamic(atom())-15141515 but expected one of:15161517 %{..., config: empty_list() or non_empty_list(term(), term())}15181519 where "repo" was given the type:15201521 # type: dynamic(atom())1522 # from: lib/ecto/migration/schema_migration.ex:30:131523 repo.insert!(1524 Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1525 prefix: prefix,1526 source: get_source(repo)1527 ), timeout: :infinity, log: false)15281529 type warning found at:1530 │1531 29 │ |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1532 │ ~1533 │1534 └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/315351536 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1537 │1538 739 │ case System.stacktrace do1539 │ ~1540 │1541 └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/215421543 warning: incompatible types given to get_source/1:15441545 get_source(repo)15461547 given types:15481549 -dynamic(atom())-15501551 but expected one of:15521553 %{..., config: empty_list() or non_empty_list(term(), term())}15541555 where "repo" was given the type:15561557 # type: dynamic(atom())1558 # from: lib/ecto/migration/schema_migration.ex:36:131559 repo.delete_all(1560 Map.put(1561 (1562 query =1563 (1564 query = {get_source(repo), Ecto.Migration.SchemaMigration}1565 Ecto.Query.Builder.From.apply(query, 1)1566 )1567 1568 Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1569 expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1570 op: :and,1571 params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1572 file: "/work/proj/deps_x86_64/ecto/lib/ecto/migration/schema_migration.ex",1573 line: 341574 })1575 ),1576 :prefix,1577 prefix1578 ), timeout: :infinity, log: false)15791580 type warning found at:1581 │1582 34 │ from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1583 │ ~1584 │1585 └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/315861587 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1588 │1589 715 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1590 │ ~1591 │1592 └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/215931594 warning: the following conditional expression:15951596 is_atom(related)15971598 will always evaluate to:15991600 dynamic(true)16011602 where "related" was given the type:16031604 # type: dynamic(atom())1605 # from: lib/ecto/association.ex:730:151606 related = Ecto.Association.related_from_query(queryable)16071608 type warning found at:1609 │1610 732 │ unless is_atom(related) do1611 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1612 │1613 └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/316141615 warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)1616 │1617 1422 │ defp type_to_module(:naive_datetime), do: NaiveDateTime1618 │ ~1619 │1620 └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/116211622 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1623 │1624 430 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1625 │ ~1626 │1627 └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/216281629 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1630 │1631 1885 │ if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do1632 │ ~1633 │1634 └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/316351636 warning: the following clause will never match:16371638 {:error, _} = error ->16391640 because it attempts to match on the result of:16411642 apply(changeset, adapter, :insert, args)16431644 which has type:16451646 dynamic({:invalid or :ok, term()})16471648 type warning found at:1649 │1650 219 │ {:error, _} = error ->1651 │ ~1652 │1653 └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/416541655 warning: the following clause will never match:16561657 {:error, _} = error ->16581659 because it attempts to match on the result of:16601661 apply(changeset, adapter, action, args)16621663 which has type:16641665 dynamic({:invalid or :ok, term()})16661667 type warning found at:1668 │1669 297 │ {:error, _} = error ->1670 │ ~1671 │1672 └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/416731674 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1675 │1676 29 │ surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)1677 │ ~1678 │1679 └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/216801681 warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead1682 │1683 144 │ Macro.to_string(expr, &expr_to_string(&1, &2, names, part))1684 │ ~1685 │1686 └─ lib/ecto/query/inspect.ex:144:11: Inspect.Ecto.Query.expr/316871688 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1689 │1690 54 │ filter_and_reraise e, System.stacktrace1691 │ ~1692 │1693 └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/516941695 warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead1696 │1697 44 │ index = Map.size(params)1698 │ ~1699 │1700 └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/51701 └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/517021703 warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead1704 │1705 614 │ Decimal.minus(decimal)1706 │ ~1707 │1708 └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/117091710 warning: BadStructError.exception/1 is undefined (module BadStructError is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)1711 │1712 228 │ raise BadStructError, struct: struct, term: data1713 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1714 │1715 └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/517161717 warning: the following clause will never match:17181719 {:error, _} ->17201721 because it attempts to match on the result of:17221723 NaiveDateTime.new(date, time)17241725 which has type:17261727 dynamic({:ok, %NaiveDateTime{}})17281729 type warning found at:1730 │1731 803 │ {:error, _} -> :error1732 │ ~~~~~~~~~~~~~~~~~~~~~1733 │1734 └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/117351736 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1737 │1738 159 │ supervise(children, strategy: :one_for_one)1739 │ ~1740 │1741 └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/117421743 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1744 │1745 214 │ filter_and_reraise e, System.stacktrace1746 │ ~1747 │1748 └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41749 └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/417501751 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1752 │1753 15 │ surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)1754 │ ~1755 │1756 └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/217571758 warning: expected a map or struct when accessing .__struct__ in expression:17591760 schema.__struct__17611762 where "schema" was given the types:17631764 # type: dynamic(atom() and not nil)1765 # from: lib/ecto/query/planner.ex:1186:411766 schema17671768 # type: atom()1769 # from: lib/ecto/query/planner.ex:1186:611770 is_atom(schema)17711772 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()17731774 type warning found at:1775 │1776 1190 │ Map.has_key?(schema.__struct__, field) ->1777 │ ~1778 │1779 └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/617801781 warning: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:17821783 Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])17841785 given types:17861787 (1788 -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,1789 dynamic()1790 )17911792 but expected one of:17931794 atom(), term()17951796 where "opts" was given the type:17971798 # type: dynamic(1799 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1800 non_struct_map()1801 )1802 # from: lib/ecto/migrator.ex:44:651803 opts[:prefix]18041805 where "repo" was given the type:18061807 # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})1808 # from: lib/ecto/migrator.ex:44:231809 Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])18101811 type warning found at:1812 │1813 45 │ SchemaMigration.migrated_versions(repo, opts[:prefix])1814 │ ~1815 │1816 └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/218171818 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1819 │1820 12 │ worker(Ecto.Migration.Runner, [], restart: :temporary)1821 │ ~1822 │1823 └─ lib/ecto/migration/supervisor.ex:12:7: Ecto.Migration.Supervisor.init/118241825 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1826 │1827 15 │ supervise(children, strategy: :simple_one_for_one)1828 │ ~1829 │1830 └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/118311832 warning: expected a module (an atom) when invoking transaction/2 in expression:18331834 repo.transaction(fun, log: false, timeout: :infinity)18351836 where "fun" was given the type:18371838 # type: dynamic()1839 # from: lib/ecto/migrator.ex:114:471840 fun18411842 where "repo" was given the types:18431844 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: term()}})1845 # from: lib/ecto/migrator.ex:118:241846 repo.__adapter__.supports_ddl_transaction?18471848 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: not false and not nil}})1849 # from: lib/ecto/migrator.ex:118:241850 repo.__adapter__.supports_ddl_transaction?18511852 type warning found at:1853 │1854 119 │ repo.transaction(fun, [log: false, timeout: :infinity])1855 │ ~1856 │1857 └─ lib/ecto/migrator.ex:119:14: Ecto.Migrator.run_maybe_in_transaction/318581859 warning: Code.load_file/1 is deprecated. Use Code.require_file/2 or Code.compile_file/2 instead1860 │1861 291 │ modules = Code.load_file(file)1862 │ ~1863 │1864 └─ lib/ecto/migrator.ex:291:20: Ecto.Migrator.extract_module/218651866 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1867 │1868 321 │ reraise error, System.stacktrace1869 │ ~1870 │1871 └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/318721873 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1874 │1875 10 │ worker(Ecto.Registry, []),1876 │ ~1877 │1878 └─ lib/ecto/application.ex:10:7: Ecto.Application.start/218791880 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1881 │1882 11 │ supervisor(Ecto.Migration.Supervisor, [])1883 │ ~1884 │1885 └─ lib/ecto/application.ex:11:7: Ecto.Application.start/218861887Generated ecto app1888==> guardian_db1889Compiling 5 files (.ex)1890 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead1891 │1892 111 │ config = Application.get_env(:guardian, Guardian.DB, [])1893 │ ~1894 │1895 └─ lib/guardian/db.ex:111:24: Guardian.DB (module)18961897 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead1898 │1899 15 │ schema "virtual: token" do1900 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1901 │1902 └─ lib/guardian/db/token.ex:15: Guardian.DB.Token (module)190319041905== Compilation error in file lib/guardian/db.ex ==1906** (RuntimeError) Guardian.DB configuration is required1907 lib/guardian/db.ex:114: (module)1908could not compile dependency :guardian_db, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile guardian_db --force", update it with "mix deps.update guardian_db" or clean it with "mix deps.clean guardian_db"