Build log
nerves_system_x86_64
humo_rbac 0.1.0 · fail · run humo_rbac-0.1.0-1790948662394
1387 of 1387 lines
1Resolving Hex dependencies...2Resolution completed in 0.857s3Unchanged:4 bamboo 1.7.15 bamboo_smtp 2.1.06 bcrypt_elixir 3.3.27 castore 1.0.218 certifi 2.17.09 circular_buffer 1.1.010 comeonin 5.5.111 cowboy 2.19.012 cowboy_telemetry 0.4.013 cowlib 2.20.0 VULNERABLE!14 EEF-CVE-2026-43966 (MEDIUM)15 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c16 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/217 https://osv.dev/vulnerability/EEF-CVE-2026-439661819 EEF-CVE-2026-43969 (LOW)20 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5621 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/122 https://osv.dev/vulnerability/EEF-CVE-2026-4396923 db_connection 2.10.224 decimal 3.1.125 ecto 3.14.226 ecto_sql 3.14.027 elixir_make 0.10.028 esbuild 0.10.029 expo 1.1.130 file_system 0.2.1031 gen_smtp 0.15.032 gettext 0.26.233 h2 0.12.334 hackney 4.8.435 humo 0.1.236 humo_account 0.1.037 humo_rbac 0.1.038 idna 7.1.039 interactive_cmd 0.1.440 jason 1.4.541 mime 1.6.042 mimerl 1.5.043 nerves 2.0.0-pre.244 nerves_discovery 0.1.545 nerves_logging 0.2.446 nerves_runtime 0.13.1347 nerves_system_bbb 2.30.248 nerves_system_br 1.34.449 nerves_system_mangopi_mq_pro 0.17.250 nerves_system_qemu_aarch64 0.4.251 nerves_system_rpi0 2.1.252 nerves_system_rpi4 2.1.253 nerves_system_rpi5 2.1.254 nerves_system_trellis 0.5.055 nerves_system_x86_64 1.34.256 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.157 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.158 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.159 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.160 nerves_toolchain_x86_64_nerves_linux_musl 15.3.161 nerves_uevent 0.1.762 parse_trans 3.4.263 phoenix 1.6.1764 phoenix_ecto 4.7.065 phoenix_html 3.3.466 phoenix_live_dashboard 0.9.167 phoenix_live_view 1.2.1268 phoenix_pubsub 2.3.069 phoenix_template 1.1.070 phoenix_view 2.0.471 plug 1.20.372 plug_cowboy 2.9.073 plug_crypto 1.2.574 postgrex 0.22.475 property_table 0.3.476 quic 2.1.077 ranch 2.3.078 ring_logger 0.11.779 ssl_verify_fun 1.1.780 tablet 0.3.381 telemetry 1.4.282 telemetry_metrics 0.6.283 telemetry_poller 1.3.084 toolshed 0.5.085 uboot_env 1.0.286 webtransport 0.4.787* Getting humo_rbac (Hex package)88* Getting nerves (Hex package)89* Getting ring_logger (Hex package)90* Getting toolshed (Hex package)91* Getting nerves_runtime (Hex package)92* Getting nerves_system_bbb (Hex package)93* Getting nerves_system_mangopi_mq_pro (Hex package)94* Getting nerves_system_qemu_aarch64 (Hex package)95* Getting nerves_system_rpi0 (Hex package)96* Getting nerves_system_rpi4 (Hex package)97* Getting nerves_system_rpi5 (Hex package)98* Getting nerves_system_trellis (Hex package)99* Getting nerves_system_x86_64 (Hex package)100* Getting nerves_system_br (Hex package)101* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)102* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)103* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)104* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)105* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)106* Getting nerves_logging (Hex package)107* Getting nerves_uevent (Hex package)108* Getting uboot_env (Hex package)109* Getting elixir_make (Hex package)110* Getting property_table (Hex package)111* Getting circular_buffer (Hex package)112* Getting interactive_cmd (Hex package)113* Getting nerves_discovery (Hex package)114* Getting tablet (Hex package)115* Getting ecto_sql (Hex package)116* Getting esbuild (Hex package)117* Getting gettext (Hex package)118* Getting humo (Hex package)119* Getting humo_account (Hex package)120* Getting jason (Hex package)121* Getting phoenix (Hex package)122* Getting phoenix_ecto (Hex package)123* Getting phoenix_html (Hex package)124* Getting phoenix_live_dashboard (Hex package)125* Getting plug_cowboy (Hex package)126* Getting postgrex (Hex package)127* Getting telemetry_metrics (Hex package)128* Getting telemetry_poller (Hex package)129* Getting telemetry (Hex package)130* Getting db_connection (Hex package)131* Getting decimal (Hex package)132* Getting cowboy (Hex package)133* Getting cowboy_telemetry (Hex package)134* Getting plug (Hex package)135* Getting mime (Hex package)136* Getting plug_crypto (Hex package)137* Getting cowlib (Hex package)138* Getting ranch (Hex package)139* Getting phoenix_live_view (Hex package)140* Getting phoenix_template (Hex package)141* Getting ecto (Hex package)142* Getting castore (Hex package)143* Getting phoenix_pubsub (Hex package)144* Getting phoenix_view (Hex package)145* Getting bamboo (Hex package)146* Getting bamboo_smtp (Hex package)147* Getting bcrypt_elixir (Hex package)148* Getting comeonin (Hex package)149* Getting gen_smtp (Hex package)150* Getting hackney (Hex package)151* Getting certifi (Hex package)152* Getting h2 (Hex package)153* Getting idna (Hex package)154* Getting mimerl (Hex package)155* Getting parse_trans (Hex package)156* Getting quic (Hex package)157* Getting ssl_verify_fun (Hex package)158* Getting webtransport (Hex package)159* Getting file_system (Hex package)160* Getting expo (Hex package)161Found packages with security advisories, see above for details162You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more163==> file_system164Compiling 7 files (.ex)165 warning: using single-quoted strings to represent charlists is deprecated.166 Use ~c"" if you indeed want a charlist or use "" instead.167 You may run "mix format --migrate" to change all single-quoted168 strings to use the ~c sigil and fix this warning.169 │170 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',171 │ ~172 │173 └─ lib/file_system/backends/fs_inotify.ex:71:11174175 warning: using single-quoted strings to represent charlists is deprecated.176 Use ~c"" if you indeed want a charlist or use "" instead.177 You may run "mix format --migrate" to change all single-quoted178 strings to use the ~c sigil and fix this warning.179 │180 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',181 │ ~182 │183 └─ lib/file_system/backends/fs_inotify.ex:71:17184185 warning: using single-quoted strings to represent charlists is deprecated.186 Use ~c"" if you indeed want a charlist or use "" instead.187 You may run "mix format --migrate" to change all single-quoted188 strings to use the ~c sigil and fix this warning.189 │190 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',191 │ ~192 │193 └─ lib/file_system/backends/fs_inotify.ex:71:27194195 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 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',201 │ ~202 │203 └─ lib/file_system/backends/fs_inotify.ex:71:33204205 warning: using single-quoted strings to represent charlists is deprecated.206 Use ~c"" if you indeed want a charlist or use "" instead.207 You may run "mix format --migrate" to change all single-quoted208 strings to use the ~c sigil and fix this warning.209 │210 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',211 │ ~212 │213 └─ lib/file_system/backends/fs_inotify.ex:71:48214215 warning: using single-quoted strings to represent charlists is deprecated.216 Use ~c"" if you indeed want a charlist or use "" instead.217 You may run "mix format --migrate" to change all single-quoted218 strings to use the ~c sigil and fix this warning.219 │220 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',221 │ ~222 │223 └─ lib/file_system/backends/fs_inotify.ex:71:54224225 warning: using single-quoted strings to represent charlists is deprecated.226 Use ~c"" if you indeed want a charlist or use "" instead.227 You may run "mix format --migrate" to change all single-quoted228 strings to use the ~c sigil and fix this warning.229 │230 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',231 │ ~232 │233 └─ lib/file_system/backends/fs_inotify.ex:71:66234235 warning: using single-quoted strings to represent charlists is deprecated.236 Use ~c"" if you indeed want a charlist or use "" instead.237 You may run "mix format --migrate" to change all single-quoted238 strings to use the ~c sigil and fix this warning.239 │240 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',241 │ ~242 │243 └─ lib/file_system/backends/fs_inotify.ex:71:72244245 warning: using single-quoted strings to represent charlists is deprecated.246 Use ~c"" if you indeed want a charlist or use "" instead.247 You may run "mix format --migrate" to change all single-quoted248 strings to use the ~c sigil and fix this warning.249 │250 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'251 │ ~252 │253 └─ lib/file_system/backends/fs_inotify.ex:72:11254255 warning: using single-quoted strings to represent charlists is deprecated.256 Use ~c"" if you indeed want a charlist or use "" instead.257 You may run "mix format --migrate" to change all single-quoted258 strings to use the ~c sigil and fix this warning.259 │260 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'261 │ ~262 │263 └─ lib/file_system/backends/fs_inotify.ex:72:17264265 warning: using single-quoted strings to represent charlists is deprecated.266 Use ~c"" if you indeed want a charlist or use "" instead.267 You may run "mix format --migrate" to change all single-quoted268 strings to use the ~c sigil and fix this warning.269 │270 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'271 │ ~272 │273 └─ lib/file_system/backends/fs_inotify.ex:72:27274275 warning: using single-quoted strings to represent charlists is deprecated.276 Use ~c"" if you indeed want a charlist or use "" instead.277 You may run "mix format --migrate" to change all single-quoted278 strings to use the ~c sigil and fix this warning.279 │280 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'281 │ ~282 │283 └─ lib/file_system/backends/fs_inotify.ex:72:33284285 warning: using single-quoted strings to represent charlists is deprecated.286 Use ~c"" if you indeed want a charlist or use "" instead.287 You may run "mix format --migrate" to change all single-quoted288 strings to use the ~c sigil and fix this warning.289 │290 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'291 │ ~292 │293 └─ lib/file_system/backends/fs_inotify.ex:72:43294295 warning: using single-quoted strings to represent charlists is deprecated.296 Use ~c"" if you indeed want a charlist or use "" instead.297 You may run "mix format --migrate" to change all single-quoted298 strings to use the ~c sigil and fix this warning.299 │300 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'301 │ ~302 │303 └─ lib/file_system/backends/fs_inotify.ex:72:49304305 warning: using single-quoted strings to represent charlists is deprecated.306 Use ~c"" if you indeed want a charlist or use "" instead.307 You may run "mix format --migrate" to change all single-quoted308 strings to use the ~c sigil and fix this warning.309 │310 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'311 │ ~312 │313 └─ lib/file_system/backends/fs_inotify.ex:72:59314315 warning: using single-quoted strings to represent charlists is deprecated.316 Use ~c"" if you indeed want a charlist or use "" instead.317 You may run "mix format --migrate" to change all single-quoted318 strings to use the ~c sigil and fix this warning.319 │320 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'321 │ ~322 │323 └─ lib/file_system/backends/fs_inotify.ex:72:79324325 warning: using single-quoted strings to represent charlists is deprecated.326 Use ~c"" if you indeed want a charlist or use "" instead.327 You may run "mix format --migrate" to change all single-quoted328 strings to use the ~c sigil and fix this warning.329 │330 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'331 │ ~332 │333 └─ lib/file_system/backends/fs_inotify.ex:72:90334335 warning: using single-quoted strings to represent charlists is deprecated.336 Use ~c"" if you indeed want a charlist or use "" instead.337 You may run "mix format --migrate" to change all single-quoted338 strings to use the ~c sigil and fix this warning.339 │340 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'341 │ ~342 │343 └─ lib/file_system/backends/fs_inotify.ex:72:96344345 warning: using single-quoted strings to represent charlists is deprecated.346 Use ~c"" if you indeed want a charlist or use "" instead.347 You may run "mix format --migrate" to change all single-quoted348 strings to use the ~c sigil and fix this warning.349 │350 84 │ parse_options(t, result -- ['-r'])351 │ ~352 │353 └─ lib/file_system/backends/fs_inotify.ex:84:33354355 warning: using single-quoted strings to represent charlists is deprecated.356 Use ~c"" if you indeed want a charlist or use "" instead.357 You may run "mix format --migrate" to change all single-quoted358 strings to use the ~c sigil and fix this warning.359 │360 104 │ bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']361 │ ~362 │363 └─ lib/file_system/backends/fs_inotify.ex:104:22364365 warning: using single-quoted strings to represent charlists is deprecated.366 Use ~c"" if you indeed want a charlist or use "" instead.367 You may run "mix format --migrate" to change all single-quoted368 strings to use the ~c sigil and fix this warning.369 │370 104 │ bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']371 │ ~372 │373 └─ lib/file_system/backends/fs_inotify.ex:104:28374375 warning: using single-quoted strings to represent charlists is deprecated.376 Use ~c"" if you indeed want a charlist or use "" instead.377 You may run "mix format --migrate" to change all single-quoted378 strings to use the ~c sigil and fix this warning.379 │380 109 │ bash_args ++ ['--'] ++ port_args381 │ ~382 │383 └─ lib/file_system/backends/fs_inotify.ex:109:29384385 warning: using single-quoted strings to represent charlists is deprecated.386 Use ~c"" if you indeed want a charlist or use "" instead.387 You may run "mix format --migrate" to change all single-quoted388 strings to use the ~c sigil and fix this warning.389 │390 116 │ {:spawn_executable, '/bin/sh'},391 │ ~392 │393 └─ lib/file_system/backends/fs_inotify.ex:116:31394395 warning: using single-quoted strings to represent charlists is deprecated.396 Use ~c"" if you indeed want a charlist or use "" instead.397 You may run "mix format --migrate" to change all single-quoted398 strings to use the ~c sigil and fix this warning.399 │400 94 │ args = ['-F' | dirs |> Enum.map(&Path.absname/1) |> Enum.map(&to_charlist/1)]401 │ ~402 │403 └─ lib/file_system/backends/fs_mac.ex:94:17404405 warning: using single-quoted strings to represent charlists is deprecated.406 Use ~c"" if you indeed want a charlist or use "" instead.407 You may run "mix format --migrate" to change all single-quoted408 strings to use the ~c sigil and fix this warning.409 │410 103 │ ['--latency=#{latency / 1}' | result]411 │ ~412 │413 └─ lib/file_system/backends/fs_mac.ex:103:10414415 warning: using single-quoted strings to represent charlists is deprecated.416 Use ~c"" if you indeed want a charlist or use "" instead.417 You may run "mix format --migrate" to change all single-quoted418 strings to use the ~c sigil and fix this warning.419 │420 111 │ parse_options(t, ['--no-defer' | result])421 │ ~422 │423 └─ lib/file_system/backends/fs_mac.ex:111:23424425 warning: using single-quoted strings to represent charlists is deprecated.426 Use ~c"" if you indeed want a charlist or use "" instead.427 You may run "mix format --migrate" to change all single-quoted428 strings to use the ~c sigil and fix this warning.429 │430 121 │ parse_options(t, ['--with-root' | result])431 │ ~432 │433 └─ lib/file_system/backends/fs_mac.ex:121:23434435 warning: using single-quoted strings to represent charlists is deprecated.436 Use ~c"" if you indeed want a charlist or use "" instead.437 You may run "mix format --migrate" to change all single-quoted438 strings to use the ~c sigil and fix this warning.439 │440 83 │ '--format', format, '--quiet', '-m', '-r'441 │ ~442 │443 └─ lib/file_system/backends/fs_windows.ex:83:11444445 warning: using single-quoted strings to represent charlists is deprecated.446 Use ~c"" if you indeed want a charlist or use "" instead.447 You may run "mix format --migrate" to change all single-quoted448 strings to use the ~c sigil and fix this warning.449 │450 83 │ '--format', format, '--quiet', '-m', '-r'451 │ ~452 │453 └─ lib/file_system/backends/fs_windows.ex:83:31454455 warning: using single-quoted strings to represent charlists is deprecated.456 Use ~c"" if you indeed want a charlist or use "" instead.457 You may run "mix format --migrate" to change all single-quoted458 strings to use the ~c sigil and fix this warning.459 │460 83 │ '--format', format, '--quiet', '-m', '-r'461 │ ~462 │463 └─ lib/file_system/backends/fs_windows.ex:83:42464465 warning: using single-quoted strings to represent charlists is deprecated.466 Use ~c"" if you indeed want a charlist or use "" instead.467 You may run "mix format --migrate" to change all single-quoted468 strings to use the ~c sigil and fix this warning.469 │470 83 │ '--format', format, '--quiet', '-m', '-r'471 │ ~472 │473 └─ lib/file_system/backends/fs_windows.ex:83:48474475 warning: using single-quoted strings to represent charlists is deprecated.476 Use ~c"" if you indeed want a charlist or use "" instead.477 You may run "mix format --migrate" to change all single-quoted478 strings to use the ~c sigil and fix this warning.479 │480 95 │ parse_options(t, result -- ['-r'])481 │ ~482 │483 └─ lib/file_system/backends/fs_windows.ex:95:33484485 warning: expected a map or struct when accessing .bootstrap in expression:486487 module.bootstrap488489 where "module" was given the type:490491 # type: dynamic(atom())492 # from: lib/file_system/backend.ex:22:17493 validate_os(backend, module)494495 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()496497 type warning found at:498 │499 23 │ :ok <- module.bootstrap500 │ ~501 │502 └─ lib/file_system/backend.ex:23:24: FileSystem.Backend.backend/1503504Generated file_system app505==> mime506Compiling 2 files (.ex)507Generated mime app508==> nerves_compatibility_test509===> Analyzing applications...510===> Compiling gen_smtp511 ┌─ src/gen_smtp_server_session.erl:512 │513 265 │ case catch Module:code_change(OldVsn, State#state.callbackstate, Extra) of514 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.515Compile directive 'nowarn_deprecated_catch' can be used to suppress516warnings in selected modules.517518 ┌─ src/gen_smtp_server_session.erl:519 │520 389 │ crypto:start(), % ensure crypto is started, we're gonna need it521 │ ╰── Warning: crypto:start/0 is deprecated; use application:start(crypto) instead522523524 ┌─ src/gen_smtp_server.erl:525 │526 225 │ lists:foreach(fun(#listener{socket=S}) -> catch smtp_socket:close(S) end, State#state.listeners),527 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.528Compile directive 'nowarn_deprecated_catch' can be used to suppress529warnings in selected modules.530531532 ┌─ src/gen_smtp_client.erl:533 │534 620 │ case catch smtp_socket:to_ssl_client(Socket, proplists:get_value(tls_options, Options, []), 5000) of535 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.536Compile directive 'nowarn_deprecated_catch' can be used to suppress537warnings in selected modules.538539540 ┌─ src/gen_smtp_application.erl:541 │542 12 │ start_ok(_App, {error, {already_started, _App}}) -> ok;543 │ ╰── Warning: variable '_App' is bound multiple times in this pattern.544If you mean to ignore this value, use '_' or545a different underscore-prefixed name546547 ┌─ src/gen_smtp_application.erl:548 │549 12 │ start_ok(_App, {error, {already_started, _App}}) -> ok;550 │ ╰── Warning: variable '_App' is bound multiple times in this pattern.551If you mean to ignore this value, use '_' or552a different underscore-prefixed name553554555 ┌─ src/smtp_util.erl:556 │557 73 │ Bin = crypto:hmac(md5, Key, Data),558 │ ╰── Warning: crypto:hmac/3 is removed; use crypto:mac/4 instead559560561==> plug_crypto562Compiling 5 files (.ex)563Generated plug_crypto app564==> nerves_compatibility_test565===> Analyzing applications...566===> Compiling cowlib567==> esbuild568Compiling 4 files (.ex)569Generated esbuild app570==> telemetry_metrics571Compiling 7 files (.ex)572 warning: unused require Logger573 │574 391 │ require Logger575 │ ~576 │577 └─ lib/telemetry_metrics.ex:391:3578579Generated telemetry_metrics app580==> nerves_compatibility_test581===> Analyzing applications...582===> Compiling telemetry_poller583===> Analyzing applications...584===> Compiling cowboy585==> gettext586Compiling 18 files (.ex)587 warning: unused require Gettext.Macros588 │589 594 │ require Gettext.Macros590 │ ~591 │592 └─ lib/gettext.ex:594:3593594 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead595 │596 426 │ Kernel.ParallelCompiler.async(fn ->597 │ ~598 │599 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3600601 warning: the following clause is redundant:602603 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)604605 it has type:606607 dynamic(%Expo.Message.Plural{})608609 previous clauses have already matched on the following types:610611 %Expo.Message.Singular{}612 %Expo.Message.Plural{}613614 │615 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do616 │ ~617 │618 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1619620Generated gettext app621==> plug622Compiling 1 file (.erl)623Compiling 42 files (.ex)624Generated plug app625==> phoenix_html626Compiling 9 files (.ex)627 warning: comparison between distinct types found:628629 id == nil630631 given types:632633 dynamic(not false and not nil and not binary()) == nil634635 where "id" was given the types:636637 # type: dynamic(not false and not nil)638 # from: lib/phoenix_html/form_data.ex:92:8639 id = Keyword.get(opts, :id) || name640641 # type: dynamic(not false and not nil and not binary())642 # from: lib/phoenix_html/form_data.ex:94:12643 is_binary(id)644645 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 false646647 type warning found at:648 │649 94 │ unless is_binary(id) or is_nil(id) do650 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~651 │652 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2653654 warning: the 1st pattern in clause will never match:655656 60657658 because it is expected to receive type:659660 dynamic(empty_list() or non_empty_list(term(), term()))661662 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())663664 type warning found at:665 │666 56 │ def to_iodata(?<), do: "<"667 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~668 │669 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1670671 warning: the 1st pattern in clause will never match:672673 62674675 because it is expected to receive type:676677 dynamic(empty_list() or non_empty_list(term(), term()))678679 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())680681 type warning found at:682 │683 57 │ def to_iodata(?>), do: ">"684 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~685 │686 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1687688 warning: the 1st pattern in clause will never match:689690 38691692 because it is expected to receive type:693694 dynamic(empty_list() or non_empty_list(term(), term()))695696 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())697698 type warning found at:699 │700 58 │ def to_iodata(?&), do: "&"701 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~702 │703 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1704705 warning: the 1st pattern in clause will never match:706707 34708709 because it is expected to receive type:710711 dynamic(empty_list() or non_empty_list(term(), term()))712713 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())714715 type warning found at:716 │717 59 │ def to_iodata(?"), do: """718 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~719 │720 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1721722 warning: the 1st pattern in clause will never match:723724 39725726 because it is expected to receive type:727728 dynamic(empty_list() or non_empty_list(term(), term()))729730 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())731732 type warning found at:733 │734 60 │ def to_iodata(?'), do: "'"735 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~736 │737 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1738739 warning: the 1st pattern in clause will never match:740741 {:safe, data}742743 because it is expected to receive type:744745 dynamic(empty_list() or non_empty_list(term(), term()))746747 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())748749 type warning found at:750 │751 76 │ def to_iodata({:safe, data}) do752 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~753 │754 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1755756 warning: the following clause is redundant:757758 def to_iodata(other)759760 it has type:761762 dynamic(empty_list() or non_empty_list(term(), term()))763764 previous clauses have already matched on the following types:765766 non_empty_list(term(), term())767 empty_list()768769 │770 80 │ def to_iodata(other) do771 │ ~772 │773 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1774775 warning: the 1st pattern in clause will never match:776777 h778779 because it is expected to receive type:780781 dynamic(empty_list() or non_empty_list(term(), term()))782783 where "h" was given the type:784785 # type: integer()786 # from: lib/phoenix_html/safe.ex:62:25787 is_integer(h)788789 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())790791 type warning found at:792 │793 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do794 │ ~795 │796 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1797798 warning: the 1st pattern in clause will never match:799800 h801802 because it is expected to receive type:803804 dynamic(empty_list() or non_empty_list(term(), term()))805806 where "h" was given the type:807808 # type: integer()809 # from: lib/phoenix_html/safe.ex:66:25810 is_integer(h)811812 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())813814 type warning found at:815 │816 66 │ def to_iodata(h) when is_integer(h) do817 │ ~818 │819 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1820821 warning: the 1st pattern in clause will never match:822823 h824825 because it is expected to receive type:826827 dynamic(empty_list() or non_empty_list(term(), term()))828829 where "h" was given the type:830831 # type: binary()832 # from: lib/phoenix_html/safe.ex:72:25833 is_binary(h)834835 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())836837 type warning found at:838 │839 72 │ def to_iodata(h) when is_binary(h) do840 │ ~841 │842 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1843844Generated phoenix_html app845==> phoenix_template846Compiling 4 files (.ex)847Generated phoenix_template app848==> phoenix_view849Compiling 1 file (.ex)850 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 operator851 │852 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix853 │ ~854 │855 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2856857Generated phoenix_view app858warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"859 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2860 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1861 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5862 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2863 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4864 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2865866==> phoenix_ecto867Compiling 7 files (.ex)868Generated phoenix_ecto app869==> nerves_compatibility_test870===> Analyzing applications...871===> Compiling cowboy_telemetry872==> plug_cowboy873Compiling 5 files (.ex)874Generated plug_cowboy app875warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"876 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2877 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1878 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5879 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2880 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4881 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2882883==> phoenix884Compiling 69 files (.ex)885 warning: using single-quoted strings to represent charlists is deprecated.886 Use ~c"" if you indeed want a charlist or use "" instead.887 You may run "mix format --migrate" to change all single-quoted888 strings to use the ~c sigil and fix this warning.889 │890 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},891 │ ~892 │893 └─ lib/mix/tasks/phx.gen.cert.ex:258:33894895 warning: using single-quoted strings to represent charlists is deprecated.896 Use ~c"" if you indeed want a charlist or use "" instead.897 You may run "mix format --migrate" to change all single-quoted898 strings to use the ~c sigil and fix this warning.899 │900 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}901 │ ~902 │903 └─ lib/mix/tasks/phx.gen.cert.ex:259:32904905 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead906 │907 50 │ Logger.warn(908 │ ~909 │910 └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/3911912 warning: unused require Logger913 │914 9 │ require Logger915 │ ~916 │917 └─ lib/phoenix/config.ex:9:3918919 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.920921 This error happens when you have function calls without parentheses inside keywords. For example:922923 function(arg, one: nested_call a, b, c)924 function(arg, one: if expr, do: :this, else: :that)925926 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:927928 function(arg, one: if(expr, do: :this, else: :that))929 function(arg, one: nested_call(a, b, c))930931 Ambiguity found at:932 │933 998 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"934 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~935 │936 └─ lib/phoenix/controller.ex:998937938 warning: unused require Logger939 │940 259 │ require Logger941 │ ~942 │943 └─ lib/phoenix/endpoint.ex:259:3944945 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead946 │947 1009 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>948 │ ~949 │950 └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/1951952 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead953 │954 34 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")955 │ ~956 │957 └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/1958959 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead960 │961 57 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")962 │ ~963 │964 └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/1965966 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead967 │968 78 │ Logger.warn """969 │ ~970 │971 └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/2972973 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead974 │975 264 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")976 │ ~977 │978 └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/2979980 warning: unused require Phoenix.Endpoint981 │982 6 │ require Phoenix.Endpoint983 │ ~984 │985 └─ lib/phoenix/controller.ex:6:3986987 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 operator988 │989 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix990 │ ~991 │992 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2993994 warning: unused require Phoenix.Endpoint995 │996 19 │ require Phoenix.Endpoint997 │ ~998 │999 └─ lib/phoenix/endpoint/render_errors.ex:19:310001001 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.10021003 This error happens when you have function calls without parentheses inside keywords. For example:10041005 function(arg, one: nested_call a, b, c)1006 function(arg, one: if expr, do: :this, else: :that)10071008 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:10091010 function(arg, one: if(expr, do: :this, else: :that))1011 function(arg, one: nested_call(a, b, c))10121013 Ambiguity found at:1014 │1015 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """1016 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1017 │1018 └─ lib/phoenix/router/resource.ex:7110191020 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead1021 │1022 653 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end1023 │ ~1024 │1025 └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/410261027 warning: unused require Phoenix.Endpoint1028 │1029 6 │ require Phoenix.Endpoint1030 │ ~1031 │1032 └─ lib/phoenix/channel/server.ex:6:310331034 warning: unused require Phoenix.Endpoint1035 │1036 192 │ require Phoenix.Endpoint1037 │ ~1038 │1039 └─ lib/phoenix/socket.ex:192:310401041 warning: unused require Logger1042 │1043 93 │ require Logger1044 │ ~1045 │1046 └─ lib/phoenix/token.ex:93:310471048 warning: comparison between distinct types found:10491050 merge_all != []10511052 given types:10531054 dynamic(non_empty_list({atom(), term()})) != empty_list()10551056 where "merge_all" was given the type:10571058 # type: dynamic(non_empty_list({atom(), term()}))1059 # from: lib/phoenix/router/route.ex:111:151060 merge_all = merge_params ++ merge_private ++ merge_assigns10611062 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 false10631064 type warning found at:1065 │1066 113 │ if merge_all != [] do1067 │ ~1068 │1069 └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/110701071 warning: a struct for Plug.Conn is expected on struct update:10721073 %Plug.Conn{conn | state: :sent}10741075 but got type:10761077 dynamic()10781079 where "conn" was given the type:10801081 # type: dynamic()1082 # from: lib/phoenix/endpoint/render_errors.ex:57:171083 conn10841085 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10861087 type warning found at:1088 │1089 61 │ %Plug.Conn{conn | state: :sent}1090 │ ~1091 │1092 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/510931094 warning: a struct for Plug.Conn is expected on struct update:10951096 %Plug.Conn{conn | query_params: %{}, params: %{}}10971098 but got type:10991100 dynamic(%{..., params: %Plug.Conn.Unfetched{}})11011102 where "conn" was given the types:11031104 # type: dynamic(%{..., params: term()})1105 # from: lib/phoenix/endpoint/render_errors.ex:124:171106 conn.params11071108 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1109 # from: lib/phoenix/endpoint/render_errors.ex:124:171110 conn.params11111112 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11131114 type warning found at:1115 │1116 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1117 │ ~1118 │1119 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/111201121 warning: a struct for Plug.Conn is expected on struct update:11221123 %Plug.Conn{conn | query_params: %{}, params: params}11241125 but got type:11261127 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})11281129 where "conn" was given the types:11301131 # type: dynamic(%{..., params: term()})1132 # from: lib/phoenix/endpoint/render_errors.ex:124:171133 conn.params11341135 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1136 # from: lib/phoenix/endpoint/render_errors.ex:124:171137 conn.params11381139 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11401141 type warning found at:1142 │1143 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1144 │ ~1145 │1146 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/111471148 warning: incompatible types given to socket_children/1:11491150 socket_children(mod)11511152 given types:11531154 -dynamic(atom())-11551156 but expected one of:11571158 %{..., __sockets__: term()}11591160 where "mod" was given the types:11611162 # type: dynamic(atom() or binary())1163 # from: lib/phoenix/endpoint/supervisor.ex:27:411164 defaults(otp_app, mod)11651166 # type: dynamic(atom())1167 # from: lib/phoenix/endpoint/supervisor.ex:31:161168 mod.init(:supervisor, env_conf)11691170 type warning found at:1171 │1172 67 │ socket_children(mod) ++1173 │ ~1174 │1175 └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/111761177 warning: a struct for Plug.Conn is expected on struct update:11781179 %Plug.Conn{conn | params: params}11801181 but got type:11821183 dynamic(%{..., params: map()})11841185 where "conn" was given the type:11861187 # type: dynamic(%{..., params: map()})1188 # from: lib/phoenix/controller.ex:1036:171189 Map.get(conn.params, required_key)11901191 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"11921193 type warning found at:1194 │1195 1043 │ %Plug.Conn{conn | params: params}1196 │ ~1197 │1198 └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/211991200 warning: expected a module (an atom) when invoking compress_file/2 in expression:12011202 compressor.compress_file(file.digested_filename, file.digested_content)12031204 where "compressor" was given the type:12051206 # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1207 # from: lib/phoenix/digester.ex:167:281208 [file_extension | _] = compressor.file_extensions12091210 where "file" was given the type:12111212 # type: dynamic(%{..., relative_path: term()})1213 # from: lib/phoenix/digester.ex:161:171214 Path.join(output_path, file.relative_path)12151216 type warning found at:1217 │1218 170 │ compressor.compress_file(file.digested_filename, file.digested_content) do1219 │ ~1220 │1221 └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/212221223Generated phoenix app1224==> phoenix_live_view1225Compiling 55 files (.ex)1226Generated phoenix_live_view app1227==> phoenix_live_dashboard1228Compiling 36 files (.ex)1229 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1230 │1231 326 │ do: struct.to_string(value)1232 │ ~1233 │1234 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:326:16: Phoenix.LiveDashboard.EctoStatsPage.format/212351236Generated phoenix_live_dashboard app1237warning: Phoenix now requires you to explicitly list which engine to use1238for Phoenix JSON encoding. We recommend everyone to upgrade to1239Jason by setting in your config/config.exs:12401241 config :phoenix, :json_library, Jason12421243And then adding {:jason, "~> 1.0"} as a dependency.12441245If instead you would rather continue using Poison, then add to1246your config/config.exs:12471248 config :phoenix, :json_library, Poison12491250 (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/21251 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/412521253warning: the :gettext compiler is no longer required in your mix.exs.12541255Please find the following line in your mix.exs and remove the :gettext entry:12561257 compilers: [..., :gettext, ...] ++ Mix.compilers(),12581259 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11260 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51261 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21262 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41263 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21264 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/512651266==> humo1267Compiling 42 files (.ex)1268 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12691270 This error happens when you have function calls without parentheses inside keywords. For example:12711272 function(arg, one: nested_call a, b, c)1273 function(arg, one: if expr, do: :this, else: :that)12741275 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:12761277 function(arg, one: if(expr, do: :this, else: :that))1278 function(arg, one: nested_call(a, b, c))12791280 Ambiguity found at:1281 │1282 47 │ raise ArgumentError,1283 │ ~~~~~~~~~~~~~~~~~~~~1284 │1285 └─ lib/humo/warehouse.ex:4712861287 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12881289 This error happens when you have function calls without parentheses inside keywords. For example:12901291 function(arg, one: nested_call a, b, c)1292 function(arg, one: if expr, do: :this, else: :that)12931294 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:12951296 function(arg, one: if(expr, do: :this, else: :that))1297 function(arg, one: nested_call(a, b, c))12981299 Ambiguity found at:1300 │1301 56 │ raise ArgumentError,1302 │ ~~~~~~~~~~~~~~~~~~~~1303 │1304 └─ lib/humo/warehouse.ex:5613051306 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13071308 This error happens when you have function calls without parentheses inside keywords. For example:13091310 function(arg, one: nested_call a, b, c)1311 function(arg, one: if expr, do: :this, else: :that)13121313 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:13141315 function(arg, one: if(expr, do: :this, else: :that))1316 function(arg, one: nested_call(a, b, c))13171318 Ambiguity found at:1319 │1320 63 │ raise ArgumentError,1321 │ ~~~~~~~~~~~~~~~~~~~~1322 │1323 └─ lib/humo/warehouse.ex:6313241325 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13261327 This error happens when you have function calls without parentheses inside keywords. For example:13281329 function(arg, one: nested_call a, b, c)1330 function(arg, one: if expr, do: :this, else: :that)13311332 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:13331334 function(arg, one: if(expr, do: :this, else: :that))1335 function(arg, one: nested_call(a, b, c))13361337 Ambiguity found at:1338 │1339 72 │ raise ArgumentError,1340 │ ~~~~~~~~~~~~~~~~~~~~1341 │1342 └─ lib/humo/warehouse.ex:7213431344 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13451346 This error happens when you have function calls without parentheses inside keywords. For example:13471348 function(arg, one: nested_call a, b, c)1349 function(arg, one: if expr, do: :this, else: :that)13501351 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:13521353 function(arg, one: if(expr, do: :this, else: :that))1354 function(arg, one: nested_call(a, b, c))13551356 Ambiguity found at:1357 │1358 80 │ raise ArgumentError,1359 │ ~~~~~~~~~~~~~~~~~~~~1360 │1361 └─ lib/humo/warehouse.ex:8013621363 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.13641365 This error happens when you have function calls without parentheses inside keywords. For example:13661367 function(arg, one: nested_call a, b, c)1368 function(arg, one: if expr, do: :this, else: :that)13691370 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:13711372 function(arg, one: if(expr, do: :this, else: :that))1373 function(arg, one: nested_call(a, b, c))13741375 Ambiguity found at:1376 │1377 79 │ unless is_binary(action), do:1378 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1379 │1380 └─ lib/humo/warehouse.ex:79138113821383== Compilation error in file lib/humo/repo.ex ==1384** (ArgumentError) could not fetch application environment Humo.Repo for application :humo because the application was not loaded nor configured1385 (elixir 1.20.3) lib/application.ex:642: Application.compile_env!/31386 lib/humo/repo.ex:4: (module)1387could not compile dependency :humo, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile humo --force", update it with "mix deps.update humo" or clean it with "mix deps.clean humo"