Build log
nerves_system_trellis
mppm 0.1.1 · fail · run mppm-0.1.1-1791006358568
2471 of 2471 lines
1Resolving Hex dependencies...2Resolution completed in 0.453s3Unchanged:4 certifi 2.15.05 circular_buffer 1.1.06 cowboy 2.19.07 cowboy_telemetry 0.3.18 cowlib 2.20.0 VULNERABLE!9 EEF-CVE-2026-43966 (MEDIUM)10 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c11 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/212 https://osv.dev/vulnerability/EEF-CVE-2026-439661314 EEF-CVE-2026-43969 (LOW)15 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5616 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/117 https://osv.dev/vulnerability/EEF-CVE-2026-4396918 db_connection 2.10.219 decimal 3.1.120 ecto 3.14.221 ecto_network 1.3.022 ecto_sql 3.14.023 elixir_make 0.10.024 erlsom 1.5.225 expo 1.1.126 gettext 0.26.227 hackney 1.25.0 VULNERABLE!28 EEF-CVE-2026-47071 (HIGH)29 aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr30 SOCKS5 TLS upgrade ignores caller timeout in hackney31 https://osv.dev/vulnerability/EEF-CVE-2026-470713233 EEF-CVE-2026-47076 (MEDIUM)34 aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq35 SSRF allowlist bypass via percent-encoded host in hackney36 https://osv.dev/vulnerability/EEF-CVE-2026-470763738 EEF-CVE-2026-47069 (LOW)39 aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw240 CRLF injection in cookie domain/path options in hackney41 https://osv.dev/vulnerability/EEF-CVE-2026-470694243 EEF-CVE-2026-47075 (MEDIUM)44 aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf45 CR/LF injection in query parameter in hackney46 https://osv.dev/vulnerability/EEF-CVE-2026-4707547 httpoison 1.8.248 idna 6.1.149 interactive_cmd 0.1.450 jason 1.4.551 logger_file_backend 0.0.1452 metrics 1.0.153 mime 2.0.754 mimerl 1.5.055 mppm 0.1.156 nerves 2.0.0-pre.257 nerves_discovery 0.1.558 nerves_logging 0.2.459 nerves_runtime 0.13.1360 nerves_system_bbb 2.30.261 nerves_system_br 1.34.462 nerves_system_mangopi_mq_pro 0.17.263 nerves_system_qemu_aarch64 0.4.264 nerves_system_rpi0 2.1.265 nerves_system_rpi4 2.1.266 nerves_system_rpi5 2.1.267 nerves_system_trellis 0.5.068 nerves_system_x86_64 1.34.269 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.170 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.171 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.172 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.173 nerves_toolchain_x86_64_nerves_linux_musl 15.3.174 nerves_uevent 0.1.775 oauth2 2.1.176 observer_cli 1.8.877 parse_trans 3.4.178 phoenix 1.5.15 VULNERABLE!79 GHSA-p8f7-22gq-m7j9 (HIGH)80 aka: CVE-2022-4297581 Phoenix before 1.6.14 mishandles check_origin wildcarding82 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j983 phoenix_ecto 4.7.084 phoenix_html 2.14.3 VULNERABLE!85 GHSA-5g2h-9x5v-5h3x (MEDIUM)86 aka: CVE-2021-46871, GHSA-j3gg-r6gp-95q287 phoenix_html allows Cross-site Scripting in HEEx class attributes88 https://osv.dev/vulnerability/GHSA-5g2h-9x5v-5h3x89 phoenix_live_dashboard 0.4.090 phoenix_live_view 0.15.7 VULNERABLE!91 EEF-CVE-2026-64941 (LOW)92 aka: CVE-2026-64941, GHSA-36m4-rm57-3prf93 Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR94 https://osv.dev/vulnerability/EEF-CVE-2026-6494195 phoenix_pubsub 2.3.096 plug 1.20.397 plug_cowboy 2.9.098 plug_crypto 1.2.599 postgrex 0.22.4100 property_table 0.3.4101 ranch 2.3.0102 recon 2.5.6103 ring_logger 0.11.7104 slugify 1.3.1105 ssl_verify_fun 1.1.7106 tablet 0.3.3107 telemetry 0.4.3108 telemetry_metrics 0.6.2109 tesla 1.21.3110 toolshed 0.5.0111 uboot_env 1.0.2112 unicode_util_compat 0.7.1113 xmlrpc 1.5.0114* Getting mppm (Hex package)115* Getting nerves (Hex package)116* Getting ring_logger (Hex package)117* Getting toolshed (Hex package)118* Getting nerves_runtime (Hex package)119* Getting nerves_system_bbb (Hex package)120* Getting nerves_system_mangopi_mq_pro (Hex package)121* Getting nerves_system_qemu_aarch64 (Hex package)122* Getting nerves_system_rpi0 (Hex package)123* Getting nerves_system_rpi4 (Hex package)124* Getting nerves_system_rpi5 (Hex package)125* Getting nerves_system_trellis (Hex package)126* Getting nerves_system_x86_64 (Hex package)127* Getting nerves_system_br (Hex package)128* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)129* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)130* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)131* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)132* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)133* Getting nerves_logging (Hex package)134* Getting nerves_uevent (Hex package)135* Getting uboot_env (Hex package)136* Getting elixir_make (Hex package)137* Getting property_table (Hex package)138* Getting circular_buffer (Hex package)139* Getting interactive_cmd (Hex package)140* Getting nerves_discovery (Hex package)141* Getting tablet (Hex package)142* Getting ecto_network (Hex package)143* Getting ecto_sql (Hex package)144* Getting gettext (Hex package)145* Getting httpoison (Hex package)146* Getting jason (Hex package)147* Getting logger_file_backend (Hex package)148* Getting oauth2 (Hex package)149* Getting observer_cli (Hex package)150* Getting phoenix (Hex package)151* Getting phoenix_ecto (Hex package)152* Getting phoenix_html (Hex package)153* Getting phoenix_live_dashboard (Hex package)154* Getting phoenix_live_view (Hex package)155* Getting phoenix_pubsub (Hex package)156* Getting plug_cowboy (Hex package)157* Getting postgrex (Hex package)158* Getting slugify (Hex package)159* Getting xmlrpc (Hex package)160* Getting decimal (Hex package)161* Getting erlsom (Hex package)162* Getting db_connection (Hex package)163* Getting telemetry (Hex package)164* Getting cowboy (Hex package)165* Getting cowboy_telemetry (Hex package)166* Getting plug (Hex package)167* Getting mime (Hex package)168* Getting plug_crypto (Hex package)169* Getting cowlib (Hex package)170* Getting ranch (Hex package)171* Getting telemetry_metrics (Hex package)172* Getting ecto (Hex package)173* Getting recon (Hex package)174* Getting tesla (Hex package)175* Getting hackney (Hex package)176* Getting certifi (Hex package)177* Getting idna (Hex package)178* Getting metrics (Hex package)179* Getting mimerl (Hex package)180* Getting parse_trans (Hex package)181* Getting ssl_verify_fun (Hex package)182* Getting unicode_util_compat (Hex package)183* Getting expo (Hex package)184Found packages with security advisories, see above for details185You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more186==> nerves_system_br187Generated nerves_system_br app188==> mime189Compiling 1 file (.ex)190Generated mime app191==> circular_buffer192Compiling 1 file (.ex)193Generated circular_buffer app194==> nerves_compatibility_test195===> Analyzing applications...196===> Compiling erlsom197 ┌─ src/erlsom_sax_utf16be.erl:198 │199 1063 │ case catch list_to_integer(Tail1) of200 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.201Compile directive 'nowarn_deprecated_catch' can be used to suppress202warnings in selected modules.203204205 ┌─ src/erlsom_sax_latin1.erl:206 │207 1063 │ case catch list_to_integer(Tail1) of208 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.209Compile directive 'nowarn_deprecated_catch' can be used to suppress210warnings in selected modules.211212213 ┌─ src/erlsom_compile.erl:214 │215 250 │ case catch transform(ParsedXsd, Acc) of216 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.217Compile directive 'nowarn_deprecated_catch' can be used to suppress218warnings in selected modules.219220 ┌─ src/erlsom_compile.erl:221 │222 254 │ case catch erlsom_pass2:secondPass(IntermediateResult#p1acc.tps,223 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.224Compile directive 'nowarn_deprecated_catch' can be used to suppress225warnings in selected modules.226227228 ┌─ src/erlsom_sax_utf8.erl:229 │230 1063 │ case catch list_to_integer(Tail1) of231 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.232Compile directive 'nowarn_deprecated_catch' can be used to suppress233warnings in selected modules.234235236 ┌─ src/erlsom.erl:237 │238 143 │ case catch erlsom_compile:compile(Xsd, Options) of239 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.240Compile directive 'nowarn_deprecated_catch' can be used to suppress241warnings in selected modules.242243 ┌─ src/erlsom.erl:244 │245 245 │ case catch erlsom_sax:parseDocument(Xml, State,246 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.247Compile directive 'nowarn_deprecated_catch' can be used to suppress248warnings in selected modules.249250251 ┌─ src/erlsom_sax_latin9.erl:252 │253 1063 │ case catch list_to_integer(Tail1) of254 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.255Compile directive 'nowarn_deprecated_catch' can be used to suppress256warnings in selected modules.257258259 ┌─ src/erlsom_sax_utf16le.erl:260 │261 1063 │ case catch list_to_integer(Tail1) of262 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.263Compile directive 'nowarn_deprecated_catch' can be used to suppress264warnings in selected modules.265266267 ┌─ src/erlsom_sax_list.erl:268 │269 1063 │ case catch list_to_integer(Tail1) of270 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.271Compile directive 'nowarn_deprecated_catch' can be used to suppress272warnings in selected modules.273274275==> recon276Compiling 6 files (.erl)277Generated recon app278==> plug_crypto279Compiling 5 files (.ex)280Generated plug_crypto app281==> nerves_compatibility_test282===> Analyzing applications...283===> Compiling mimerl284===> Analyzing applications...285===> Compiling ranch286==> ssl_verify_fun287Compiling 7 files (.erl)288Generated ssl_verify_fun app289==> observer_cli290Compiling 17 files (.erl)291Generated observer_cli app292==> tablet293Compiling 2 files (.ex)294Generated tablet app295==> elixir_make296Compiling 8 files (.ex)297Generated elixir_make app298==> nerves_logging299 CC kmsg_tailer.o300 LD kmsg_tailer301Compiling 5 files (.ex)302Generated nerves_logging app303==> nerves_compatibility_test304===> Analyzing applications...305===> Compiling cowlib306==> logger_file_backend307Compiling 1 file (.ex)308Generated logger_file_backend app309==> nerves_discovery310Compiling 5 files (.ex)311Generated nerves_discovery app312==> ring_logger313Compiling 7 files (.ex)314Generated ring_logger app315==> decimal316Compiling 4 files (.ex)317Generated decimal app318==> jason319Compiling 10 files (.ex)320Generated jason app321==> interactive_cmd322Compiling 1 file (.ex)323Generated interactive_cmd app324==> nerves325Compiling 65 files (.ex)326 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)327 │328 6 │ defmodule Mix.Tasks.Nerves.Init do329 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~330 │331 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)332333 warning: redefining module Nerves (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.beam)334 │335 6 │ defmodule Nerves do336 │ ~~~~~~~~~~~~~~~~~~~337 │338 └─ lib/nerves.ex:6: Nerves (module)339340 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)341 │342 5 │ defmodule Nerves.ArtifactResolver do343 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~344 │345 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)346347 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)348 │349 6 │ defmodule Nerves.BuildAction.AppModes do350 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~351 │352 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)353354 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)355 │356 5 │ defmodule Nerves.BuildAction.CheckExecutables do357 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~358 │359 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)360361 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)362 │363 8 │ defmodule Nerves.BuildAction.Erlinit do364 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~365 │366 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)367368 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)369 │370 5 │ defmodule Nerves.BuildAction.Firmware do371 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~372 │373 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)374375 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)376 │377 7 │ defmodule Nerves.BuildAction.IExStartupCheck do378 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~379 │380 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)381382 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)383 │384 5 │ defmodule Nerves.BuildAction.NervesV1System do385 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~386 │387 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)388389 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)390 │391 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do392 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~393 │394 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)395396 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)397 │398 5 │ defmodule Nerves.BuildAction.Rootfs do399 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~400 │401 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)402403 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)404 │405 6 │ defmodule Nerves.BuildAction.SortApps do406 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~407 │408 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)409410 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)411 │412 5 │ defmodule Nerves.BuildAction.StripAll do413 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~414 │415 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)416417 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)418 │419 5 │ defmodule Nerves.BuildAction.Trimmer do420 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~421 │422 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)423424 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)425 │426 5 │ defmodule Nerves.BuildPlan do427 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~428 │429 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)430431 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)432 │433 5 │ defmodule Nerves.BuildPlan.Checks do434 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~435 │436 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)437438 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Container.beam)439 │440 6 │ defmodule Nerves.Container do441 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~442 │443 └─ lib/nerves/container.ex:6: Nerves.Container (module)444445 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)446 │447 5 │ defmodule Nerves.Fingerprint do448 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~449 │450 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)451452 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)453 │454 5 │ defmodule Nerves.MixPackage do455 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~456 │457 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)458459 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Paths.beam)460 │461 5 │ defmodule Nerves.Paths do462 │ ~~~~~~~~~~~~~~~~~~~~~~~~~463 │464 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)465466 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)467 │468 5 │ defmodule Nerves.TargetTuple do469 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~470 │471 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)472473Generated nerves app474==> nerves_toolchain_armv7_nerves_linux_gnueabihf475Compiling 1 file (.ex)476Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app477==> nerves_system_trellis478Generated nerves_system_trellis app479==> nerves_compatibility_test480===> Analyzing applications...481===> Compiling unicode_util_compat482===> Analyzing applications...483===> Compiling idna484===> Analyzing applications...485===> Compiling telemetry486==> db_connection487Compiling 18 files (.ex)488Generated db_connection app489==> telemetry_metrics490Compiling 7 files (.ex)491 warning: unused require Logger492 │493 391 │ require Logger494 │ ~495 │496 └─ lib/telemetry_metrics.ex:391:3497498Generated telemetry_metrics app499==> ecto500Compiling 56 files (.ex)501Generated ecto app502==> xmlrpc503Compiling 5 files (.ex)504Generated xmlrpc app505==> nerves_compatibility_test506===> Analyzing applications...507===> Compiling cowboy508==> expo509Compiling 2 files (.erl)510Compiling 22 files (.ex)511Generated expo app512==> gettext513Compiling 18 files (.ex)514 warning: unused require Gettext.Macros515 │516 594 │ require Gettext.Macros517 │ ~518 │519 └─ lib/gettext.ex:594:3520521 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead522 │523 426 │ Kernel.ParallelCompiler.async(fn ->524 │ ~525 │526 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3527528 warning: the following clause is redundant:529530 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)531532 it has type:533534 dynamic(%Expo.Message.Plural{})535536 previous clauses have already matched on the following types:537538 %Expo.Message.Singular{}539 %Expo.Message.Plural{}540541 │542 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do543 │ ~544 │545 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1546547Generated gettext app548==> phoenix_pubsub549Compiling 12 files (.ex)550Generated phoenix_pubsub app551==> slugify552Compiling 1 file (.ex)553Generated slugify app554==> nerves_compatibility_test555===> Analyzing applications...556===> Compiling certifi557==> plug558Compiling 1 file (.erl)559Compiling 42 files (.ex)560Generated plug app561==> phoenix_html562Compiling 8 files (.ex)563 warning: using single-quoted strings to represent charlists is deprecated.564 Use ~c"" if you indeed want a charlist or use "" instead.565 You may run "mix format --migrate" to change all single-quoted566 strings to use the ~c sigil and fix this warning.567 │568 12 │ @anno (if :erlang.system_info(:otp_release) >= '19' do569 │ ~570 │571 └─ lib/phoenix_html/engine.ex:12:50572573 warning: the 1st pattern in clause will never match:574575 60576577 because it is expected to receive type:578579 dynamic(empty_list() or non_empty_list(term(), term()))580581 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())582583 type warning found at:584 │585 56 │ def to_iodata(?<), do: "<"586 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~587 │588 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1589590 warning: the 1st pattern in clause will never match:591592 62593594 because it is expected to receive type:595596 dynamic(empty_list() or non_empty_list(term(), term()))597598 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())599600 type warning found at:601 │602 57 │ def to_iodata(?>), do: ">"603 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~604 │605 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1606607 warning: the 1st pattern in clause will never match:608609 38610611 because it is expected to receive type:612613 dynamic(empty_list() or non_empty_list(term(), term()))614615 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())616617 type warning found at:618 │619 58 │ def to_iodata(?&), do: "&"620 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~621 │622 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1623624 warning: the 1st pattern in clause will never match:625626 34627628 because it is expected to receive type:629630 dynamic(empty_list() or non_empty_list(term(), term()))631632 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())633634 type warning found at:635 │636 59 │ def to_iodata(?"), do: """637 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~638 │639 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1640641 warning: the 1st pattern in clause will never match:642643 39644645 because it is expected to receive type:646647 dynamic(empty_list() or non_empty_list(term(), term()))648649 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())650651 type warning found at:652 │653 60 │ def to_iodata(?'), do: "'"654 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~655 │656 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1657658 warning: the 1st pattern in clause will never match:659660 {:safe, data}661662 because it is expected to receive type:663664 dynamic(empty_list() or non_empty_list(term(), term()))665666 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())667668 type warning found at:669 │670 76 │ def to_iodata({:safe, data}) do671 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~672 │673 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1674675 warning: the following clause is redundant:676677 def to_iodata(other)678679 it has type:680681 dynamic(empty_list() or non_empty_list(term(), term()))682683 previous clauses have already matched on the following types:684685 non_empty_list(term(), term())686 empty_list()687688 │689 80 │ def to_iodata(other) do690 │ ~691 │692 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1693694 warning: the 1st pattern in clause will never match:695696 h697698 because it is expected to receive type:699700 dynamic(empty_list() or non_empty_list(term(), term()))701702 where "h" was given the type:703704 # type: integer()705 # from: lib/phoenix_html/safe.ex:62:25706 is_integer(h)707708 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())709710 type warning found at:711 │712 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do713 │ ~714 │715 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1716717 warning: the 1st pattern in clause will never match:718719 h720721 because it is expected to receive type:722723 dynamic(empty_list() or non_empty_list(term(), term()))724725 where "h" was given the type:726727 # type: integer()728 # from: lib/phoenix_html/safe.ex:66:25729 is_integer(h)730731 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())732733 type warning found at:734 │735 66 │ def to_iodata(h) when is_integer(h) do736 │ ~737 │738 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1739740 warning: the 1st pattern in clause will never match:741742 h743744 because it is expected to receive type:745746 dynamic(empty_list() or non_empty_list(term(), term()))747748 where "h" was given the type:749750 # type: binary()751 # from: lib/phoenix_html/safe.ex:72:25752 is_binary(h)753754 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())755756 type warning found at:757 │758 72 │ def to_iodata(h) when is_binary(h) do759 │ ~760 │761 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1762763Generated phoenix_html app764warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"765 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2766 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1767 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5768 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2769 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4770 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2771772==> postgrex773Compiling 70 files (.ex)774Generated postgrex app775==> ecto_sql776Compiling 25 files (.ex)777Generated ecto_sql app778warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"779 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2780 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1781 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5782 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2783 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4784 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2785786==> phoenix_ecto787Compiling 7 files (.ex)788Generated phoenix_ecto app789==> nerves_compatibility_test790===> Analyzing applications...791===> Compiling parse_trans792==> uboot_env793Compiling 5 files (.ex)794Generated uboot_env app795==> nerves_compatibility_test796===> Analyzing applications...797===> Compiling metrics798===> Analyzing applications...799===> Compiling hackney800 ┌─ src/hackney_happy.erl:801 │802 101 │ catch exit(Pid, normal),803 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.804Compile directive 'nowarn_deprecated_catch' can be used to suppress805warnings in selected modules.806807 ┌─ src/hackney_happy.erl:808 │809 128 │ case (catch inet_res:getbyname(Hostname, Type)) of810 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.811Compile directive 'nowarn_deprecated_catch' can be used to suppress812warnings in selected modules.813814 ┌─ src/hackney_happy.erl:815 │816 151 │ case (catch inet:gethostbyname(Hostname, InetType)) of817 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.818Compile directive 'nowarn_deprecated_catch' can be used to suppress819warnings in selected modules.820821822 ┌─ src/hackney_manager.erl:823 │824 114 │ catch ets:delete(?MODULE, Ref),825 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.826Compile directive 'nowarn_deprecated_catch' can be used to suppress827warnings in selected modules.828829 ┌─ src/hackney_manager.erl:830 │831 125 │ catch Transport:close(Socket);832 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.833Compile directive 'nowarn_deprecated_catch' can be used to suppress834warnings in selected modules.835836 ┌─ src/hackney_manager.erl:837 │838 129 │ catch Handler:checkin(SocketRef, Socket)839 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.840Compile directive 'nowarn_deprecated_catch' can be used to suppress841warnings in selected modules.842843 ┌─ src/hackney_manager.erl:844 │845 133 │ catch Transport:controlling_process(Socket, self()),846 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.847Compile directive 'nowarn_deprecated_catch' can be used to suppress848warnings in selected modules.849850 ┌─ src/hackney_manager.erl:851 │852 134 │ catch Transport:close(Socket),853 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.854Compile directive 'nowarn_deprecated_catch' can be used to suppress855warnings in selected modules.856857 ┌─ src/hackney_manager.erl:858 │859 227 │ catch ets:delete(?MODULE, Ref),860 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.861Compile directive 'nowarn_deprecated_catch' can be used to suppress862warnings in selected modules.863864 ┌─ src/hackney_manager.erl:865 │866 255 │ catch ets:delete(?MODULE, Ref),867 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.868Compile directive 'nowarn_deprecated_catch' can be used to suppress869warnings in selected modules.870871 ┌─ src/hackney_manager.erl:872 │873 269 │ catch Transport:controlling_process(Socket, self()),874 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.875Compile directive 'nowarn_deprecated_catch' can be used to suppress876warnings in selected modules.877878 ┌─ src/hackney_manager.erl:879 │880 270 │ catch Transport:close(Socket),881 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.882Compile directive 'nowarn_deprecated_catch' can be used to suppress883warnings in selected modules.884885 ┌─ src/hackney_manager.erl:886 │887 383 │ catch unlink(Stream),888 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.889Compile directive 'nowarn_deprecated_catch' can be used to suppress890warnings in selected modules.891892 ┌─ src/hackney_manager.erl:893 │894 416 │ catch ets:delete(?REFS, Ref),895 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.896Compile directive 'nowarn_deprecated_catch' can be used to suppress897warnings in selected modules.898899 ┌─ src/hackney_manager.erl:900 │901 426 │ catch ets:delete(?REFS, Ref),902 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.903Compile directive 'nowarn_deprecated_catch' can be used to suppress904warnings in selected modules.905906 ┌─ src/hackney_manager.erl:907 │908 470 │ case catch hackney_stream:start_link(StreamTo2, Ref, Client) of909 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.910Compile directive 'nowarn_deprecated_catch' can be used to suppress911warnings in selected modules.912913 ┌─ src/hackney_manager.erl:914 │915 487 │ catch Transport:close(Socket),916 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.917Compile directive 'nowarn_deprecated_catch' can be used to suppress918warnings in selected modules.919920 ┌─ src/hackney_manager.erl:921 │922 543 │ catch ets:delete(?REFS, Ref),923 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.924Compile directive 'nowarn_deprecated_catch' can be used to suppress925warnings in selected modules.926927 ┌─ src/hackney_manager.erl:928 │929 544 │ catch ets:delete(?MODULE, Ref),930 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.931Compile directive 'nowarn_deprecated_catch' can be used to suppress932warnings in selected modules.933934 ┌─ src/hackney_manager.erl:935 │936 559 │ catch ets:delete(?REFS, Ref),937 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.938Compile directive 'nowarn_deprecated_catch' can be used to suppress939warnings in selected modules.940941 ┌─ src/hackney_manager.erl:942 │943 560 │ catch ets:delete(?MODULE, Ref),944 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.945Compile directive 'nowarn_deprecated_catch' can be used to suppress946warnings in selected modules.947948 ┌─ src/hackney_manager.erl:949 │950 618 │ catch unlink(Pid),951 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.952Compile directive 'nowarn_deprecated_catch' can be used to suppress953warnings in selected modules.954955956 ┌─ src/hackney_pool.erl:957 │958 80 │ case catch gen_server:call(Pool, {checkout, Connection, Requester, RequestRef}, CheckoutTimeout) of959 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.960Compile directive 'nowarn_deprecated_catch' can be used to suppress961warnings in selected modules.962963 ┌─ src/hackney_pool.erl:964 │965 101 │ _ = catch hackney_connection:close(Connection, Socket),966 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.967Compile directive 'nowarn_deprecated_catch' can be used to suppress968warnings in selected modules.969970 ┌─ src/hackney_pool.erl:971 │972 130 │ _ = catch hackney_connection:close(Connection, Socket),973 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.974Compile directive 'nowarn_deprecated_catch' can be used to suppress975warnings in selected modules.976977 ┌─ src/hackney_pool.erl:978 │979 134 │ catch hackney_connection:close(Connection, Socket),980 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.981Compile directive 'nowarn_deprecated_catch' can be used to suppress982warnings in selected modules.983984 ┌─ src/hackney_pool.erl:985 │986 319 │ catch Transport:close(Socket),987 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.988Compile directive 'nowarn_deprecated_catch' can be used to suppress989warnings in selected modules.990991 ┌─ src/hackney_pool.erl:992 │993 417 │ case catch hackney_connection:controlling_process(Connection, S, self()) of994 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.995Compile directive 'nowarn_deprecated_catch' can be used to suppress996warnings in selected modules.997998 ┌─ src/hackney_pool.erl:999 │1000 423 │ _ = catch hackney_connection:close(Connection, S),1001 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1002Compile directive 'nowarn_deprecated_catch' can be used to suppress1003warnings in selected modules.10041005 ┌─ src/hackney_pool.erl:1006 │1007 444 │ catch hackney_connection:close(Connection, Socket),1008 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1009Compile directive 'nowarn_deprecated_catch' can be used to suppress1010warnings in selected modules.10111012 ┌─ src/hackney_pool.erl:1013 │1014 543 │ _ = (catch hackney_connection:close(Connection, Socket)),1015 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1016Compile directive 'nowarn_deprecated_catch' can be used to suppress1017warnings in selected modules.101810191020 ┌─ src/hackney_trace.erl:1021 │1022 132 │ (catch io:format(standard_io, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1023 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1024Compile directive 'nowarn_deprecated_catch' can be used to suppress1025warnings in selected modules.10261027 ┌─ src/hackney_trace.erl:1028 │1029 139 │ (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1030 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1031Compile directive 'nowarn_deprecated_catch' can be used to suppress1032warnings in selected modules.10331034 ┌─ src/hackney_trace.erl:1035 │1036 146 │ (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1037 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1038Compile directive 'nowarn_deprecated_catch' can be used to suppress1039warnings in selected modules.10401041 ┌─ src/hackney_trace.erl:1042 │1043 147 │ (catch file:close(Fd)),1044 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1045Compile directive 'nowarn_deprecated_catch' can be used to suppress1046warnings in selected modules.10471048 ┌─ src/hackney_trace.erl:1049 │1050 154 │ (catch io:format(Fd, "stop trace at ~s~n", [format_timestamp(Timestamp)])),1051 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1052Compile directive 'nowarn_deprecated_catch' can be used to suppress1053warnings in selected modules.10541055 ┌─ src/hackney_trace.erl:1056 │1057 155 │ (catch file:close(Fd)),1058 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1059Compile directive 'nowarn_deprecated_catch' can be used to suppress1060warnings in selected modules.10611062 ┌─ src/hackney_trace.erl:1063 │1064 161 │ (catch print_hackney_trace(Fd, Sev, Timestamp, Who,1065 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1066Compile directive 'nowarn_deprecated_catch' can be used to suppress1067warnings in selected modules.10681069 ┌─ src/hackney_trace.erl:1070 │1071 165 │ (catch print_trace(Fd, Event)),1072 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.1073Compile directive 'nowarn_deprecated_catch' can be used to suppress1074warnings in selected modules.107510761077==> tesla1078Compiling 57 files (.ex)1079Generated tesla app1080==> oauth21081Compiling 13 files (.ex)1082Generated oauth2 app1083==> property_table1084Compiling 8 files (.ex)1085Generated property_table app1086==> nerves_uevent1087 CC uevent.o1088 LD uevent1089Compiling 5 files (.ex)1090Generated nerves_uevent app1091==> nerves_runtime1092Compiling 14 files (.ex)1093Generated nerves_runtime app1094==> toolshed1095Compiling 5 files (.ex)1096Generated toolshed app1097==> nerves_compatibility_test1098===> Analyzing applications...1099===> Compiling cowboy_telemetry1100==> plug_cowboy1101Compiling 5 files (.ex)1102Generated plug_cowboy app1103warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1104 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21105 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11106 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51107 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21108 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41109 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/211101111==> phoenix1112Compiling 66 files (.ex)1113 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 operator1114 │1115 194 │ <<attr::size(prefix)-binary, ":unique">> -> attr1116 │ ~1117 │1118 └─ lib/mix/phoenix/schema.ex:194:20: Mix.Phoenix.Schema.drop_unique/111191120 warning: using single-quoted strings to represent charlists is deprecated.1121 Use ~c"" if you indeed want a charlist or use "" instead.1122 You may run "mix format --migrate" to change all single-quoted1123 strings to use the ~c sigil and fix this warning.1124 │1125 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},1126 │ ~1127 │1128 └─ lib/mix/tasks/phx.gen.cert.ex:258:3311291130 warning: using single-quoted strings to represent charlists is deprecated.1131 Use ~c"" if you indeed want a charlist or use "" instead.1132 You may run "mix format --migrate" to change all single-quoted1133 strings to use the ~c sigil and fix this warning.1134 │1135 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}1136 │ ~1137 │1138 └─ lib/mix/tasks/phx.gen.cert.ex:259:3211391140 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1141 │1142 55 │ Logger.warn(1143 │ ~1144 │1145 └─ lib/phoenix/code_reloader/server.ex:55:20: Phoenix.CodeReloader.Server.handle_call/311461147 warning: unused require Logger1148 │1149 9 │ require Logger1150 │ ~1151 │1152 └─ lib/phoenix/config.ex:9:311531154 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.11551156 This error happens when you have function calls without parentheses inside keywords. For example:11571158 function(arg, one: nested_call a, b, c)1159 function(arg, one: if expr, do: :this, else: :that)11601161 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:11621163 function(arg, one: if(expr, do: :this, else: :that))1164 function(arg, one: nested_call(a, b, c))11651166 Ambiguity found at:1167 │1168 1002 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"1169 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1170 │1171 └─ lib/phoenix/controller.ex:100211721173 warning: unused require Logger1174 │1175 240 │ require Logger1176 │ ~1177 │1178 └─ lib/phoenix/endpoint.ex:240:311791180 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1181 │1182 1013 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>1183 │ ~1184 │1185 └─ lib/phoenix/controller.ex:1013:14: Phoenix.Controller.warn_if_ajax/111861187 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1188 │1189 82 │ Logger.warn "Phoenix.Endpoint.CowboyAdapter is deprecated and it will be removed in next versions. " <>1190 │ ~1191 │1192 └─ lib/phoenix/endpoint/cowboy_adapter.ex:82:12: Phoenix.Endpoint.CowboyAdapter.child_specs/211931194 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1195 │1196 71 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")1197 │ ~1198 │1199 └─ lib/phoenix/endpoint/supervisor.ex:71:20: Phoenix.Endpoint.Supervisor.init/112001201 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1202 │1203 95 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")1204 │ ~1205 │1206 └─ lib/phoenix/endpoint/supervisor.ex:95:14: Phoenix.Endpoint.Supervisor.init/112071208 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1209 │1210 116 │ Logger.warn """1211 │ ~1212 │1213 └─ lib/phoenix/endpoint/supervisor.ex:116:14: Phoenix.Endpoint.Supervisor.pubsub_children/212141215 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1216 │1217 166 │ Logger.warn "Phoenix.Endpoint.CowboyHandler is deprecated, please use Phoenix.Endpoint.CowboyAdapter instead"1218 │ ~1219 │1220 └─ lib/phoenix/endpoint/supervisor.ex:166:16: Phoenix.Endpoint.Supervisor.user_adapter/212211222 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1223 │1224 170 │ Logger.warn "The :handler option in #{inspect endpoint} is deprecated, please use :adapter instead"1225 │ ~1226 │1227 └─ lib/phoenix/endpoint/supervisor.ex:170:16: Phoenix.Endpoint.Supervisor.user_adapter/212281229 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1230 │1231 346 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")1232 │ ~1233 │1234 └─ lib/phoenix/endpoint/supervisor.ex:346:14: Phoenix.Endpoint.Supervisor.build_url/212351236 warning: unused require Phoenix.Endpoint1237 │1238 6 │ require Phoenix.Endpoint1239 │ ~1240 │1241 └─ lib/phoenix/controller.ex:6:312421243 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 operator1244 │1245 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix1246 │ ~1247 │1248 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/212491250 warning: using single-quoted strings to represent charlists is deprecated.1251 Use ~c"" if you indeed want a charlist or use "" instead.1252 You may run "mix format --migrate" to change all single-quoted1253 strings to use the ~c sigil and fix this warning.1254 │1255 411 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1256 │ ~1257 │1258 └─ lib/phoenix/router.ex:411:5012591260 warning: unused require Phoenix.Endpoint1261 │1262 19 │ require Phoenix.Endpoint1263 │ ~1264 │1265 └─ lib/phoenix/endpoint/render_errors.ex:19:312661267 warning: using single-quoted strings to represent charlists is deprecated.1268 Use ~c"" if you indeed want a charlist or use "" instead.1269 You may run "mix format --migrate" to change all single-quoted1270 strings to use the ~c sigil and fix this warning.1271 │1272 8 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1273 │ ~1274 │1275 └─ lib/phoenix/router/helpers.ex:8:5012761277 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12781279 This error happens when you have function calls without parentheses inside keywords. For example:12801281 function(arg, one: nested_call a, b, c)1282 function(arg, one: if expr, do: :this, else: :that)12831284 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:12851286 function(arg, one: if(expr, do: :this, else: :that))1287 function(arg, one: nested_call(a, b, c))12881289 Ambiguity found at:1290 │1291 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """1292 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1293 │1294 └─ lib/phoenix/router/resource.ex:7112951296 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1297 │1298 734 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(handler)}" end1299 │ ~1300 │1301 └─ lib/phoenix/socket.ex:734:12: Phoenix.Socket.encode_ignore/213021303 warning: unused require Phoenix.Endpoint1304 │1305 188 │ require Phoenix.Endpoint1306 │ ~1307 │1308 └─ lib/phoenix/socket.ex:188:313091310 warning: unused require Phoenix.Endpoint1311 │1312 6 │ require Phoenix.Endpoint1313 │ ~1314 │1315 └─ lib/phoenix/channel/server.ex:6:313161317 warning: unused require Logger1318 │1319 93 │ require Logger1320 │ ~1321 │1322 └─ lib/phoenix/token.ex:93:313231324 warning: using single-quoted strings to represent charlists is deprecated.1325 Use ~c"" if you indeed want a charlist or use "" instead.1326 You may run "mix format --migrate" to change all single-quoted1327 strings to use the ~c sigil and fix this warning.1328 │1329 178 │ @anno (if :erlang.system_info(:otp_release) >= '19' do1330 │ ~1331 │1332 └─ lib/phoenix/view.ex:178:5013331334 warning: a struct for Plug.Conn is expected on struct update:13351336 %Plug.Conn{conn | state: :sent}13371338 but got type:13391340 dynamic()13411342 where "conn" was given the type:13431344 # type: dynamic()1345 # from: lib/phoenix/endpoint/render_errors.ex:57:171346 conn13471348 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"13491350 type warning found at:1351 │1352 61 │ %Plug.Conn{conn | state: :sent}1353 │ ~1354 │1355 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/513561357 warning: incompatible types given to socket_children/1:13581359 socket_children(mod)13601361 given types:13621363 -dynamic(atom())-13641365 but expected one of:13661367 %{..., __sockets__: term()}13681369 where "mod" was given the types:13701371 # type: dynamic(atom() or binary())1372 # from: lib/phoenix/endpoint/supervisor.ex:64:411373 defaults(otp_app, mod)13741375 # type: dynamic(atom())1376 # from: lib/phoenix/endpoint/supervisor.ex:68:161377 mod.init(:supervisor, env_conf)13781379 type warning found at:1380 │1381 105 │ socket_children(mod) ++1382 │ ~1383 │1384 └─ lib/phoenix/endpoint/supervisor.ex:105:7: Phoenix.Endpoint.Supervisor.init/113851386 warning: a struct for Plug.Conn is expected on struct update:13871388 %Plug.Conn{conn | query_params: %{}, params: %{}}13891390 but got type:13911392 dynamic(%{..., params: %Plug.Conn.Unfetched{}})13931394 where "conn" was given the types:13951396 # type: dynamic(%{..., params: term()})1397 # from: lib/phoenix/endpoint/render_errors.ex:124:171398 conn.params13991400 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1401 # from: lib/phoenix/endpoint/render_errors.ex:124:171402 conn.params14031404 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14051406 type warning found at:1407 │1408 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1409 │ ~1410 │1411 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114121413 warning: a struct for Plug.Conn is expected on struct update:14141415 %Plug.Conn{conn | query_params: %{}, params: params}14161417 but got type:14181419 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})14201421 where "conn" was given the types:14221423 # type: dynamic(%{..., params: term()})1424 # from: lib/phoenix/endpoint/render_errors.ex:124:171425 conn.params14261427 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1428 # from: lib/phoenix/endpoint/render_errors.ex:124:171429 conn.params14301431 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14321433 type warning found at:1434 │1435 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1436 │ ~1437 │1438 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/114391440 warning: a struct for Plug.Conn is expected on struct update:14411442 %Plug.Conn{conn | params: params}14431444 but got type:14451446 dynamic(%{..., params: map()})14471448 where "conn" was given the type:14491450 # type: dynamic(%{..., params: map()})1451 # from: lib/phoenix/controller.ex:1040:171452 Map.get(conn.params, required_key)14531454 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"14551456 type warning found at:1457 │1458 1047 │ %Plug.Conn{conn | params: params}1459 │ ~1460 │1461 └─ lib/phoenix/controller.ex:1047:5: Phoenix.Controller.scrub_params/214621463Generated phoenix app1464warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1465 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21466 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11467 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51468 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21469 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41470 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/214711472==> phoenix_live_view1473Compiling 22 files (.ex)1474 warning: unused require Logger1475 │1476 25 │ require Logger1477 │ ~1478 │1479 └─ lib/phoenix_live_view/socket.ex:25:314801481 warning: unused require Phoenix.ChannelTest1482 │1483 141 │ require Phoenix.ChannelTest1484 │ ~1485 │1486 └─ lib/phoenix_live_view/test/live_view_test.ex:141:314871488 warning: unused require Phoenix.ConnTest1489 │1490 140 │ require Phoenix.ConnTest1491 │ ~1492 │1493 └─ lib/phoenix_live_view/test/live_view_test.ex:140:314941495 warning: unused require Phoenix.ChannelTest1496 │1497 4 │ require Phoenix.ChannelTest1498 │ ~1499 │1500 └─ lib/phoenix_live_view/test/upload_client.ex:4:315011502 warning: unused require Logger1503 │1504 6 │ require Logger1505 │ ~1506 │1507 └─ lib/phoenix_live_view/upload_channel.ex:6:315081509 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15101511 %Phoenix.LiveView.Socket{1512 socket1513 | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})1514 }15151516 but got type:15171518 dynamic()15191520 where "socket" was given the type:15211522 # type: dynamic()1523 # from: lib/phoenix_live_view/utils.ex:464:211524 socket15251526 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15271528 type warning found at:1529 │1530 465 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, {mod, template})}1531 │ ~1532 │1533 └─ lib/phoenix_live_view/utils.ex:465:5: Phoenix.LiveView.Utils.do_mount_opt/315341535 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15361537 %Phoenix.LiveView.Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}15381539 but got type:15401541 dynamic()15421543 where "socket" was given the type:15441545 # type: dynamic()1546 # from: lib/phoenix_live_view/utils.ex:468:211547 socket15481549 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15501551 type warning found at:1552 │1553 469 │ %Socket{socket | private: Map.put(socket.private, :phoenix_live_layout, false)}1554 │ ~1555 │1556 └─ lib/phoenix_live_view/utils.ex:469:5: Phoenix.LiveView.Utils.do_mount_opt/315571558 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15591560 %Phoenix.LiveView.Socket{1561 socket1562 | assigns: Map.merge(temp_assigns, socket.assigns),1563 private: Map.put(socket.private, :temporary_assigns, temp_assigns)1564 }15651566 but got type:15671568 dynamic()15691570 where "socket" was given the type:15711572 # type: dynamic()1573 # from: lib/phoenix_live_view/utils.ex:478:211574 socket15751576 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"15771578 type warning found at:1579 │1580 485 │ %Socket{1581 │ ~1582 │1583 └─ lib/phoenix_live_view/utils.ex:485:5: Phoenix.LiveView.Utils.do_mount_opt/315841585 warning: a struct for Phoenix.LiveView.Socket is expected on struct update:15861587 %Phoenix.LiveView.Socket{1588 socket1589 | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1590 }15911592 but got type:15931594 dynamic(%{..., assigns: term(), changed: term()})15951596 where "socket" was given the type:15971598 # type: dynamic(%{..., assigns: term(), changed: term()})1599 # from: lib/phoenix_live_view/utils.ex:496:611600 %{assigns: assigns, changed: changed} = socket16011602 when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"16031604 type warning found at:1605 │1606 497 │ socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1607 │ ~1608 │1609 └─ lib/phoenix_live_view/utils.ex:497:14: Phoenix.LiveView.Utils.render_assigns/116101611 warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1612 │1613 56 │ Logger.disable(self())1614 │ ~1615 │1616 └─ lib/phoenix_live_view/test/client_proxy.ex:56:12: Phoenix.LiveViewTest.ClientProxy.init/116171618 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16191620 %Phoenix.LiveView.UploadEntry{entry | preflighted?: true}16211622 but got type:16231624 dynamic()16251626 where "entry" was given the type:16271628 # type: dynamic()1629 # from: lib/phoenix_live_view/upload_config.ex:341:281630 entry <- conf.entries16311632 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16331634 type warning found at:1635 │1636 341 │ | entries: for(entry <- conf.entries, do: %UploadEntry{entry | preflighted?: true})1637 │ ~1638 │1639 └─ lib/phoenix_live_view/upload_config.ex:341:49: Phoenix.LiveView.UploadConfig.mark_preflighted/116401641 warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:16421643 %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}16441645 but got type:16461647 dynamic(%{..., rendered: term()})16481649 where "view" was given the type:16501651 # type: dynamic(%{..., rendered: term()})1652 # from: lib/phoenix_live_view/test/client_proxy.ex:600:241653 Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)16541655 when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"16561657 type warning found at:1658 │1659 601 │ new_view = %ClientProxy{view | rendered: rendered}1660 │ ~1661 │1662 └─ lib/phoenix_live_view/test/client_proxy.ex:601:20: Phoenix.LiveViewTest.ClientProxy.merge_rendered/316631664 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16651666 %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}16671668 but got type:16691670 dynamic()16711672 where "entry" was given the type:16731674 # type: dynamic()1675 # from: lib/phoenix_live_view/upload_config.ex:541:301676 entry16771678 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"16791680 type warning found at:1681 │1682 542 │ entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1683 │ ~1684 │1685 └─ lib/phoenix_live_view/upload_config.ex:542:13: Phoenix.LiveView.UploadConfig.put_valid_entry/216861687 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:16881689 %Phoenix.LiveView.UploadEntry{entry | valid?: false}16901691 but got type:16921693 dynamic()16941695 where "entry" was given the type:16961697 # type: dynamic()1698 # from: lib/phoenix_live_view/upload_config.ex:554:321699 entry17001701 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"17021703 type warning found at:1704 │1705 555 │ entry = %UploadEntry{entry | valid?: false}1706 │ ~1707 │1708 └─ lib/phoenix_live_view/upload_config.ex:555:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/317091710 warning: Plug.Conn.Query.decode_pair/2 is deprecated. Use decode_init/0, decode_each/2, and decode_done/2 instead1711 │1712 986 │ Plug.Conn.Query.decode_pair({name, DOM.attribute(selected, "value")}, acc)1713 │ ~1714 │1715 └─ lib/phoenix_live_view/test/client_proxy.ex:986:23: Phoenix.LiveViewTest.ClientProxy.form_defaults/31716 └─ lib/phoenix_live_view/test/client_proxy.ex:991:21: Phoenix.LiveViewTest.ClientProxy.form_defaults/31717 └─ lib/phoenix_live_view/test/client_proxy.ex:1001:27: Phoenix.LiveViewTest.ClientProxy.form_defaults/31718 └─ lib/phoenix_live_view/test/client_proxy.ex:1010:25: Phoenix.LiveViewTest.ClientProxy.form_defaults/317191720 warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:17211722 %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}17231724 but got type:17251726 dynamic()17271728 where "entry" was given the type:17291730 # type: dynamic()1731 # from: lib/phoenix_live_view/upload_config.ex:638:421732 entry17331734 when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"17351736 type warning found at:1737 │1738 638 │ update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1739 │ ~1740 │1741 └─ lib/phoenix_live_view/upload_config.ex:638:51: Phoenix.LiveView.UploadConfig.cancel_entry/217421743 warning: the following clause is redundant:17441745 def to_iodata(%_{} = struct)17461747 it has type:17481749 dynamic(%Phoenix.LiveView.Rendered{})17501751 previous clauses have already matched on the following types:17521753 %Phoenix.LiveView.Rendered{}17541755 │1756 126 │ def to_iodata(%_{} = struct) do1757 │ ~1758 │1759 └─ lib/phoenix_live_view/engine.ex:126:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/117601761 warning: the 1st pattern in clause will never match:17621763 nil17641765 because it is expected to receive type:17661767 dynamic(%Phoenix.LiveView.Rendered{})17681769 hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}17701771 type warning found at:1772 │1773 130 │ def to_iodata(nil) do1774 │ ~~~~~~~~~~~~~~~~~~~~~1775 │1776 └─ lib/phoenix_live_view/engine.ex:130: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/117771778 warning: the following clause is redundant:17791780 def to_iodata(other)17811782 it has type:17831784 dynamic(%Phoenix.LiveView.Rendered{})17851786 previous clauses have already matched on the following types:17871788 %Phoenix.LiveView.Rendered{}17891790 │1791 134 │ def to_iodata(other) do1792 │ ~1793 │1794 └─ lib/phoenix_live_view/engine.ex:134:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/117951796Generated phoenix_live_view app1797warning: Phoenix now requires you to explicitly list which engine to use1798for Phoenix JSON encoding. We recommend everyone to upgrade to1799Jason by setting in your config/config.exs:18001801 config :phoenix, :json_library, Jason18021803And then adding {:jason, "~> 1.0"} as a dependency.18041805If instead you would rather continue using Poison, then add to1806your config/config.exs:18071808 config :phoenix, :json_library, Poison18091810 (phoenix 1.5.15) lib/phoenix.ex:38: Phoenix.start/21811 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/418121813warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1814 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21815 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11816 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51817 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21818 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41819 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/218201821==> phoenix_live_dashboard1822Compiling 36 files (.ex)1823 warning: using single-quoted strings to represent charlists is deprecated.1824 Use ~c"" if you indeed want a charlist or use "" instead.1825 You may run "mix format --migrate" to change all single-quoted1826 strings to use the ~c sigil and fix this warning.1827 │1828 41 │ '#Port' ++ rest = :erlang.port_to_list(ref)1829 │ ~1830 │1831 └─ lib/phoenix/live_dashboard/helpers.ex:41:518321833 warning: using single-quoted strings to represent charlists is deprecated.1834 Use ~c"" if you indeed want a charlist or use "" instead.1835 You may run "mix format --migrate" to change all single-quoted1836 strings to use the ~c sigil and fix this warning.1837 │1838 49 │ '#Ref' ++ rest = :erlang.ref_to_list(ref)1839 │ ~1840 │1841 └─ lib/phoenix/live_dashboard/helpers.ex:49:518421843warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1844 lib/phoenix/live_dashboard/pages/home_page.ex:176: Phoenix.LiveDashboard.HomePage.render/118451846warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1847 lib/phoenix/live_dashboard/pages/home_page.ex:184: Phoenix.LiveDashboard.HomePage.render/118481849warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1850 lib/phoenix/live_dashboard/pages/home_page.ex:192: Phoenix.LiveDashboard.HomePage.render/118511852warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1853 lib/phoenix/live_dashboard/pages/os_mon_page.ex:213: Phoenix.LiveDashboard.OSMonPage.render/118541855warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1856 lib/phoenix/live_dashboard/pages/os_mon_page.ex:235: Phoenix.LiveDashboard.OSMonPage.render/118571858 warning: using single-quoted strings to represent charlists is deprecated.1859 Use ~c"" if you indeed want a charlist or use "" instead.1860 You may run "mix format --migrate" to change all single-quoted1861 strings to use the ~c sigil and fix this warning.1862 │1863 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1864 │ ~1865 │1866 └─ lib/phoenix/live_dashboard/system_info.ex:397:1618671868 warning: using single-quoted strings to represent charlists is deprecated.1869 Use ~c"" if you indeed want a charlist or use "" instead.1870 You may run "mix format --migrate" to change all single-quoted1871 strings to use the ~c sigil and fix this warning.1872 │1873 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1874 │ ~1875 │1876 └─ lib/phoenix/live_dashboard/system_info.ex:397:2818771878 warning: using single-quoted strings to represent charlists is deprecated.1879 Use ~c"" if you indeed want a charlist or use "" instead.1880 You may run "mix format --migrate" to change all single-quoted1881 strings to use the ~c sigil and fix this warning.1882 │1883 397 │ @inet_ports ['tcp_inet', 'udp_inet', 'sctp_inet']1884 │ ~1885 │1886 └─ lib/phoenix/live_dashboard/system_info.ex:397:4018871888 warning: using single-quoted strings to represent charlists is deprecated.1889 Use ~c"" if you indeed want a charlist or use "" instead.1890 You may run "mix format --migrate" to change all single-quoted1891 strings to use the ~c sigil and fix this warning.1892 │1893 543 │ [{'none', 0, 0}] -> []1894 │ ~1895 │1896 └─ lib/phoenix/live_dashboard/system_info.ex:543:1118971898warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1899 lib/phoenix/live_dashboard/page_live.ex:211: Phoenix.LiveDashboard.PageLive.render_page/319001901warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1902 lib/phoenix/live_dashboard/page_live.ex:236: Phoenix.LiveDashboard.PageLive.live_modal/319031904warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1905 lib/phoenix/live_dashboard/components/nav_bar_component.ex:142: Phoenix.LiveDashboard.NavBarComponent.render_content/319061907warning: passing the @socket to live_component is no longer necessary, please remove the socket argument1908 lib/phoenix/live_dashboard/components/card_usage_component.ex:7: Phoenix.LiveDashboard.CardUsageComponent.render/119091910 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:19111912 Phoenix.LiveView.Helpers.__live_component__(1913 component.__live__(),1914 Phoenix.LiveDashboard.ModalComponent,1915 nil1916 )19171918 given types:19191920 dynamic(), -Phoenix.LiveDashboard.ModalComponent-, nil19211922 but expected one of:19231924 (1925 %{..., kind: :component, module: term()},1926 empty_list() or map() or non_empty_list(term(), term()),1927 term()1928 )19291930 where "component" (context Phoenix.LiveView.Helpers) was given the types:19311932 # type: dynamic(not %Phoenix.LiveView.Socket{})1933 # from: lib/phoenix/live_dashboard/page_live.ex:2361934 component19351936 # type: dynamic(atom())1937 # from: lib/phoenix/live_dashboard/page_live.ex:2361938 component.__live__()19391940 type warning found at:1941 │1942 236 │ live_component(socket, Phoenix.LiveDashboard.ModalComponent, modal_opts)1943 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1944 │1945 └─ lib/phoenix/live_dashboard/page_live.ex:236: Phoenix.LiveDashboard.PageLive.live_modal/319461947 warning: the following clause will never match:19481949 %{__changed__: changed} when track_changes? ->19501951 because it attempts to match on the result of:19521953 assigns19541955 which has type:19561957 dynamic(%{text: term()})19581959 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:19601961 # type: dynamic(true)1962 # from: lib/phoenix/live_dashboard/page_live.ex:3121963 track_changes?19641965 type warning found at:1966 │1967 312 │ ~L"""1968 │ ~~~~~1969 │1970 └─ lib/phoenix/live_dashboard/page_live.ex:312: Phoenix.LiveDashboard.PageLive.maybe_link/319711972 warning: the following clause will never match:19731974 %{__changed__: changed} when track_changes? ->19751976 because it attempts to match on the result of:19771978 assigns19791980 which has type:19811982 dynamic(%{more_info_url: term(), text: term()})19831984 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:19851986 # type: dynamic(true)1987 # from: lib/phoenix/live_dashboard/page_live.ex:3221988 track_changes?19891990 type warning found at:1991 │1992 322 │ ~L"""1993 │ ~~~~~1994 │1995 └─ lib/phoenix/live_dashboard/page_live.ex:322: Phoenix.LiveDashboard.PageLive.maybe_link/319961997 warning: the following clause will never match:19981999 %{__changed__: changed} when track_changes? ->20002001 because it attempts to match on the result of:20022003 assigns20042005 which has type:20062007 dynamic(%{checked_param: binary()})20082009 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:20102011 # type: dynamic(true)2012 # from: lib/phoenix/live_dashboard/pages/request_logger_page.ex:1782013 track_changes?20142015 type warning found at:2016 │2017 178 │ ~L"""2018 │ ~~~~~2019 │2020 └─ lib/phoenix/live_dashboard/pages/request_logger_page.ex:178: Phoenix.LiveDashboard.RequestLoggerPage.autoscroll_checkbox/120212022 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:20232024 Phoenix.LiveView.Helpers.__live_component__(2025 component.__live__(),2026 Phoenix.LiveDashboard.ColorBarComponent,2027 nil2028 )20292030 given types:20312032 dynamic(), -Phoenix.LiveDashboard.ColorBarComponent-, nil20332034 but expected one of:20352036 (2037 %{..., kind: :component, module: term()},2038 empty_list() or map() or non_empty_list(term(), term()),2039 term()2040 )20412042 where "component" (context Phoenix.LiveView.Helpers) was given the types:20432044 # type: dynamic(not %Phoenix.LiveView.Socket{})2045 # from: lib/phoenix/live_dashboard/pages/os_mon_page.ex:1912046 component20472048 # type: dynamic(atom())2049 # from: lib/phoenix/live_dashboard/pages/os_mon_page.ex:1912050 component.__live__()20512052 type warning found at:2053 │2054 191 │ <%= live_component @socket, ColorBarComponent, dom_id: "cpu-#{num_cpu}", data: cpu_usage_sections(usage), title: "CPU #{num_cpu+1}", csp_nonces: @csp_nonces %>2055 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2056 │2057 └─ lib/phoenix/live_dashboard/pages/os_mon_page.ex:191: Phoenix.LiveDashboard.OSMonPage.render/120582059 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:20602061 Phoenix.LiveView.Helpers.__live_component__(2062 component.__live__(),2063 Phoenix.LiveDashboard.ColorBarComponent,2064 nil2065 )20662067 given types:20682069 dynamic(), -Phoenix.LiveDashboard.ColorBarComponent-, nil20702071 but expected one of:20722073 (2074 %{..., kind: :component, module: term()},2075 empty_list() or map() or non_empty_list(term(), term()),2076 term()2077 )20782079 where "component" (context Phoenix.LiveView.Helpers) was given the types:20802081 # type: dynamic(not %Phoenix.LiveView.Socket{})2082 # from: lib/phoenix/live_dashboard/pages/home_page.ex:2062083 component20842085 # type: dynamic(atom())2086 # from: lib/phoenix/live_dashboard/pages/home_page.ex:2062087 component.__live__()20882089 type warning found at:2090 │2091 206 │ <%= live_component @socket, ColorBarComponent, data: memory_usage_sections_percent(@system_usage.memory, @system_usage.memory.total), csp_nonces: @csp_nonces, dom_id: "system_usage_memory_total" %>2092 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2093 │2094 └─ lib/phoenix/live_dashboard/pages/home_page.ex:206: Phoenix.LiveDashboard.HomePage.render/120952096 warning: incompatible types given to Phoenix.LiveView.Helpers.__live_component__/3:20972098 Phoenix.LiveView.Helpers.__live_component__(2099 component.__live__(),2100 Phoenix.LiveDashboard.ChartComponent,2101 nil2102 )21032104 given types:21052106 dynamic(), -Phoenix.LiveDashboard.ChartComponent-, nil21072108 but expected one of:21092110 (2111 %{..., kind: :component, module: term()},2112 empty_list() or map() or non_empty_list(term(), term()),2113 term()2114 )21152116 where "component" (context Phoenix.LiveView.Helpers) was given the types:21172118 # type: dynamic(not %Phoenix.LiveView.Socket{})2119 # from: lib/phoenix/live_dashboard/pages/metrics_page.ex:762120 component21212122 # type: dynamic(atom())2123 # from: lib/phoenix/live_dashboard/pages/metrics_page.ex:762124 component.__live__()21252126 type warning found at:2127 │2128 76 │ <%= live_component @socket, ChartComponent, id: id, metric: metric %>2129 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2130 │2131 └─ lib/phoenix/live_dashboard/pages/metrics_page.ex:76: Phoenix.LiveDashboard.MetricsPage.render_metrics/121322133 warning: Logger.add_backend/1 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency2134 │2135 8 │ Logger.add_backend(Phoenix.LiveDashboard.LoggerPubSubBackend)2136 │ ~2137 │2138 └─ lib/phoenix/live_dashboard/application.ex:8:12: Phoenix.LiveDashboard.Application.start/221392140 warning: the following clause will never match:21412142 %{__changed__: changed} when track_changes? ->21432144 because it attempts to match on the result of:21452146 assigns21472148 which has type:21492150 dynamic(%{block: term()})21512152 where "track_changes?" (context Phoenix.LiveView.Engine) was given the type:21532154 # type: dynamic(true)2155 # from: lib/phoenix/live_dashboard/helpers.ex:2082156 track_changes?21572158 type warning found at:2159 │2160 208 │ ~L"""2161 │ ~~~~~2162 │2163 └─ lib/phoenix/live_dashboard/helpers.ex:208: Phoenix.LiveDashboard.Helpers.hint/121642165Generated phoenix_live_dashboard app2166==> ecto_network2167Compiling 4 files (.ex)2168 warning: this clause in cond will always match:21692170 address_netmask(inet.address)21712172 since it has type:21732174 integer()21752176 where "inet" was given the type:21772178 # type: dynamic(%Postgrex.INET{})2179 # from: lib/ecto_network/inet.ex:53:292180 %Postgrex.INET{} = inet21812182 type warning found at:2183 │2184 57 │ address_netmask(inet.address) -> %{inet | netmask: address_netmask(inet.address)}2185 │ ~2186 │2187 └─ lib/ecto_network/inet.ex:57:39: EctoNetwork.INET.load/121882189Generated ecto_network app2190==> httpoison2191Compiling 3 files (.ex)2192Generated httpoison app2193warning: the :gettext compiler is no longer required in your mix.exs.21942195Please find the following line in your mix.exs and remove the :gettext entry:21962197 compilers: [..., :gettext, ...] ++ Mix.compilers(),21982199 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/12200 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/52201 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/22202 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/42203 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/22204 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/522052206==> mppm2207Compiling 76 files (.ex)2208 warning: an expression is always required on the right side of ->. Please provide a value after ->2209 │2210 48 │ _ ->2211 │ ~2212 │2213 └─ lib/mppm/application.ex:48:1122142215 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead2216 │2217 5 │ @root_path Application.get_env(:mppm, :game_servers_root_path)2218 │ ~2219 │2220 └─ lib/mppm/application.ex:5:26: Mppm.Application (module)22212222 warning: binary construction will fail because of a type mismatch2223 │2224 63 │ {:ok, _} = File.cp_r("./priv/default_tracks/", @root_path<>"/UserData/Maps/MX", fn _, _ -> false end)2225 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2226 │2227 └─ lib/mppm/application.ex:6322282229 warning: binary construction will fail because of a type mismatch2230 │2231 61 │ if {:ok, []} == File.ls(@root_path<>"/UserData/Maps/MX") do2232 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2233 │2234 └─ lib/mppm/application.ex:6122352236 warning: binary construction will fail because of a type mismatch2237 │2238 53 │ try do Port.open({:spawn_executable, @root_path<>"/TrackmaniaServer"}, [:binary, args: ["/nodaemon"]])2239 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2240 │2241 └─ lib/mppm/application.ex:5322422243 warning: an expression is always required on the right side of ->. Please provide a value after ->2244 │2245 99 │ _unhandled_message ->2246 │ ~2247 │2248 └─ lib/mppm/broker/receiver_server.ex:99:2822492250 warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator2251 │2252 55 │ <<message::binary-size(size), next_message::binary>> = msg2253 │ ~2254 │2255 └─ lib/mppm/broker/receiver_server.ex:55:32: Mppm.Broker.ReceiverServer.parse_new_packet/222562257 warning: the variable "missing_bytes" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator2258 │2259 75 │ <<end_of_message::binary-size(missing_bytes), next_message::binary>> = binary2260 │ ~2261 │2262 └─ lib/mppm/broker/receiver_server.ex:75:39: Mppm.Broker.ReceiverServer.parse_message_next_packet/322632264 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.22652266 This error happens when you have function calls without parentheses inside keywords. For example:22672268 function(arg, one: nested_call a, b, c)2269 function(arg, one: if expr, do: :this, else: :that)22702271 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:22722273 function(arg, one: if(expr, do: :this, else: :that))2274 function(arg, one: nested_call(a, b, c))22752276 Ambiguity found at:2277 │2278 116 │ from u in Mppm.User, where: u.uuid == ^uuid2279 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2280 │2281 └─ lib/mppm/data/user.ex:11622822283 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.22842285 This error happens when you have function calls without parentheses inside keywords. For example:22862287 function(arg, one: nested_call a, b, c)2288 function(arg, one: if expr, do: :this, else: :that)22892290 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:22912292 function(arg, one: if(expr, do: :this, else: :that))2293 function(arg, one: nested_call(a, b, c))22942295 Ambiguity found at:2296 │2297 119 │ from u in Mppm.User, where: u.login == ^login2298 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2299 │2300 └─ lib/mppm/data/user.ex:11923012302 warning: variable "nickname" is unused (if the variable is not meant to be used, prefix it with an underscore)2303 │2304 15 │ def new_changeset(%User{} = user, %{uuid: uuid, nickname: nickname} = data)2305 │ ~~~~~~~~2306 │2307 └─ lib/mppm/data/user.ex:15:61: Mppm.User.new_changeset/223082309 warning: variable "nickname" is unused (if the variable is not meant to be used, prefix it with an underscore)2310 │2311 22 │ def new_changeset(%User{} = user, %{login: login, nickname: nickname} = data)2312 │ ~~~~~~~~2313 │2314 └─ lib/mppm/data/user.ex:22:63: Mppm.User.new_changeset/223152316 warning: using single-quoted strings to represent charlists is deprecated.2317 Use ~c"" if you indeed want a charlist or use "" instead.2318 You may run "mix format --migrate" to change all single-quoted2319 strings to use the ~c sigil and fix this warning.2320 │2321 31 │ @trackmania 'TrackmaniaServer'2322 │ ~2323 │2324 └─ lib/mppm/game_server/starter.ex:31:1523252326 warning: using single-quoted strings to represent charlists is deprecated.2327 Use ~c"" if you indeed want a charlist or use "" instead.2328 You may run "mix format --migrate" to change all single-quoted2329 strings to use the ~c sigil and fix this warning.2330 │2331 61 │ :os.cmd('ps -aux | grep ' ++ @trackmania)2332 │ ~2333 │2334 └─ lib/mppm/game_server/starter.ex:61:1323352336 warning: using single-quoted strings to represent charlists is deprecated.2337 Use ~c"" if you indeed want a charlist or use "" instead.2338 You may run "mix format --migrate" to change all single-quoted2339 strings to use the ~c sigil and fix this warning.2340 │2341 75 │ :os.cmd('netstat -antp | grep #{pid}/ | awk \'{print $4}\'')2342 │ ~2343 │2344 └─ lib/mppm/game_server/starter.ex:75:1523452346 warning: using single-quoted strings to represent charlists is deprecated.2347 Use ~c"" if you indeed want a charlist or use "" instead.2348 You may run "mix format --migrate" to change all single-quoted2349 strings to use the ~c sigil and fix this warning.2350 │2351 93 │ :os.cmd('ps -aux | grep '++@trackmania)2352 │ ~2353 │2354 └─ lib/mppm/game_server/starter.ex:93:1323552356 warning: using single-quoted strings to represent charlists is deprecated.2357 Use ~c"" if you indeed want a charlist or use "" instead.2358 You may run "mix format --migrate" to change all single-quoted2359 strings to use the ~c sigil and fix this warning.2360 │2361 32 │ res = :os.cmd('ss -lpn | grep "pid=#{pid}" | awk {\'print$5\'} | cut -d: -f2')2362 │ ~2363 │2364 └─ lib/mppm/game_server/server.ex:32:1923652366 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead2367 │2368 7 │ @root_path Application.get_env(:mppm, :game_servers_root_path)2369 │ ~2370 │2371 └─ lib/mppm/game_server/server.ex:7:26: Mppm.GameServer.Server (module)23722373 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead2374 │2375 8 │ @config Application.get_env(:mppm, Mppm.Trackmania)2376 │ ~2377 │2378 └─ lib/mppm/game_server/server.ex:8:23: Mppm.GameServer.Server (module)23792380 warning: variable "ss" is unused (if the variable is not meant to be used, prefix it with an underscore)2381 │2382 153 │ def handle_cast({:relink_orphan_process, {login, pid, xmlrpc_port} = ss}, state) do2383 │ ~~2384 │2385 └─ lib/mppm/game_server/server.ex:153:72: Mppm.GameServer.Server.handle_cast/223862387 warning: using single-quoted strings to represent charlists is deprecated.2388 Use ~c"" if you indeed want a charlist or use "" instead.2389 You may run "mix format --migrate" to change all single-quoted2390 strings to use the ~c sigil and fix this warning.2391 │2392 176 │ {:name, [], ['SuperAdmin']},2393 │ ~2394 │2395 └─ lib/mppm/server_config.ex:176:2223962397 warning: using single-quoted strings to represent charlists is deprecated.2398 Use ~c"" if you indeed want a charlist or use "" instead.2399 You may run "mix format --migrate" to change all single-quoted2400 strings to use the ~c sigil and fix this warning.2401 │2402 180 │ {:name, [], ['Admin']},2403 │ ~2404 │2405 └─ lib/mppm/server_config.ex:180:2224062407 warning: using single-quoted strings to represent charlists is deprecated.2408 Use ~c"" if you indeed want a charlist or use "" instead.2409 You may run "mix format --migrate" to change all single-quoted2410 strings to use the ~c sigil and fix this warning.2411 │2412 184 │ {:name, [], ['User']},2413 │ ~2414 │2415 └─ lib/mppm/server_config.ex:184:2224162417 warning: using single-quoted strings to represent charlists is deprecated.2418 Use ~c"" if you indeed want a charlist or use "" instead.2419 You may run "mix format --migrate" to change all single-quoted2420 strings to use the ~c sigil and fix this warning.2421 │2422 356 │ defp charlist(true), do: ['True']2423 │ ~2424 │2425 └─ lib/mppm/server_config.ex:356:2924262427 warning: using single-quoted strings to represent charlists is deprecated.2428 Use ~c"" if you indeed want a charlist or use "" instead.2429 You may run "mix format --migrate" to change all single-quoted2430 strings to use the ~c sigil and fix this warning.2431 │2432 357 │ defp charlist(false), do: ['False']2433 │ ~2434 │2435 └─ lib/mppm/server_config.ex:357:3024362437 warning: using single-quoted strings to represent charlists is deprecated.2438 Use ~c"" if you indeed want a charlist or use "" instead.2439 You may run "mix format --migrate" to change all single-quoted2440 strings to use the ~c sigil and fix this warning.2441 │2442 369 │ 'ls #{@root_path}UserData/Packs/'2443 │ ~2444 │2445 └─ lib/mppm/server_config.ex:369:524462447 warning: using single-quoted strings to represent charlists is deprecated.2448 Use ~c"" if you indeed want a charlist or use "" instead.2449 You may run "mix format --migrate" to change all single-quoted2450 strings to use the ~c sigil and fix this warning.2451 │2452 379 │ 'ls /opt/mppm/'2453 │ ~2454 │2455 └─ lib/mppm/server_config.ex:379:524562457 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead2458 │2459 15 │ @root_path Application.get_env(:mppm, :game_servers_root_path)2460 │ ~2461 │2462 └─ lib/mppm/server_config.ex:15:26: Mppm.ServerConfig (module)246324642465== Compilation error in file lib/mppm/server_config.ex ==2466** (ArgumentError) lib file xmerl/include/xmerl.hrl could not be found2467 (elixir 1.20.3) lib/record/extractor.ex:45: Record.Extractor.from_lib_file/12468 (elixir 1.20.3) lib/record/extractor.ex:22: Record.Extractor.from_or_from_lib_file/12469 (elixir 1.20.3) lib/record/extractor.ex:9: Record.Extractor.extract/22470 lib/mppm/server_config.ex:10: (module)2471could not compile dependency :mppm, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile mppm --force", update it with "mix deps.update mppm" or clean it with "mix deps.clean mppm"