Build log
nerves_system_rpi4
openmaize_jwt 1.0.0 · fail · run openmaize_jwt-1.0.0-1791028971953
1721 of 1721 lines
1Resolving Hex dependencies...2Resolution completed in 0.135s3Unchanged:4 circular_buffer 1.1.05 comeonin 3.2.06 cowboy 1.1.2 VULNERABLE!7 GHSA-w4f7-4cxr-rv3c (MEDIUM)8 aka: CVE-2026-43966, EEF-CVE-2026-439669 cowboy and gun affected by an HTTP Request/Response Splitting vulnerability10 https://osv.dev/vulnerability/GHSA-w4f7-4cxr-rv3c11 cowlib 1.0.2 VULNERABLE!12 EEF-CVE-2026-7790 (HIGH)13 aka: CVE-2026-7790, GHSA-32p9-57cr-4x6514 Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS15 https://osv.dev/vulnerability/EEF-CVE-2026-77901617 EEF-CVE-2026-43970 (HIGH)18 aka: CVE-2026-43970, GHSA-84f2-rp86-235p19 Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame20 https://osv.dev/vulnerability/EEF-CVE-2026-4397021 decimal 1.9.0 VULNERABLE!22 EEF-CVE-2026-32686 (MEDIUM)23 aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v24 Unbounded exponent in decimal enables unauthenticated DoS25 https://osv.dev/vulnerability/EEF-CVE-2026-3268626 ecto 2.2.1227 elixir_make 0.10.028 interactive_cmd 0.1.429 mime 2.0.730 nerves 2.0.0-pre.231 nerves_discovery 0.1.532 nerves_logging 0.2.433 nerves_runtime 0.13.1334 nerves_system_bbb 2.30.235 nerves_system_br 1.34.436 nerves_system_mangopi_mq_pro 0.17.237 nerves_system_qemu_aarch64 0.4.238 nerves_system_rpi0 2.1.239 nerves_system_rpi4 2.1.240 nerves_system_rpi5 2.1.241 nerves_system_trellis 0.5.042 nerves_system_x86_64 1.34.243 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.144 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.145 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.146 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.147 nerves_toolchain_x86_64_nerves_linux_musl 15.3.148 nerves_uevent 0.1.749 openmaize 2.9.050 openmaize_jwt 1.0.0 RETIRED!51 (deprecated)52 plug 1.20.353 plug_crypto 2.2.054 poison 2.2.055 poolboy 1.5.256 property_table 0.3.457 ranch 1.3.258 ring_logger 0.11.759 tablet 0.3.360 telemetry 1.4.261 toolshed 0.5.062 uboot_env 1.0.263* Getting openmaize_jwt (Hex package)64* Getting nerves (Hex package)65* Getting ring_logger (Hex package)66* Getting toolshed (Hex package)67* Getting nerves_runtime (Hex package)68* Getting nerves_system_bbb (Hex package)69* Getting nerves_system_mangopi_mq_pro (Hex package)70* Getting nerves_system_qemu_aarch64 (Hex package)71* Getting nerves_system_rpi0 (Hex package)72* Getting nerves_system_rpi4 (Hex package)73* Getting nerves_system_rpi5 (Hex package)74* Getting nerves_system_trellis (Hex package)75* Getting nerves_system_x86_64 (Hex package)76* Getting nerves_system_br (Hex package)77* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)78* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)79* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)80* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)81* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)82* Getting nerves_logging (Hex package)83* Getting nerves_uevent (Hex package)84* Getting uboot_env (Hex package)85* Getting elixir_make (Hex package)86* Getting property_table (Hex package)87* Getting circular_buffer (Hex package)88* Getting interactive_cmd (Hex package)89* Getting nerves_discovery (Hex package)90* Getting tablet (Hex package)91* Getting cowboy (Hex package)92* Getting openmaize (Hex package)93* Getting plug (Hex package)94* Getting poison (Hex package)95* Getting mime (Hex package)96* Getting plug_crypto (Hex package)97* Getting telemetry (Hex package)98* Getting comeonin (Hex package)99* Getting ecto (Hex package)100* Getting decimal (Hex package)101* Getting poolboy (Hex package)102* Getting cowlib (Hex package)103* Getting ranch (Hex package)104Found retired packages, see above for details105Found packages with security advisories, see above for details106 warning: String.strip/1 is deprecated. Use String.trim/1 instead107 │108 4 │ @version File.read!("VERSION") |> String.strip109 │ ~110 │111 └─ /work/proj/deps_rpi4/poison/mix.exs:4:44: Poison.Mixfile (module)112113==> nerves_system_br114Generated nerves_system_br app115==> mime116Compiling 1 file (.ex)117Generated mime app118==> circular_buffer119Compiling 1 file (.ex)120Generated circular_buffer app121==> poison122Compiling 4 files (.ex)123 warning: using single-quoted strings to represent charlists is deprecated.124 Use ~c"" if you indeed want a charlist or use "" instead.125 You may run "mix format --migrate" to change all single-quoted126 strings to use the ~c sigil and fix this warning.127 │128 89 │ for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do129 │ ~130 │131 └─ lib/poison/encoder.ex:89:31132133 warning: using single-quoted strings to represent charlists is deprecated.134 Use ~c"" if you indeed want a charlist or use "" instead.135 You may run "mix format --migrate" to change all single-quoted136 strings to use the ~c sigil and fix this warning.137 │138 89 │ for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do139 │ ~140 │141 └─ lib/poison/encoder.ex:89:48142143 warning: using single-quoted strings to represent charlists is deprecated.144 Use ~c"" if you indeed want a charlist or use "" instead.145 You may run "mix format --migrate" to change all single-quoted146 strings to use the ~c sigil and fix this warning.147 │148 127 │ defp chunk_size(<<char>> <> _, _mode, acc) when char <= 0x1F or char in '"\\' do149 │ ~150 │151 └─ lib/poison/encoder.ex:127:75152153 warning: using single-quoted strings to represent charlists is deprecated.154 Use ~c"" if you indeed want a charlist or use "" instead.155 You may run "mix format --migrate" to change all single-quoted156 strings to use the ~c sigil and fix this warning.157 │158 67 │ defp value(<<char, _ :: binary>> = string, _keys) when char in '-0123456789' do159 │ ~160 │161 └─ lib/poison/parser.ex:67:66162163 warning: using single-quoted strings to represent charlists is deprecated.164 Use ~c"" if you indeed want a charlist or use "" instead.165 You may run "mix format --migrate" to change all single-quoted166 strings to use the ~c sigil and fix this warning.167 │168 134 │ defp number_int(<<char, _ :: binary>> = string, acc) when char in '123456789' do169 │ ~170 │171 └─ lib/poison/parser.ex:134:69172173 warning: using single-quoted strings to represent charlists is deprecated.174 Use ~c"" if you indeed want a charlist or use "" instead.175 You may run "mix format --migrate" to change all single-quoted176 strings to use the ~c sigil and fix this warning.177 │178 150 │ defp number_exp(<<e>> <> rest, frac, acc) when e in 'eE' do179 │ ~180 │181 └─ lib/poison/parser.ex:150:55182183 warning: using single-quoted strings to represent charlists is deprecated.184 Use ~c"" if you indeed want a charlist or use "" instead.185 You may run "mix format --migrate" to change all single-quoted186 strings to use the ~c sigil and fix this warning.187 │188 176 │ defp number_digits(<<char>> <> rest = string) when char in '0123456789' do189 │ ~190 │191 └─ lib/poison/parser.ex:176:62192193 warning: using single-quoted strings to represent charlists is deprecated.194 Use ~c"" if you indeed want a charlist or use "" instead.195 You may run "mix format --migrate" to change all single-quoted196 strings to use the ~c sigil and fix this warning.197 │198 184 │ defp number_digits_count(<<char>> <> rest, acc) when char in '0123456789' do199 │ ~200 │201 └─ lib/poison/parser.ex:184:64202203 warning: using single-quoted strings to represent charlists is deprecated.204 Use ~c"" if you indeed want a charlist or use "" instead.205 You may run "mix format --migrate" to change all single-quoted206 strings to use the ~c sigil and fix this warning.207 │208 208 │ for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do209 │ ~210 │211 └─ lib/poison/parser.ex:208:31212213 warning: using single-quoted strings to represent charlists is deprecated.214 Use ~c"" if you indeed want a charlist or use "" instead.215 You may run "mix format --migrate" to change all single-quoted216 strings to use the ~c sigil and fix this warning.217 │218 208 │ for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do219 │ ~220 │221 └─ lib/poison/parser.ex:208:44222223 warning: using single-quoted strings to represent charlists is deprecated.224 Use ~c"" if you indeed want a charlist or use "" instead.225 You may run "mix format --migrate" to change all single-quoted226 strings to use the ~c sigil and fix this warning.227 │228 218 │ when a1 in 'dD' and a2 in 'dD'229 │ ~230 │231 └─ lib/poison/parser.ex:218:16232233 warning: using single-quoted strings to represent charlists is deprecated.234 Use ~c"" if you indeed want a charlist or use "" instead.235 You may run "mix format --migrate" to change all single-quoted236 strings to use the ~c sigil and fix this warning.237 │238 218 │ when a1 in 'dD' and a2 in 'dD'239 │ ~240 │241 └─ lib/poison/parser.ex:218:31242243 warning: using single-quoted strings to represent charlists is deprecated.244 Use ~c"" if you indeed want a charlist or use "" instead.245 You may run "mix format --migrate" to change all single-quoted246 strings to use the ~c sigil and fix this warning.247 │248 219 │ and (b1 in '89abAB')249 │ ~250 │251 └─ lib/poison/parser.ex:219:16252253 warning: using single-quoted strings to represent charlists is deprecated.254 Use ~c"" if you indeed want a charlist or use "" instead.255 You may run "mix format --migrate" to change all single-quoted256 strings to use the ~c sigil and fix this warning.257 │258 253 │ defp skip_whitespace(<<char>> <> rest) when char in '\s\n\t\r' do259 │ ~260 │261 └─ lib/poison/parser.ex:253:55262263 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead264 │265 22 │ if Application.get_env(:poison, :native) do266 │ ~267 │268 └─ lib/poison/parser.ex:22:18: Poison.Parser (module)269270 warning: use Bitwise is deprecated. import Bitwise instead271 │272 26 │ use Bitwise273 │ ~~~~~~~~~~~274 │275 └─ lib/poison/parser.ex:26: Poison.Parser (module)276277 warning: the variable "count" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator278 │279 178 │ <<digits :: binary-size(count), rest :: binary>> = string280 │ ~281 │282 └─ lib/poison/parser.ex:178:29: Poison.Parser.number_digits/1283284 warning: the variable "n" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator285 │286 204 │ <<chunk :: binary-size(n), rest :: binary>> = string287 │ ~288 │289 └─ lib/poison/parser.ex:204:28: Poison.Parser.string_continue/2290291 warning: use Bitwise is deprecated. import Bitwise instead292 │293 79 │ use Bitwise294 │ ~~~~~~~~~~~295 │296 └─ lib/poison/encoder.ex:79: Poison.Encoder.BitString (module)297298 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 operator299 │300 123 │ <<chunk :: binary-size(size), rest :: binary>> = string301 │ ~302 │303 └─ lib/poison/encoder.ex:123:28: Poison.Encoder.BitString.escape/2304305 warning: HashDict.size/1 is deprecated. Use maps and the Map module instead306 │307 283 │ if HashDict.size(dict) < 1 do308 │ ~309 │310 └─ lib/poison/encoder.ex:283:17: Poison.Encoder.HashDict.encode/2311312 warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead313 │314 161 │ case Integer.to_char_list(char, 16) do315 │ ~316 │317 └─ lib/poison/encoder.ex:161:18: Poison.Encoder.BitString.seq/1318319Generated poison app320==> plug_crypto321Compiling 5 files (.ex)322Generated plug_crypto app323==> nerves_compatibility_test324===> Analyzing applications...325===> Compiling ranch326 ┌─ src/ranch.erl:327 │328 73 │ catch Transport:controlling_process(Socket, AcceptorsSup);329 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.330Compile directive 'nowarn_deprecated_catch' can be used to suppress331warnings in selected modules.332333334 ┌─ src/ranch_ssl.erl:335 │336 128 │ case ssl:ssl_accept(CSocket, Timeout) of337 │ ╰── Warning: ssl:ssl_accept/2 is removed; use ssl:handshake/1,2,3 instead338339 ┌─ src/ranch_ssl.erl:340 │341 233 │ end, ssl:cipher_suites());342 │ ╰── Warning: ssl:cipher_suites/0 is removed; use ssl:cipher_suites/2,3 instead343344 ┌─ src/ranch_ssl.erl:345 │346 235 │ ssl:cipher_suites()347 │ ╰── Warning: ssl:cipher_suites/0 is removed; use ssl:cipher_suites/2,3 instead348349350 ┌─ src/ranch_conns_sup.erl:351 │352 80 │ catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},353 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.354Compile directive 'nowarn_deprecated_catch' can be used to suppress355warnings in selected modules.356357358==> tablet359Compiling 2 files (.ex)360Generated tablet app361==> elixir_make362Compiling 8 files (.ex)363Generated elixir_make app364==> nerves_logging365 CC kmsg_tailer.o366 LD kmsg_tailer367Compiling 5 files (.ex)368Generated nerves_logging app369==> comeonin370mkdir -p priv371/home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-15.3.1/bin/aarch64-nerves-linux-gnu-gcc -g -O3 -Wall -I/usr/local/lib/erlang/erts-17.1/include -Ic_src -fPIC -shared --sysroot=/home/nerves/.nerves/artifacts/nerves_system_rpi4-2.1.2/staging c_src/bcrypt_nif.c c_src/blowfish.c -o priv/bcrypt_nif.so372Compiling 8 files (.ex)373 warning: using single-quoted strings to represent charlists is deprecated.374 Use ~c"" if you indeed want a charlist or use "" instead.375 You may run "mix format --migrate" to change all single-quoted376 strings to use the ~c sigil and fix this warning.377 │378 57 │ path = :filename.join(:code.priv_dir(:comeonin), 'bcrypt_nif')379 │ ~380 │381 └─ lib/comeonin/bcrypt.ex:57:54382383 warning: using single-quoted strings to represent charlists is deprecated.384 Use ~c"" if you indeed want a charlist or use "" instead.385 You may run "mix format --migrate" to change all single-quoted386 strings to use the ~c sigil and fix this warning.387 │388 159 │ [prefix, log_rounds, salt] = Enum.take(salt, 29) |> :string.tokens('$')389 │ ~390 │391 └─ lib/comeonin/bcrypt.ex:159:72392393 warning: using single-quoted strings to represent charlists is deprecated.394 Use ~c"" if you indeed want a charlist or use "" instead.395 You may run "mix format --migrate" to change all single-quoted396 strings to use the ~c sigil and fix this warning.397 │398 164 │ defp bcrypt(key, salt, prefix, log_rounds) when prefix in ['2b', '2a'] do399 │ ~400 │401 └─ lib/comeonin/bcrypt.ex:164:62402403 warning: using single-quoted strings to represent charlists is deprecated.404 Use ~c"" if you indeed want a charlist or use "" instead.405 You may run "mix format --migrate" to change all single-quoted406 strings to use the ~c sigil and fix this warning.407 │408 164 │ defp bcrypt(key, salt, prefix, log_rounds) when prefix in ['2b', '2a'] do409 │ ~410 │411 └─ lib/comeonin/bcrypt.ex:164:68412413 warning: using single-quoted strings to represent charlists is deprecated.414 Use ~c"" if you indeed want a charlist or use "" instead.415 You may run "mix format --migrate" to change all single-quoted416 strings to use the ~c sigil and fix this warning.417 │418 165 │ key_len = if prefix == '2b' and length(key) > 72, do: 73, else: length(key) + 1419 │ ~420 │421 └─ lib/comeonin/bcrypt.ex:165:28422423 warning: use Bitwise is deprecated. import Bitwise instead424 │425 48 │ use Bitwise426 │ ~~~~~~~~~~~427 │428 └─ lib/comeonin/bcrypt.ex:48: Comeonin.Bcrypt (module)429430 warning: use Bitwise is deprecated. import Bitwise instead431 │432 9 │ use Bitwise433 │ ~~~~~~~~~~~434 │435 └─ lib/comeonin/bcrypt/base64.ex:9: Comeonin.Bcrypt.Base64 (module)436437 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.438439 This error happens when you have function calls without parentheses inside keywords. For example:440441 function(arg, one: nested_call a, b, c)442 function(arg, one: if expr, do: :this, else: :that)443444 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:445446 function(arg, one: if(expr, do: :this, else: :that))447 function(arg, one: nested_call(a, b, c))448449 Ambiguity found at:450 │451 49 │ def gen_secret(_), do: raise ArgumentError, "Invalid length"452 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~453 │454 └─ lib/comeonin/otp.ex:49455456 warning: use Bitwise is deprecated. import Bitwise instead457 │458 34 │ use Bitwise459 │ ~~~~~~~~~~~460 │461 └─ lib/comeonin/otp.ex:34: Comeonin.Otp (module)462463 warning: use Bitwise is deprecated. import Bitwise instead464 │465 31 │ use Bitwise466 │ ~~~~~~~~~~~467 │468 └─ lib/comeonin/pbkdf2.ex:31: Comeonin.Pbkdf2 (module)469470 warning: the variable "max_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator471 │472 117 │ <<bin::binary-size(max_length), _::binary>> = key473 │ ~474 │475 └─ lib/comeonin/pbkdf2.ex:117:24: Comeonin.Pbkdf2.pbkdf2/7476477 warning: using single-quoted strings to represent charlists is deprecated.478 Use ~c"" if you indeed want a charlist or use "" instead.479 You may run "mix format --migrate" to change all single-quoted480 strings to use the ~c sigil and fix this warning.481 │482 11 │ b64_alphabet = Enum.with_index 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./'483 │ ~484 │485 └─ lib/comeonin/pbkdf2/base64.ex:11:34486487 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead488 │489 19 │ secure_check(rest_h, rest_s, acc ||| (h ^^^ s))490 │ ~491 │492 └─ lib/comeonin/tools.ex:19:45493494 warning: use Bitwise is deprecated. import Bitwise instead495 │496 6 │ use Bitwise497 │ ~~~~~~~~~~~498 │499 └─ lib/comeonin/tools.ex:6: Comeonin.Tools (module)500501 warning: the variable "split" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator502 │503 29 │ <<main::size(split)-binary, rest::binary>> = data504 │ ~505 │506 └─ lib/comeonin/pbkdf2/base64.ex:29:18: Comeonin.Pbkdf2.Base64.encode/1507508 warning: the variable "split" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator509 │510 52 │ <<main::size(split)-binary, rest::binary>> = data511 │ ~512 │513 └─ lib/comeonin/pbkdf2/base64.ex:52:18: Comeonin.Pbkdf2.Base64.decode/1514515 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead516 │517 76 │ hash = :crypto.hmac(:sha, Base.decode32!(secret, padding: false),518 │ ~519 │520 └─ lib/comeonin/otp.ex:76:20: Comeonin.Otp.gen_hotp/3521522 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead523 │524 121 │ initial = :crypto.hmac(:sha512, password, <<salt::binary, block_index::integer-size(32)>>)525 │ ~526 │527 └─ lib/comeonin/pbkdf2.ex:121:23: Comeonin.Pbkdf2.pbkdf2/7528 └─ lib/comeonin/pbkdf2.ex:129:20: Comeonin.Pbkdf2.iterate/4529530Generated comeonin app531==> nerves_compatibility_test532===> Analyzing applications...533===> Compiling cowlib534==> nerves_discovery535Compiling 5 files (.ex)536Generated nerves_discovery app537==> ring_logger538Compiling 7 files (.ex)539Generated ring_logger app540==> nerves_compatibility_test541===> Analyzing applications...542===> Compiling poolboy543==> decimal544Compiling 4 files (.ex)545 warning: using single-quoted strings to represent charlists is deprecated.546 Use ~c"" if you indeed want a charlist or use "" instead.547 You may run "mix format --migrate" to change all single-quoted548 strings to use the ~c sigil and fix this warning.549 │550 1320 │ '0.' ++ :lists.duplicate(-diff, ?0) ++ list551 │ ~552 │553 └─ lib/decimal.ex:1320:11554555 warning: using single-quoted strings to represent charlists is deprecated.556 Use ~c"" if you indeed want a charlist or use "" instead.557 You may run "mix format --migrate" to change all single-quoted558 strings to use the ~c sigil and fix this warning.559 │560 1351 │ list = list ++ 'E'561 │ ~562 │563 └─ lib/decimal.ex:1351:26564565 warning: using single-quoted strings to represent charlists is deprecated.566 Use ~c"" if you indeed want a charlist or use "" instead.567 You may run "mix format --migrate" to change all single-quoted568 strings to use the ~c sigil and fix this warning.569 │570 1352 │ list = if exp >= 0, do: list ++ '+', else: list571 │ ~572 │573 └─ lib/decimal.ex:1352:43574575 warning: using single-quoted strings to represent charlists is deprecated.576 Use ~c"" if you indeed want a charlist or use "" instead.577 You may run "mix format --migrate" to change all single-quoted578 strings to use the ~c sigil and fix this warning.579 │580 1775 │ int = if int == [], do: '0', else: int581 │ ~582 │583 └─ lib/decimal.ex:1775:31584585 warning: using single-quoted strings to represent charlists is deprecated.586 Use ~c"" if you indeed want a charlist or use "" instead.587 You may run "mix format --migrate" to change all single-quoted588 strings to use the ~c sigil and fix this warning.589 │590 1776 │ exp = if exp == [], do: '0', else: exp591 │ ~592 │593 └─ lib/decimal.ex:1776:31594595Generated decimal app596warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"597 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2598 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1599 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5600 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2601 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4602 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2603604==> ecto605Compiling 70 files (.ex)606 warning: using single-quoted strings to represent charlists is deprecated.607 Use ~c"" if you indeed want a charlist or use "" instead.608 You may run "mix format --migrate" to change all single-quoted609 strings to use the ~c sigil and fix this warning.610 │611 166 │ defp insert_all_value(_), do: '?'612 │ ~613 │614 └─ lib/ecto/adapters/mysql/connection.ex:166:37615616 warning: using single-quoted strings to represent charlists is deprecated.617 Use ~c"" if you indeed want a charlist or use "" instead.618 You may run "mix format --migrate" to change all single-quoted619 strings to use the ~c sigil and fix this warning.620 │621 354 │ '?'622 │ ~623 │624 └─ lib/ecto/adapters/mysql/connection.ex:354:7625626 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.627628 This error happens when you have function calls without parentheses inside keywords. For example:629630 function(arg, one: nested_call a, b, c)631 function(arg, one: if expr, do: :this, else: :that)632633 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:634635 function(arg, one: if(expr, do: :this, else: :that))636 function(arg, one: nested_call(a, b, c))637638 Ambiguity found at:639 │640 2286 │ raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"641 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~642 │643 └─ lib/ecto/changeset.ex:2286644645 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.646647 This error happens when you have function calls without parentheses inside keywords. For example:648649 function(arg, one: nested_call a, b, c)650 function(arg, one: if expr, do: :this, else: :that)651652 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:653654 function(arg, one: if(expr, do: :this, else: :that))655 function(arg, one: nested_call(a, b, c))656657 Ambiguity found at:658 │659 265 │ do: raise ArgumentError, "a constraint must have either a check or exclude option"660 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~661 │662 └─ lib/ecto/migration/runner.ex:265663664 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.665666 This error happens when you have function calls without parentheses inside keywords. For example:667668 function(arg, one: nested_call a, b, c)669 function(arg, one: if expr, do: :this, else: :that)670671 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:672673 function(arg, one: if(expr, do: :this, else: :that))674 function(arg, one: nested_call(a, b, c))675676 Ambiguity found at:677 │678 267 │ do: raise ArgumentError, "a constraint must not have both check and exclude options"679 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~680 │681 └─ lib/ecto/migration/runner.ex:267682683 warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity684 │685 136 │ {:::, _, [left, _]} -> is_integer(left) or is_binary(left)686 │ ~687 │688 └─ lib/ecto/query/builder.ex:136:8689690 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)691 │692 643 │ def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime693 │ ~~694 │695 └─ lib/ecto/query/builder.ex:643:45: Ecto.Query.Builder.quoted_type/2696697 warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)698 │699 644 │ def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date700 │ ~~701 │702 └─ lib/ecto/query/builder.ex:644:41: Ecto.Query.Builder.quoted_type/2703704 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.705706 This error happens when you have function calls without parentheses inside keywords. For example:707708 function(arg, one: nested_call a, b, c)709 function(arg, one: if expr, do: :this, else: :that)710711 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:712713 function(arg, one: if(expr, do: :this, else: :that))714 function(arg, one: nested_call(a, b, c))715716 Ambiguity found at:717 │718 454 │ do: raise ArgumentError, "a changeset with action #{inspect given} was given to #{inspect repo}.#{action}/2"719 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~720 │721 └─ lib/ecto/repo/schema.ex:454722723 warning: unused require Ecto.Query724 │725 6 │ require Ecto.Query726 │ ~727 │728 └─ lib/ecto/repo/preloader.ex:6:3729730Compiling lib/ecto.ex (it's taking more than 10s)731 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead732 │733 9 │ schema "schema_migrations" do734 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~735 │736 └─ lib/ecto/migration/schema_migration.ex:9: Ecto.Migration.SchemaMigration (module)737738 warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)739 │740 258 │ err in DBConnection.OwnershipError ->741 │ ~742 │743 └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/6744745 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead746 │747 260 │ reraise %{err | message: message}, System.stacktrace748 │ ~749 │750 └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/6751752 warning: incompatible types given to Mix.Ecto.ensure_started/2:753754 Mix.Ecto.ensure_started(repo, opts)755756 given types:757758 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))759760 but expected one of:761762 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())763764 where "opts" was given the type:765766 # type: dynamic(767 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or768 non_struct_map()769 )770 # from: lib/mix/tasks/ecto.rollback.ex:64:10771 opts =772 if opts[:quiet] do773 Keyword.merge(opts, log: false, log_sql: false)774 else775 opts776 end777778 where "repo" was given the type:779780 # type: dynamic(atom())781 # from: lib/mix/tasks/ecto.rollback.ex:70:7782 Mix.Ecto.ensure_repo(repo, args)783784 type warning found at:785 │786 72 │ {:ok, pid, apps} = ensure_started(repo, opts)787 │ ~788 │789 └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/2790791 warning: incompatible types given to Mix.Ecto.ensure_started/2:792793 Mix.Ecto.ensure_started(repo, all: true)794795 given types:796797 -dynamic(atom())-, non_empty_list({:all, true})798799 but expected one of:800801 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())802803 where "repo" was given the type:804805 # type: dynamic(atom())806 # from: lib/mix/tasks/ecto.migrations.ex:37:7807 Mix.Ecto.ensure_repo(repo, args)808809 type warning found at:810 │811 39 │ {:ok, pid, _} = ensure_started(repo, all: true)812 │ ~813 │814 └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/3815816 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead817 │818 2400 │ surround_many("#Ecto.Changeset<", list, ">", opts, fn819 │ ~820 │821 └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/2822823 warning: incompatible types given to Mix.Ecto.ensure_started/2:824825 Mix.Ecto.ensure_started(repo, opts)826827 given types:828829 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))830831 but expected one of:832833 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())834835 where "opts" was given the type:836837 # type: dynamic(838 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or839 non_struct_map()840 )841 # from: lib/mix/tasks/ecto.migrate.ex:68:10842 opts =843 if opts[:quiet] do844 Keyword.merge(opts, log: false, log_sql: false)845 else846 opts847 end848849 where "repo" was given the type:850851 # type: dynamic(atom())852 # from: lib/mix/tasks/ecto.migrate.ex:74:7853 Mix.Ecto.ensure_repo(repo, args)854855 type warning found at:856 │857 76 │ {:ok, pid, apps} = ensure_started(repo, opts)858 │ ~859 │860 └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/2861862 warning: incompatible types given to Mix.Ecto.source_repo_priv/1:863864 Mix.Ecto.source_repo_priv(repo)865866 given types:867868 -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-869870 but expected one of:871872 atom()873874 where "repo" was given the types:875876 # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})877 # from: lib/mix/tasks/ecto.load.ex:70:22878 Keyword.merge(repo.config, opts)879880 # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})881 # from: lib/mix/tasks/ecto.load.ex:72:27882 repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)883884 type warning found at:885 │886 72 │ case repo.__adapter__.structure_load(source_repo_priv(repo), config) do887 │ ~888 │889 └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/2890891 warning: expected a map or struct when accessing .__adapter__ in expression:892893 repo.__adapter__894895 where "repo" was given the type:896897 # type: dynamic(atom())898 # from: lib/mix/tasks/ecto.load.ex:53:7899 Mix.Ecto.ensure_repo(repo, args)900901 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()902903 type warning found at:904 │905 54 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,906 │ ~907 │908 └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/1909910 warning: the following clause will never match:911912 [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->913914 because it attempts to match on the result of:915916 System.stacktrace()917918 which has type:919920 empty_list()921922 where "args_or_arity" was given the type:923924 # type: float() or integer() or non_empty_list(term())925 # from: lib/ecto/changeset.ex926 (_() when args_or_arity == 2) when length(args_or_arity) == 2927928 where "module" was given the type:929930 # type: dynamic()931 # from: lib/ecto/changeset.ex:733:30932 module933934 type warning found at:935 │936 741 │ ... when length(args_or_arity) == 2 ->937 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~938 │939 └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/2940941 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead942 │943 739 │ case System.stacktrace do944 │ ~945 │946 └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/2947948 warning: expected a map or struct when accessing .__adapter__ in expression:949950 repo.__adapter__951952 where "repo" was given the type:953954 # type: dynamic(atom())955 # from: lib/mix/tasks/ecto.dump.ex:50:7956 Mix.Ecto.ensure_repo(repo, args)957958 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()959960 type warning found at:961 │962 51 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,963 │ ~964 │965 └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/1966967 warning: expected a map or struct when accessing .__adapter__ in expression:968969 repo.__adapter__970971 where "repo" was given the type:972973 # type: dynamic(atom())974 # from: lib/mix/tasks/ecto.drop.ex:39:7975 Mix.Ecto.ensure_repo(repo, args)976977 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()978979 type warning found at:980 │981 40 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,982 │ ~983 │984 └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/1985986 warning: expected a map or struct when accessing .__adapter__ in expression:987988 repo.__adapter__989990 where "repo" was given the type:991992 # type: dynamic(atom())993 # from: lib/mix/tasks/ecto.create.ex:37:7994 Mix.Ecto.ensure_repo(repo, args)995996 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()997998 type warning found at:999 │1000 38 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1001 │ ~1002 │1003 └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/110041005 warning: Mix.Project.compile/1 is deprecated. Use Mix.Task.run("compile", args) instead1006 │1007 62 │ Mix.Project.compile(args)1008 │ ~1009 │1010 └─ lib/mix/ecto.ex:62:19: Mix.Ecto.ensure_repo/210111012 warning: expected a module (an atom) when invoking start_link/1 in expression:10131014 repo.start_link(pool_size: pool_size)10151016 where "pool_size" was given the type:10171018 # type: dynamic()1019 # from: lib/mix/ecto.ex:101:151020 pool_size = Keyword.get(opts, :pool_size, 1)10211022 where "repo" was given the type:10231024 # type: dynamic(%{..., __adapter__: atom()})1025 # from: lib/mix/ecto.ex:99:361026 repo.__adapter__.ensure_all_started(repo, :temporary)10271028 type warning found at:1029 │1030 102 │ case repo.start_link(pool_size: pool_size) do1031 │ ~1032 │1033 └─ lib/mix/ecto.ex:102:15: Mix.Ecto.ensure_started/210341035 warning: Logger.remove_backend/1 is deprecated. Use LoggerBackends.remove/2 from :logger_backends dependency1036 │1037 146 │ Logger.remove_backend(:console)1038 │ ~1039 │1040 └─ lib/mix/ecto.ex:146:12: Mix.Ecto.restart_apps_if_migrated/210411042 warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1043 │1044 155 │ Logger.add_backend(:console, flush: true)1045 │ ~1046 │1047 └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/210481049 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1050 │1051 856 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1052 │ ~1053 │1054 └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/21055 └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/210561057 warning: incompatible types given to get_source/1:10581059 get_source(repo)10601061 given types:10621063 -dynamic(atom())-10641065 but expected one of:10661067 %{..., config: empty_list() or non_empty_list(term(), term())}10681069 where "repo" was given the type:10701071 # type: dynamic(atom())1072 # from: lib/ecto/migration/schema_migration.ex:24:131073 repo.all(1074 Map.put(1075 (1076 query =1077 (1078 query = {get_source(repo), Ecto.Migration.SchemaMigration}1079 Ecto.Query.Builder.From.apply(query, 1)1080 )1081 1082 Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{1083 ...,1084 expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1085 file: "/work/proj/deps_rpi4/ecto/lib/ecto/migration/schema_migration.ex",1086 line: 22,1087 take: %{}1088 })1089 ),1090 :prefix,1091 prefix1092 ), timeout: :infinity, log: false)10931094 type warning found at:1095 │1096 22 │ from(p in {get_source(repo), __MODULE__}, select: p.version)1097 │ ~1098 │1099 └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/211001101 warning: incompatible types given to get_source/1:11021103 get_source(repo)11041105 given types:11061107 -dynamic(atom())-11081109 but expected one of:11101111 %{..., config: empty_list() or non_empty_list(term(), term())}11121113 where "repo" was given the type:11141115 # type: dynamic(atom())1116 # from: lib/ecto/migration/schema_migration.ex:30:131117 repo.insert!(1118 Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1119 prefix: prefix,1120 source: get_source(repo)1121 ), timeout: :infinity, log: false)11221123 type warning found at:1124 │1125 29 │ |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1126 │ ~1127 │1128 └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/311291130 warning: incompatible types given to get_source/1:11311132 get_source(repo)11331134 given types:11351136 -dynamic(atom())-11371138 but expected one of:11391140 %{..., config: empty_list() or non_empty_list(term(), term())}11411142 where "repo" was given the type:11431144 # type: dynamic(atom())1145 # from: lib/ecto/migration/schema_migration.ex:36:131146 repo.delete_all(1147 Map.put(1148 (1149 query =1150 (1151 query = {get_source(repo), Ecto.Migration.SchemaMigration}1152 Ecto.Query.Builder.From.apply(query, 1)1153 )1154 1155 Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1156 expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1157 op: :and,1158 params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1159 file: "/work/proj/deps_rpi4/ecto/lib/ecto/migration/schema_migration.ex",1160 line: 341161 })1162 ),1163 :prefix,1164 prefix1165 ), timeout: :infinity, log: false)11661167 type warning found at:1168 │1169 34 │ from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1170 │ ~1171 │1172 └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/311731174 warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)1175 │1176 1422 │ defp type_to_module(:naive_datetime), do: NaiveDateTime1177 │ ~1178 │1179 └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/111801181 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1182 │1183 715 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1184 │ ~1185 │1186 └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/211871188 warning: the following conditional expression:11891190 is_atom(related)11911192 will always evaluate to:11931194 dynamic(true)11951196 where "related" was given the type:11971198 # type: dynamic(atom())1199 # from: lib/ecto/association.ex:730:151200 related = Ecto.Association.related_from_query(queryable)12011202 type warning found at:1203 │1204 732 │ unless is_atom(related) do1205 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1206 │1207 └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/312081209 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1210 │1211 1885 │ if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do1212 │ ~1213 │1214 └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/312151216 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1217 │1218 430 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1219 │ ~1220 │1221 └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/212221223 warning: the following clause will never match:12241225 {:error, _} = error ->12261227 because it attempts to match on the result of:12281229 apply(changeset, adapter, :insert, args)12301231 which has type:12321233 dynamic({:invalid or :ok, term()})12341235 type warning found at:1236 │1237 219 │ {:error, _} = error ->1238 │ ~1239 │1240 └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/412411242 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1243 │1244 29 │ surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)1245 │ ~1246 │1247 └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/212481249 warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead1250 │1251 144 │ Macro.to_string(expr, &expr_to_string(&1, &2, names, part))1252 │ ~1253 │1254 └─ lib/ecto/query/inspect.ex:144:11: Inspect.Ecto.Query.expr/312551256 warning: the following clause will never match:12571258 {:error, _} = error ->12591260 because it attempts to match on the result of:12611262 apply(changeset, adapter, action, args)12631264 which has type:12651266 dynamic({:invalid or :ok, term()})12671268 type warning found at:1269 │1270 297 │ {:error, _} = error ->1271 │ ~1272 │1273 └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/412741275 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1276 │1277 54 │ filter_and_reraise e, System.stacktrace1278 │ ~1279 │1280 └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/512811282 warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead1283 │1284 44 │ index = Map.size(params)1285 │ ~1286 │1287 └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/51288 └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/512891290 warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead1291 │1292 614 │ Decimal.minus(decimal)1293 │ ~1294 │1295 └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/112961297 warning: BadStructError.exception/1 is undefined (module BadStructError is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)1298 │1299 228 │ raise BadStructError, struct: struct, term: data1300 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1301 │1302 └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/513031304 warning: the following clause will never match:13051306 {:error, _} ->13071308 because it attempts to match on the result of:13091310 NaiveDateTime.new(date, time)13111312 which has type:13131314 dynamic({:ok, %NaiveDateTime{}})13151316 type warning found at:1317 │1318 803 │ {:error, _} -> :error1319 │ ~~~~~~~~~~~~~~~~~~~~~1320 │1321 └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/113221323 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1324 │1325 214 │ filter_and_reraise e, System.stacktrace1326 │ ~1327 │1328 └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41329 └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/413301331 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1332 │1333 159 │ supervise(children, strategy: :one_for_one)1334 │ ~1335 │1336 └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/113371338 warning: expected a map or struct when accessing .__struct__ in expression:13391340 schema.__struct__13411342 where "schema" was given the types:13431344 # type: dynamic(atom() and not nil)1345 # from: lib/ecto/query/planner.ex:1186:411346 schema13471348 # type: atom()1349 # from: lib/ecto/query/planner.ex:1186:611350 is_atom(schema)13511352 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13531354 type warning found at:1355 │1356 1190 │ Map.has_key?(schema.__struct__, field) ->1357 │ ~1358 │1359 └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/613601361 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1362 │1363 15 │ surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)1364 │ ~1365 │1366 └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/213671368 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1369 │1370 12 │ worker(Ecto.Migration.Runner, [], restart: :temporary)1371 │ ~1372 │1373 └─ lib/ecto/migration/supervisor.ex:12:7: Ecto.Migration.Supervisor.init/113741375 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1376 │1377 15 │ supervise(children, strategy: :simple_one_for_one)1378 │ ~1379 │1380 └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/113811382 warning: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:13831384 Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])13851386 given types:13871388 (1389 -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,1390 dynamic()1391 )13921393 but expected one of:13941395 atom(), term()13961397 where "opts" was given the type:13981399 # type: dynamic(1400 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1401 non_struct_map()1402 )1403 # from: lib/ecto/migrator.ex:44:651404 opts[:prefix]14051406 where "repo" was given the type:14071408 # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})1409 # from: lib/ecto/migrator.ex:44:231410 Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])14111412 type warning found at:1413 │1414 45 │ SchemaMigration.migrated_versions(repo, opts[:prefix])1415 │ ~1416 │1417 └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/214181419 warning: expected a module (an atom) when invoking transaction/2 in expression:14201421 repo.transaction(fun, log: false, timeout: :infinity)14221423 where "fun" was given the type:14241425 # type: dynamic()1426 # from: lib/ecto/migrator.ex:114:471427 fun14281429 where "repo" was given the types:14301431 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: term()}})1432 # from: lib/ecto/migrator.ex:118:241433 repo.__adapter__.supports_ddl_transaction?14341435 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: not false and not nil}})1436 # from: lib/ecto/migrator.ex:118:241437 repo.__adapter__.supports_ddl_transaction?14381439 type warning found at:1440 │1441 119 │ repo.transaction(fun, [log: false, timeout: :infinity])1442 │ ~1443 │1444 └─ lib/ecto/migrator.ex:119:14: Ecto.Migrator.run_maybe_in_transaction/314451446 warning: Code.load_file/1 is deprecated. Use Code.require_file/2 or Code.compile_file/2 instead1447 │1448 291 │ modules = Code.load_file(file)1449 │ ~1450 │1451 └─ lib/ecto/migrator.ex:291:20: Ecto.Migrator.extract_module/214521453 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1454 │1455 321 │ reraise error, System.stacktrace1456 │ ~1457 │1458 └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/314591460 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1461 │1462 10 │ worker(Ecto.Registry, []),1463 │ ~1464 │1465 └─ lib/ecto/application.ex:10:7: Ecto.Application.start/214661467 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1468 │1469 11 │ supervisor(Ecto.Migration.Supervisor, [])1470 │ ~1471 │1472 └─ lib/ecto/application.ex:11:7: Ecto.Application.start/214731474Generated ecto app1475==> interactive_cmd1476Compiling 1 file (.ex)1477Generated interactive_cmd app1478==> nerves1479Compiling 65 files (.ex)1480 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)1481 │1482 6 │ defmodule Mix.Tasks.Nerves.Init do1483 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1484 │1485 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)14861487 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.beam)1488 │1489 6 │ defmodule Nerves do1490 │ ~~~~~~~~~~~~~~~~~~~1491 │1492 └─ lib/nerves.ex:6: Nerves (module)14931494 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)1495 │1496 5 │ defmodule Nerves.ArtifactResolver do1497 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1498 │1499 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)15001501 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)1502 │1503 6 │ defmodule Nerves.BuildAction.AppModes do1504 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1505 │1506 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)15071508 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)1509 │1510 5 │ defmodule Nerves.BuildAction.CheckExecutables do1511 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1512 │1513 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)15141515 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)1516 │1517 8 │ defmodule Nerves.BuildAction.Erlinit do1518 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1519 │1520 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)15211522 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)1523 │1524 5 │ defmodule Nerves.BuildAction.Firmware do1525 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1526 │1527 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)15281529 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)1530 │1531 7 │ defmodule Nerves.BuildAction.IExStartupCheck do1532 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1533 │1534 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)15351536 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)1537 │1538 5 │ defmodule Nerves.BuildAction.NervesV1System do1539 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1540 │1541 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)15421543 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)1544 │1545 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do1546 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1547 │1548 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)15491550 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)1551 │1552 5 │ defmodule Nerves.BuildAction.Rootfs do1553 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1554 │1555 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)15561557 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)1558 │1559 6 │ defmodule Nerves.BuildAction.SortApps do1560 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1561 │1562 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)15631564 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)1565 │1566 5 │ defmodule Nerves.BuildAction.StripAll do1567 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1568 │1569 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)15701571 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)1572 │1573 5 │ defmodule Nerves.BuildAction.Trimmer do1574 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1575 │1576 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)15771578 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)1579 │1580 5 │ defmodule Nerves.BuildPlan do1581 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1582 │1583 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)15841585 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)1586 │1587 5 │ defmodule Nerves.BuildPlan.Checks do1588 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1589 │1590 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)15911592 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Container.beam)1593 │1594 6 │ defmodule Nerves.Container do1595 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1596 │1597 └─ lib/nerves/container.ex:6: Nerves.Container (module)15981599 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)1600 │1601 5 │ defmodule Nerves.Fingerprint do1602 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1603 │1604 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)16051606 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)1607 │1608 5 │ defmodule Nerves.MixPackage do1609 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1610 │1611 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)16121613 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Paths.beam)1614 │1615 5 │ defmodule Nerves.Paths do1616 │ ~~~~~~~~~~~~~~~~~~~~~~~~~1617 │1618 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)16191620 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)1621 │1622 5 │ defmodule Nerves.TargetTuple do1623 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1624 │1625 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)16261627Generated nerves app1628==> nerves_toolchain_aarch64_nerves_linux_gnu1629Compiling 1 file (.ex)1630Generated nerves_toolchain_aarch64_nerves_linux_gnu app1631==> nerves_system_rpi41632Generated nerves_system_rpi4 app1633==> nerves_compatibility_test1634===> Analyzing applications...1635===> Compiling telemetry1636===> Analyzing applications...1637===> Compiling cowboy1638 ┌─ src/cowboy_handler.erl:1639 │1640 87 │ Stacktrace = erlang:get_stacktrace(),1641 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16421643 ┌─ src/cowboy_handler.erl:1644 │1645 116 │ Stacktrace = erlang:get_stacktrace(),1646 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16471648 ┌─ src/cowboy_handler.erl:1649 │1650 235 │ Stacktrace = erlang:get_stacktrace(),1651 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16521653 ┌─ src/cowboy_handler.erl:1654 │1655 290 │ {stacktrace, erlang:get_stacktrace()},1656 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace165716581659 ┌─ src/cowboy_rest.erl:1660 │1661 69 │ Stacktrace = erlang:get_stacktrace(),1662 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16631664 ┌─ src/cowboy_rest.erl:1665 │1666 1006 │ Stacktrace = erlang:get_stacktrace(),1667 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace166816691670 ┌─ src/cowboy_websocket.erl:1671 │1672 147 │ Stacktrace = erlang:get_stacktrace(),1673 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16741675 ┌─ src/cowboy_websocket.erl:1676 │1677 645 │ {stacktrace, erlang:get_stacktrace()},1678 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16791680 ┌─ src/cowboy_websocket.erl:1681 │1682 755 │ {stacktrace, erlang:get_stacktrace()},1683 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace168416851686==> plug1687Compiling 1 file (.erl)1688Compiling 42 files (.ex)1689Generated plug app1690==> openmaize1691Compiling 13 files (.ex)1692 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.16931694 This error happens when you have function calls without parentheses inside keywords. For example:16951696 function(arg, one: nested_call a, b, c)1697 function(arg, one: if expr, do: :this, else: :that)16981699 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:17001701 function(arg, one: if(expr, do: :this, else: :that))1702 function(arg, one: nested_call(a, b, c))17031704 Ambiguity found at:1705 │1706 85 │ def check_user_pass(_, _, _), do: raise ArgumentError, "invalid params or options"1707 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1708 │1709 └─ lib/openmaize/login.ex:85171017111712== Compilation error in file lib/openmaize/database.ex ==1713** (UndefinedFunctionError) function Ecto.Query.Builder.Lock.build/3 is undefined (module Ecto.Query.Builder.Lock is not available)1714 (ecto 2.2.12) Ecto.Query.Builder.Lock.build({{:., [line: 90], [{:__aliases__, [line: 90, counter: {Openmaize.Database, 31}, alias: false], [:Ecto, :Query]}, :where]}, [line: 90], [{:__block__, [line: 90], [{:=, [line: 90], [{:query, [line: 90], Ecto.Query.Builder}, {:user_model, [line: 90, column: 15], nil}]}, {{:., [line: 90], [Ecto.Query.Builder.From, :apply]}, [line: 90], [{:query, [line: 90], Ecto.Query.Builder}, 1]}]}, [u: 0], {:==, [line: 90, column: 39], [{{:., [line: 90, column: 35], [{:u, [line: 90, column: 34], nil}, :id]}, [no_parens: true, line: 90, column: 36], []}, {:^, [line: 90, column: 42], [{:id, [line: 90, column: 43], nil}]}]}]}, "FOR UPDATE", #Macro.Env<aliases: [{Config, Openmaize.Config}, {Password, Openmaize.Password}], context: nil, context_modules: [Openmaize.Database], file: "/work/proj/deps_rpi4/openmaize/lib/openmaize/database.ex", function: {:get_user_with_lock, 3}, functions: [{Ecto.Query, [exclude: 2, first: 1, first: 2, last: 1, last: 2, subquery: 1, subquery: 2]}, {Ecto.Changeset, [add_error: 3, add_error: 4, apply_action: 2, apply_changes: 1, assoc_constraint: 2, assoc_constraint: 3, cast: 3, cast: 4, cast_assoc: 2, cast_assoc: 3, cast_embed: 2, cast_embed: 3, change: 1, change: 2, check_constraint: 2, check_constraint: 3, delete_change: 2, exclusion_constraint: 2, exclusion_constraint: 3, fetch_change: 2, fetch_field: 2, force_change: 3, foreign_key_constraint: 2, foreign_key_constraint: 3, get_change: 2, get_change: 3, get_field: 2, get_field: 3, merge: 2, no_assoc_constraint: 2, no_assoc_constraint: 3, optimistic_lock: 2, optimistic_lock: 3, prepare_changes: 2, put_assoc: 3, put_assoc: 4, put_change: 3, put_embed: 3, put_embed: 4, traverse_errors: 2, unique_constraint: 2, unique_constraint: 3, unsafe_validate_unique: 3, unsafe_validate_unique: 4, update_change: 3, validate_acceptance: 2, validate_acceptance: 3, validate_change: 3, validate_change: 4, validate_confirmation: 2, validate_confirmation: 3, validate_exclusion: 3, validate_exclusion: 4, validate_format: 3, validate_format: 4, validate_inclusion: 3, validate_inclusion: 4, validate_length: 3, validate_number: 3, validate_required: 2, validate_required: 3, validate_subset: 3, validate_subset: 4]}, {Kernel, [!=: 2, !==: 2, *: 2, **: 2, +: 1, +: 2, ++: 2, -: 1, -: 2, --: 2, /: 2, <: 2, <=: 2, ==: 2, ===: 2, =~: 2, >: 2, >=: 2, abs: 1, apply: 2, apply: 3, binary_part: 3, binary_slice: 2, binary_slice: 3, bit_size: 1, byte_size: 1, ceil: 1, div: 2, elem: 2, exit: 1, floor: 1, function_exported?: 3, get_and_update_in: 3, get_in: 2, hd: 1, inspect: 1, inspect: 2, is_atom: 1, is_binary: 1, is_bitstring: 1, is_boolean: 1, is_float: 1, is_function: 1, is_function: 2, is_integer: 1, is_list: 1, is_map: 1, is_map_key: 2, is_number: 1, is_pid: 1, is_port: 1, is_reference: 1, is_tuple: 1, length: 1, macro_exported?: 3, make_ref: 0, map_size: 1, max: 2, min: 2, node: 0, node: 1, not: 1, pop_in: 2, put_elem: 3, put_in: 3, rem: 2, round: 1, self: 0, send: 2, spawn: 1, spawn: 3, spawn_link: 1, spawn_link: 3, spawn_monitor: 1, spawn_monitor: 3, struct: 1, struct: 2, struct!: 1, struct!: 2, throw: 1, tl: 1, to_timeout: 1, trunc: 1, tuple_size: 1, update_in: 3]}], lexical_tracker: #PID<0.2276.0>, line: 90, macro_aliases: [], macros: [{Ecto.Query, [distinct: 2, distinct: 3, dynamic: 1, dynamic: 2, from: 1, from: 2, group_by: 2, group_by: 3, having: 2, having: 3, join: 3, join: 4, join: 5, limit: 2, ...]}, ...], ...>)1715 (ecto 2.2.12) expanding macro: Ecto.Query.lock/21716 lib/openmaize/database.ex:90: Openmaize.Database.get_user_with_lock/31717 (ecto 2.2.12) expanding macro: Ecto.Query.from/21718 lib/openmaize/database.ex:90: Openmaize.Database.get_user_with_lock/31719 (elixir 1.20.3) expanding macro: Kernel.|>/21720 lib/openmaize/database.ex:91: Openmaize.Database.get_user_with_lock/31721could not compile dependency :openmaize, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile openmaize --force", update it with "mix deps.update openmaize" or clean it with "mix deps.clean openmaize"