Build log
nerves_system_trellis
openmaize_jwt 1.0.0 · fail · run openmaize_jwt-1.0.0-1791028971953
1720 of 1720 lines
1Resolving Hex dependencies...2Resolution completed in 0.2s3Unchanged: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_trellis/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_conns_sup.erl:327 │328 80 │ catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},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.erl:351 │352 73 │ catch Transport:controlling_process(Socket, AcceptorsSup);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_armv7_nerves_linux_gnueabihf-15.3.1/bin/armv7-nerves-linux-gnueabihf-gcc -g -O3 -Wall -I/usr/local/lib/erlang/erts-17.1/include -Ic_src -fPIC -shared --sysroot=/home/nerves/.nerves/artifacts/nerves_system_trellis-0.5.0/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: 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 operator488 │489 29 │ <<main::size(split)-binary, rest::binary>> = data490 │ ~491 │492 └─ lib/comeonin/pbkdf2/base64.ex:29:18: Comeonin.Pbkdf2.Base64.encode/1493494 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 operator495 │496 52 │ <<main::size(split)-binary, rest::binary>> = data497 │ ~498 │499 └─ lib/comeonin/pbkdf2/base64.ex:52:18: Comeonin.Pbkdf2.Base64.decode/1500501 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead502 │503 19 │ secure_check(rest_h, rest_s, acc ||| (h ^^^ s))504 │ ~505 │506 └─ lib/comeonin/tools.ex:19:45507508 warning: use Bitwise is deprecated. import Bitwise instead509 │510 6 │ use Bitwise511 │ ~~~~~~~~~~~512 │513 └─ lib/comeonin/tools.ex:6: Comeonin.Tools (module)514515 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead516 │517 121 │ initial = :crypto.hmac(:sha512, password, <<salt::binary, block_index::integer-size(32)>>)518 │ ~519 │520 └─ lib/comeonin/pbkdf2.ex:121:23: Comeonin.Pbkdf2.pbkdf2/7521 └─ lib/comeonin/pbkdf2.ex:129:20: Comeonin.Pbkdf2.iterate/4522523 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead524 │525 76 │ hash = :crypto.hmac(:sha, Base.decode32!(secret, padding: false),526 │ ~527 │528 └─ lib/comeonin/otp.ex:76:20: Comeonin.Otp.gen_hotp/3529530Generated 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:3729730 warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead731 │732 9 │ schema "schema_migrations" do733 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~734 │735 └─ lib/ecto/migration/schema_migration.ex:9: Ecto.Migration.SchemaMigration (module)736737 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead738 │739 2400 │ surround_many("#Ecto.Changeset<", list, ">", opts, fn740 │ ~741 │742 └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/2743744 warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)745 │746 258 │ err in DBConnection.OwnershipError ->747 │ ~748 │749 └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/6750751 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead752 │753 260 │ reraise %{err | message: message}, System.stacktrace754 │ ~755 │756 └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/6757758 warning: incompatible types given to Mix.Ecto.ensure_started/2:759760 Mix.Ecto.ensure_started(repo, opts)761762 given types:763764 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))765766 but expected one of:767768 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())769770 where "opts" was given the type:771772 # type: dynamic(773 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or774 non_struct_map()775 )776 # from: lib/mix/tasks/ecto.rollback.ex:64:10777 opts =778 if opts[:quiet] do779 Keyword.merge(opts, log: false, log_sql: false)780 else781 opts782 end783784 where "repo" was given the type:785786 # type: dynamic(atom())787 # from: lib/mix/tasks/ecto.rollback.ex:70:7788 Mix.Ecto.ensure_repo(repo, args)789790 type warning found at:791 │792 72 │ {:ok, pid, apps} = ensure_started(repo, opts)793 │ ~794 │795 └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/2796797 warning: incompatible types given to Mix.Ecto.ensure_started/2:798799 Mix.Ecto.ensure_started(repo, all: true)800801 given types:802803 -dynamic(atom())-, non_empty_list({:all, true})804805 but expected one of:806807 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())808809 where "repo" was given the type:810811 # type: dynamic(atom())812 # from: lib/mix/tasks/ecto.migrations.ex:37:7813 Mix.Ecto.ensure_repo(repo, args)814815 type warning found at:816 │817 39 │ {:ok, pid, _} = ensure_started(repo, all: true)818 │ ~819 │820 └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/3821822 warning: incompatible types given to Mix.Ecto.ensure_started/2:823824 Mix.Ecto.ensure_started(repo, opts)825826 given types:827828 -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))829830 but expected one of:831832 %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())833834 where "opts" was given the type:835836 # type: dynamic(837 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or838 non_struct_map()839 )840 # from: lib/mix/tasks/ecto.migrate.ex:68:10841 opts =842 if opts[:quiet] do843 Keyword.merge(opts, log: false, log_sql: false)844 else845 opts846 end847848 where "repo" was given the type:849850 # type: dynamic(atom())851 # from: lib/mix/tasks/ecto.migrate.ex:74:7852 Mix.Ecto.ensure_repo(repo, args)853854 type warning found at:855 │856 76 │ {:ok, pid, apps} = ensure_started(repo, opts)857 │ ~858 │859 └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/2860861 warning: incompatible types given to Mix.Ecto.source_repo_priv/1:862863 Mix.Ecto.source_repo_priv(repo)864865 given types:866867 -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-868869 but expected one of:870871 atom()872873 where "repo" was given the types:874875 # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})876 # from: lib/mix/tasks/ecto.load.ex:70:22877 Keyword.merge(repo.config, opts)878879 # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})880 # from: lib/mix/tasks/ecto.load.ex:72:27881 repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)882883 type warning found at:884 │885 72 │ case repo.__adapter__.structure_load(source_repo_priv(repo), config) do886 │ ~887 │888 └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/2889890 warning: the following clause will never match:891892 [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->893894 because it attempts to match on the result of:895896 System.stacktrace()897898 which has type:899900 empty_list()901902 where "args_or_arity" was given the type:903904 # type: float() or integer() or non_empty_list(term())905 # from: lib/ecto/changeset.ex906 (_() when args_or_arity == 2) when length(args_or_arity) == 2907908 where "module" was given the type:909910 # type: dynamic()911 # from: lib/ecto/changeset.ex:733:30912 module913914 type warning found at:915 │916 741 │ ... when length(args_or_arity) == 2 ->917 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~918 │919 └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/2920921 warning: expected a map or struct when accessing .__adapter__ in expression:922923 repo.__adapter__924925 where "repo" was given the type:926927 # type: dynamic(atom())928 # from: lib/mix/tasks/ecto.load.ex:53:7929 Mix.Ecto.ensure_repo(repo, args)930931 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()932933 type warning found at:934 │935 54 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,936 │ ~937 │938 └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/1939940 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead941 │942 739 │ case System.stacktrace do943 │ ~944 │945 └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/2946947 warning: expected a map or struct when accessing .__adapter__ in expression:948949 repo.__adapter__950951 where "repo" was given the type:952953 # type: dynamic(atom())954 # from: lib/mix/tasks/ecto.dump.ex:50:7955 Mix.Ecto.ensure_repo(repo, args)956957 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()958959 type warning found at:960 │961 51 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,962 │ ~963 │964 └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/1965966 warning: expected a map or struct when accessing .__adapter__ in expression:967968 repo.__adapter__969970 where "repo" was given the type:971972 # type: dynamic(atom())973 # from: lib/mix/tasks/ecto.create.ex:37:7974 Mix.Ecto.ensure_repo(repo, args)975976 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()977978 type warning found at:979 │980 38 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,981 │ ~982 │983 └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/1984985 warning: expected a map or struct when accessing .__adapter__ in expression:986987 repo.__adapter__988989 where "repo" was given the type:990991 # type: dynamic(atom())992 # from: lib/mix/tasks/ecto.drop.ex:39:7993 Mix.Ecto.ensure_repo(repo, args)994995 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()996997 type warning found at:998 │999 40 │ ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,1000 │ ~1001 │1002 └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/110031004 warning: incompatible types given to get_source/1:10051006 get_source(repo)10071008 given types:10091010 -dynamic(atom())-10111012 but expected one of:10131014 %{..., config: empty_list() or non_empty_list(term(), term())}10151016 where "repo" was given the type:10171018 # type: dynamic(atom())1019 # from: lib/ecto/migration/schema_migration.ex:24:131020 repo.all(1021 Map.put(1022 (1023 query =1024 (1025 query = {get_source(repo), Ecto.Migration.SchemaMigration}1026 Ecto.Query.Builder.From.apply(query, 1)1027 )1028 1029 Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{1030 ...,1031 expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1032 file: "/work/proj/deps_trellis/ecto/lib/ecto/migration/schema_migration.ex",1033 line: 22,1034 take: %{}1035 })1036 ),1037 :prefix,1038 prefix1039 ), timeout: :infinity, log: false)10401041 type warning found at:1042 │1043 22 │ from(p in {get_source(repo), __MODULE__}, select: p.version)1044 │ ~1045 │1046 └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/210471048 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1049 │1050 856 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1051 │ ~1052 │1053 └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/21054 └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/210551056 warning: incompatible types given to get_source/1:10571058 get_source(repo)10591060 given types:10611062 -dynamic(atom())-10631064 but expected one of:10651066 %{..., config: empty_list() or non_empty_list(term(), term())}10671068 where "repo" was given the type:10691070 # type: dynamic(atom())1071 # from: lib/ecto/migration/schema_migration.ex:30:131072 repo.insert!(1073 Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1074 prefix: prefix,1075 source: get_source(repo)1076 ), timeout: :infinity, log: false)10771078 type warning found at:1079 │1080 29 │ |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1081 │ ~1082 │1083 └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/310841085 warning: incompatible types given to get_source/1:10861087 get_source(repo)10881089 given types:10901091 -dynamic(atom())-10921093 but expected one of:10941095 %{..., config: empty_list() or non_empty_list(term(), term())}10961097 where "repo" was given the type:10981099 # type: dynamic(atom())1100 # from: lib/ecto/migration/schema_migration.ex:36:131101 repo.delete_all(1102 Map.put(1103 (1104 query =1105 (1106 query = {get_source(repo), Ecto.Migration.SchemaMigration}1107 Ecto.Query.Builder.From.apply(query, 1)1108 )1109 1110 Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1111 expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1112 op: :and,1113 params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1114 file: "/work/proj/deps_trellis/ecto/lib/ecto/migration/schema_migration.ex",1115 line: 341116 })1117 ),1118 :prefix,1119 prefix1120 ), timeout: :infinity, log: false)11211122 type warning found at:1123 │1124 34 │ from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1125 │ ~1126 │1127 └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/311281129 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1130 │1131 715 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1132 │ ~1133 │1134 └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/211351136 warning: the following conditional expression:11371138 is_atom(related)11391140 will always evaluate to:11411142 dynamic(true)11431144 where "related" was given the type:11451146 # type: dynamic(atom())1147 # from: lib/ecto/association.ex:730:151148 related = Ecto.Association.related_from_query(queryable)11491150 type warning found at:1151 │1152 732 │ unless is_atom(related) do1153 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~1154 │1155 └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/311561157 warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)1158 │1159 1422 │ defp type_to_module(:naive_datetime), do: NaiveDateTime1160 │ ~1161 │1162 └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/111631164 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1165 │1166 430 │ not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1167 │ ~1168 │1169 └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/211701171 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1172 │1173 1885 │ if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do1174 │ ~1175 │1176 └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/311771178 warning: Mix.Project.compile/1 is deprecated. Use Mix.Task.run("compile", args) instead1179 │1180 62 │ Mix.Project.compile(args)1181 │ ~1182 │1183 └─ lib/mix/ecto.ex:62:19: Mix.Ecto.ensure_repo/211841185 warning: expected a module (an atom) when invoking start_link/1 in expression:11861187 repo.start_link(pool_size: pool_size)11881189 where "pool_size" was given the type:11901191 # type: dynamic()1192 # from: lib/mix/ecto.ex:101:151193 pool_size = Keyword.get(opts, :pool_size, 1)11941195 where "repo" was given the type:11961197 # type: dynamic(%{..., __adapter__: atom()})1198 # from: lib/mix/ecto.ex:99:361199 repo.__adapter__.ensure_all_started(repo, :temporary)12001201 type warning found at:1202 │1203 102 │ case repo.start_link(pool_size: pool_size) do1204 │ ~1205 │1206 └─ lib/mix/ecto.ex:102:15: Mix.Ecto.ensure_started/212071208 warning: Logger.remove_backend/1 is deprecated. Use LoggerBackends.remove/2 from :logger_backends dependency1209 │1210 146 │ Logger.remove_backend(:console)1211 │ ~1212 │1213 └─ lib/mix/ecto.ex:146:12: Mix.Ecto.restart_apps_if_migrated/212141215 warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1216 │1217 155 │ Logger.add_backend(:console, flush: true)1218 │ ~1219 │1220 └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/212211222 warning: the following clause will never match:12231224 {:error, _} = error ->12251226 because it attempts to match on the result of:12271228 apply(changeset, adapter, :insert, args)12291230 which has type:12311232 dynamic({:invalid or :ok, term()})12331234 type warning found at:1235 │1236 219 │ {:error, _} = error ->1237 │ ~1238 │1239 └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/412401241 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1242 │1243 29 │ surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)1244 │ ~1245 │1246 └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/212471248 warning: the following clause will never match:12491250 {:error, _} = error ->12511252 because it attempts to match on the result of:12531254 apply(changeset, adapter, action, args)12551256 which has type:12571258 dynamic({:invalid or :ok, term()})12591260 type warning found at:1261 │1262 297 │ {:error, _} = error ->1263 │ ~1264 │1265 └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/412661267 warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead1268 │1269 144 │ Macro.to_string(expr, &expr_to_string(&1, &2, names, part))1270 │ ~1271 │1272 └─ lib/ecto/query/inspect.ex:144:11: Inspect.Ecto.Query.expr/312731274 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1275 │1276 54 │ filter_and_reraise e, System.stacktrace1277 │ ~1278 │1279 └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/512801281 warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead1282 │1283 44 │ index = Map.size(params)1284 │ ~1285 │1286 └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/51287 └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/512881289 warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead1290 │1291 614 │ Decimal.minus(decimal)1292 │ ~1293 │1294 └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/112951296 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)1297 │1298 228 │ raise BadStructError, struct: struct, term: data1299 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1300 │1301 └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/513021303 warning: the following clause will never match:13041305 {:error, _} ->13061307 because it attempts to match on the result of:13081309 NaiveDateTime.new(date, time)13101311 which has type:13121313 dynamic({:ok, %NaiveDateTime{}})13141315 type warning found at:1316 │1317 803 │ {:error, _} -> :error1318 │ ~~~~~~~~~~~~~~~~~~~~~1319 │1320 └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/113211322 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1323 │1324 214 │ filter_and_reraise e, System.stacktrace1325 │ ~1326 │1327 └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41328 └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/413291330 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1331 │1332 159 │ supervise(children, strategy: :one_for_one)1333 │ ~1334 │1335 └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/113361337 warning: expected a map or struct when accessing .__struct__ in expression:13381339 schema.__struct__13401341 where "schema" was given the types:13421343 # type: dynamic(atom() and not nil)1344 # from: lib/ecto/query/planner.ex:1186:411345 schema13461347 # type: atom()1348 # from: lib/ecto/query/planner.ex:1186:611349 is_atom(schema)13501351 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13521353 type warning found at:1354 │1355 1190 │ Map.has_key?(schema.__struct__, field) ->1356 │ ~1357 │1358 └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/613591360 warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1361 │1362 15 │ surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)1363 │ ~1364 │1365 └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/213661367 warning: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:13681369 Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])13701371 given types:13721373 (1374 -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,1375 dynamic()1376 )13771378 but expected one of:13791380 atom(), term()13811382 where "opts" was given the type:13831384 # type: dynamic(1385 %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1386 non_struct_map()1387 )1388 # from: lib/ecto/migrator.ex:44:651389 opts[:prefix]13901391 where "repo" was given the type:13921393 # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})1394 # from: lib/ecto/migrator.ex:44:231395 Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])13961397 type warning found at:1398 │1399 45 │ SchemaMigration.migrated_versions(repo, opts[:prefix])1400 │ ~1401 │1402 └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/214031404 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1405 │1406 12 │ worker(Ecto.Migration.Runner, [], restart: :temporary)1407 │ ~1408 │1409 └─ lib/ecto/migration/supervisor.ex:12:7: Ecto.Migration.Supervisor.init/114101411 warning: expected a module (an atom) when invoking transaction/2 in expression:14121413 repo.transaction(fun, log: false, timeout: :infinity)14141415 where "fun" was given the type:14161417 # type: dynamic()1418 # from: lib/ecto/migrator.ex:114:471419 fun14201421 where "repo" was given the types:14221423 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: term()}})1424 # from: lib/ecto/migrator.ex:118:241425 repo.__adapter__.supports_ddl_transaction?14261427 # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: not false and not nil}})1428 # from: lib/ecto/migrator.ex:118:241429 repo.__adapter__.supports_ddl_transaction?14301431 type warning found at:1432 │1433 119 │ repo.transaction(fun, [log: false, timeout: :infinity])1434 │ ~1435 │1436 └─ lib/ecto/migrator.ex:119:14: Ecto.Migrator.run_maybe_in_transaction/314371438 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1439 │1440 15 │ supervise(children, strategy: :simple_one_for_one)1441 │ ~1442 │1443 └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/114441445 warning: Code.load_file/1 is deprecated. Use Code.require_file/2 or Code.compile_file/2 instead1446 │1447 291 │ modules = Code.load_file(file)1448 │ ~1449 │1450 └─ lib/ecto/migrator.ex:291:20: Ecto.Migrator.extract_module/214511452 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1453 │1454 321 │ reraise error, System.stacktrace1455 │ ~1456 │1457 └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/314581459 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1460 │1461 10 │ worker(Ecto.Registry, []),1462 │ ~1463 │1464 └─ lib/ecto/application.ex:10:7: Ecto.Application.start/214651466 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1467 │1468 11 │ supervisor(Ecto.Migration.Supervisor, [])1469 │ ~1470 │1471 └─ lib/ecto/application.ex:11:7: Ecto.Application.start/214721473Generated ecto app1474==> interactive_cmd1475Compiling 1 file (.ex)1476Generated interactive_cmd app1477==> nerves1478Compiling 65 files (.ex)1479 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)1480 │1481 6 │ defmodule Mix.Tasks.Nerves.Init do1482 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1483 │1484 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)14851486 warning: redefining module Nerves (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.beam)1487 │1488 6 │ defmodule Nerves do1489 │ ~~~~~~~~~~~~~~~~~~~1490 │1491 └─ lib/nerves.ex:6: Nerves (module)14921493 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)1494 │1495 5 │ defmodule Nerves.ArtifactResolver do1496 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1497 │1498 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)14991500 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)1501 │1502 6 │ defmodule Nerves.BuildAction.AppModes do1503 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1504 │1505 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)15061507 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)1508 │1509 5 │ defmodule Nerves.BuildAction.CheckExecutables do1510 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1511 │1512 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)15131514 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)1515 │1516 8 │ defmodule Nerves.BuildAction.Erlinit do1517 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1518 │1519 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)15201521 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)1522 │1523 5 │ defmodule Nerves.BuildAction.Firmware do1524 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1525 │1526 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)15271528 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)1529 │1530 7 │ defmodule Nerves.BuildAction.IExStartupCheck do1531 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1532 │1533 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)15341535 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)1536 │1537 5 │ defmodule Nerves.BuildAction.NervesV1System do1538 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1539 │1540 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)15411542 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)1543 │1544 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do1545 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1546 │1547 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)15481549 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)1550 │1551 5 │ defmodule Nerves.BuildAction.Rootfs do1552 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1553 │1554 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)15551556 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)1557 │1558 6 │ defmodule Nerves.BuildAction.SortApps do1559 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1560 │1561 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)15621563 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)1564 │1565 5 │ defmodule Nerves.BuildAction.StripAll do1566 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1567 │1568 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)15691570 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)1571 │1572 5 │ defmodule Nerves.BuildAction.Trimmer do1573 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1574 │1575 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)15761577 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)1578 │1579 5 │ defmodule Nerves.BuildPlan do1580 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1581 │1582 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)15831584 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)1585 │1586 5 │ defmodule Nerves.BuildPlan.Checks do1587 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1588 │1589 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)15901591 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Container.beam)1592 │1593 6 │ defmodule Nerves.Container do1594 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1595 │1596 └─ lib/nerves/container.ex:6: Nerves.Container (module)15971598 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)1599 │1600 5 │ defmodule Nerves.Fingerprint do1601 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1602 │1603 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)16041605 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)1606 │1607 5 │ defmodule Nerves.MixPackage do1608 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1609 │1610 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)16111612 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.Paths.beam)1613 │1614 5 │ defmodule Nerves.Paths do1615 │ ~~~~~~~~~~~~~~~~~~~~~~~~~1616 │1617 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)16181619 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/trellis/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)1620 │1621 5 │ defmodule Nerves.TargetTuple do1622 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1623 │1624 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)16251626Generated nerves app1627==> nerves_toolchain_armv7_nerves_linux_gnueabihf1628Compiling 1 file (.ex)1629Generated nerves_toolchain_armv7_nerves_linux_gnueabihf app1630==> nerves_system_trellis1631Generated nerves_system_trellis app1632==> nerves_compatibility_test1633===> Analyzing applications...1634===> Compiling telemetry1635===> Analyzing applications...1636===> Compiling cowboy1637 ┌─ src/cowboy_websocket.erl:1638 │1639 147 │ Stacktrace = erlang:get_stacktrace(),1640 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16411642 ┌─ src/cowboy_websocket.erl:1643 │1644 645 │ {stacktrace, erlang:get_stacktrace()},1645 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16461647 ┌─ src/cowboy_websocket.erl:1648 │1649 755 │ {stacktrace, erlang:get_stacktrace()},1650 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace165116521653 ┌─ src/cowboy_handler.erl:1654 │1655 87 │ Stacktrace = erlang:get_stacktrace(),1656 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16571658 ┌─ src/cowboy_handler.erl:1659 │1660 116 │ Stacktrace = erlang:get_stacktrace(),1661 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16621663 ┌─ src/cowboy_handler.erl:1664 │1665 235 │ Stacktrace = erlang:get_stacktrace(),1666 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16671668 ┌─ src/cowboy_handler.erl:1669 │1670 290 │ {stacktrace, erlang:get_stacktrace()},1671 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace167216731674 ┌─ src/cowboy_rest.erl:1675 │1676 69 │ Stacktrace = erlang:get_stacktrace(),1677 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16781679 ┌─ src/cowboy_rest.erl:1680 │1681 1006 │ Stacktrace = erlang:get_stacktrace(),1682 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace168316841685==> plug1686Compiling 1 file (.erl)1687Compiling 42 files (.ex)1688Generated plug app1689==> openmaize1690Compiling 13 files (.ex)1691 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.16921693 This error happens when you have function calls without parentheses inside keywords. For example:16941695 function(arg, one: nested_call a, b, c)1696 function(arg, one: if expr, do: :this, else: :that)16971698 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:16991700 function(arg, one: if(expr, do: :this, else: :that))1701 function(arg, one: nested_call(a, b, c))17021703 Ambiguity found at:1704 │1705 85 │ def check_user_pass(_, _, _), do: raise ArgumentError, "invalid params or options"1706 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1707 │1708 └─ lib/openmaize/login.ex:85170917101711== Compilation error in file lib/openmaize/database.ex ==1712** (UndefinedFunctionError) function Ecto.Query.Builder.Lock.build/3 is undefined (module Ecto.Query.Builder.Lock is not available)1713 (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_trellis/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.2275.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, ...]}, ...], ...>)1714 (ecto 2.2.12) expanding macro: Ecto.Query.lock/21715 lib/openmaize/database.ex:90: Openmaize.Database.get_user_with_lock/31716 (ecto 2.2.12) expanding macro: Ecto.Query.from/21717 lib/openmaize/database.ex:90: Openmaize.Database.get_user_with_lock/31718 (elixir 1.20.3) expanding macro: Kernel.|>/21719 lib/openmaize/database.ex:91: Openmaize.Database.get_user_with_lock/31720could 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"