openmaize_jwt

Build log

nerves_system_rpi5

openmaize_jwt 1.0.0 · fail · run openmaize_jwt-1.0.0-1791028971953
1721 of 1721 lines
1Resolving Hex dependencies...2Resolution completed in 0.147s3Unchanged: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_rpi5/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_conns_sup.erl:335    │336 80 │  	catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},337    │  	╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.338Compile directive 'nowarn_deprecated_catch' can be used to suppress339warnings in selected modules.340341342     ┌─ src/ranch_ssl.erl:343     │344 128 │  	case ssl:ssl_accept(CSocket, Timeout) of345     │  	     ╰── Warning: ssl:ssl_accept/2 is removed; use ssl:handshake/1,2,3 instead346347     ┌─ src/ranch_ssl.erl:348     │349 233 │  			end, ssl:cipher_suites());350     │  			     ╰── Warning: ssl:cipher_suites/0 is removed; use ssl:cipher_suites/2,3 instead351352     ┌─ src/ranch_ssl.erl:353     │354 235 │  			ssl:cipher_suites()355     │  			╰── Warning: ssl:cipher_suites/0 is removed; use ssl:cipher_suites/2,3 instead356357358==> 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_rpi5-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 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: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: incompatible types given to Mix.Ecto.ensure_started/2:739740        Mix.Ecto.ensure_started(repo, opts)741742    given types:743744        -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))745746    but expected one of:747748        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())749750    where "opts" was given the type:751752        # type: dynamic(753          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or754            non_struct_map()755        )756        # from: lib/mix/tasks/ecto.rollback.ex:64:10757        opts =758          if opts[:quiet] do759            Keyword.merge(opts, log: false, log_sql: false)760          else761            opts762          end763764    where "repo" was given the type:765766        # type: dynamic(atom())767        # from: lib/mix/tasks/ecto.rollback.ex:70:7768        Mix.Ecto.ensure_repo(repo, args)769770    type warning found at:771    │772 72 │       {:ok, pid, apps} = ensure_started(repo, opts)773    │                          ~774    │775    └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/2776777    warning: incompatible types given to Mix.Ecto.ensure_started/2:778779        Mix.Ecto.ensure_started(repo, all: true)780781    given types:782783        -dynamic(atom())-, non_empty_list({:all, true})784785    but expected one of:786787        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())788789    where "repo" was given the type:790791        # type: dynamic(atom())792        # from: lib/mix/tasks/ecto.migrations.ex:37:7793        Mix.Ecto.ensure_repo(repo, args)794795    type warning found at:796    │797 39 │       {:ok, pid, _} = ensure_started(repo, all: true)798    │                       ~799    │800    └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/3801802    warning: incompatible types given to Mix.Ecto.ensure_started/2:803804        Mix.Ecto.ensure_started(repo, opts)805806    given types:807808        -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))809810    but expected one of:811812        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())813814    where "opts" was given the type:815816        # type: dynamic(817          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or818            non_struct_map()819        )820        # from: lib/mix/tasks/ecto.migrate.ex:68:10821        opts =822          if opts[:quiet] do823            Keyword.merge(opts, log: false, log_sql: false)824          else825            opts826          end827828    where "repo" was given the type:829830        # type: dynamic(atom())831        # from: lib/mix/tasks/ecto.migrate.ex:74:7832        Mix.Ecto.ensure_repo(repo, args)833834    type warning found at:835    │836 76 │       {:ok, pid, apps} = ensure_started(repo, opts)837    │                          ~838    │839    └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/2840841     warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)842     │843 258 │       err in DBConnection.OwnershipError ->844     │           ~845     │846     └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/6847848     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead849     │850 260 │         reraise %{err | message: message}, System.stacktrace851     │                                                   ~852     │853     └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/6854855    warning: incompatible types given to Mix.Ecto.source_repo_priv/1:856857        Mix.Ecto.source_repo_priv(repo)858859    given types:860861        -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-862863    but expected one of:864865        atom()866867    where "repo" was given the types:868869        # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})870        # from: lib/mix/tasks/ecto.load.ex:70:22871        Keyword.merge(repo.config, opts)872873        # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})874        # from: lib/mix/tasks/ecto.load.ex:72:27875        repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)876877    type warning found at:878    │879 72 │     case repo.__adapter__.structure_load(source_repo_priv(repo), config) do880    │                                          ~881    │882    └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/2883884    warning: expected a map or struct when accessing .__adapter__ in expression:885886        repo.__adapter__887888    where "repo" was given the type:889890        # type: dynamic(atom())891        # from: lib/mix/tasks/ecto.load.ex:53:7892        Mix.Ecto.ensure_repo(repo, args)893894    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()895896    type warning found at:897    │898 54 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,899    │                              ~900    │901    └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/1902903      warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead904      │905 2400 │     surround_many("#Ecto.Changeset<", list, ">", opts, fn906      │     ~907      │908      └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/2909910    warning: expected a map or struct when accessing .__adapter__ in expression:911912        repo.__adapter__913914    where "repo" was given the type:915916        # type: dynamic(atom())917        # from: lib/mix/tasks/ecto.dump.ex:50:7918        Mix.Ecto.ensure_repo(repo, args)919920    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()921922    type warning found at:923    │924 51 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,925    │                              ~926    │927    └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/1928929     warning: the following clause will never match:930931         [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->932933     because it attempts to match on the result of:934935         System.stacktrace()936937     which has type:938939         empty_list()940941     where "args_or_arity" was given the type:942943         # type: float() or integer() or non_empty_list(term())944         # from: lib/ecto/changeset.ex945         (_() when args_or_arity == 2) when length(args_or_arity) == 2946947     where "module" was given the type:948949         # type: dynamic()950         # from: lib/ecto/changeset.ex:733:30951         module952953     type warning found at:954     │955 741 │ ...                   when length(args_or_arity) == 2 ->956     │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~957     │958     └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/2959960    warning: expected a map or struct when accessing .__adapter__ in expression:961962        repo.__adapter__963964    where "repo" was given the type:965966        # type: dynamic(atom())967        # from: lib/mix/tasks/ecto.drop.ex:39:7968        Mix.Ecto.ensure_repo(repo, args)969970    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()971972    type warning found at:973    │974 40 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,975    │                              ~976    │977    └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/1978979    warning: expected a map or struct when accessing .__adapter__ in expression:980981        repo.__adapter__982983    where "repo" was given the type:984985        # type: dynamic(atom())986        # from: lib/mix/tasks/ecto.create.ex:37:7987        Mix.Ecto.ensure_repo(repo, args)988989    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()990991    type warning found at:992    │993 38 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,994    │                              ~995    │996    └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/1997998     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead999     │1000 739 │           case System.stacktrace do1001     │                       ~1002     │1003     └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/210041005    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: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1043     │1044 856 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1045     │                                                                              ~1046     │1047     └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/21048     └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/210491050     warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency1051     │1052 155 │     Logger.add_backend(:console, flush: true)1053     │            ~1054     │1055     └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/210561057     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1058     │1059 715 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1060     │                                                                              ~1061     │1062     └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/210631064     warning: the following conditional expression:10651066         is_atom(related)10671068     will always evaluate to:10691070         dynamic(true)10711072     where "related" was given the type:10731074         # type: dynamic(atom())1075         # from: lib/ecto/association.ex:730:151076         related = Ecto.Association.related_from_query(queryable)10771078     type warning found at:1079     │1080 732 │     unless is_atom(related) do1081     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~1082     │1083     └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/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:24:131101        repo.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.Select.apply(query, %Ecto.Query.SelectExpr{1111                ...,1112                expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1113                file: "/work/proj/deps_rpi5/ecto/lib/ecto/migration/schema_migration.ex",1114                line: 22,1115                take: %{}1116              })1117            ),1118            :prefix,1119            prefix1120          ), timeout: :infinity, log: false)11211122    type warning found at:1123    │1124 22 │     from(p in {get_source(repo), __MODULE__}, select: p.version)1125    │                ~1126    │1127    └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/211281129    warning: incompatible types given to get_source/1:11301131        get_source(repo)11321133    given types:11341135        -dynamic(atom())-11361137    but expected one of:11381139        %{..., config: empty_list() or non_empty_list(term(), term())}11401141    where "repo" was given the type:11421143        # type: dynamic(atom())1144        # from: lib/ecto/migration/schema_migration.ex:30:131145        repo.insert!(1146          Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1147            prefix: prefix,1148            source: get_source(repo)1149          ), timeout: :infinity, log: false)11501151    type warning found at:1152    │1153 29 │     |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1154    │                                              ~1155    │1156    └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/311571158    warning: incompatible types given to get_source/1:11591160        get_source(repo)11611162    given types:11631164        -dynamic(atom())-11651166    but expected one of:11671168        %{..., config: empty_list() or non_empty_list(term(), term())}11691170    where "repo" was given the type:11711172        # type: dynamic(atom())1173        # from: lib/ecto/migration/schema_migration.ex:36:131174        repo.delete_all(1175          Map.put(1176            (1177              query =1178                (1179                  query = {get_source(repo), Ecto.Migration.SchemaMigration}1180                  Ecto.Query.Builder.From.apply(query, 1)1181                )1182        1183              Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1184                expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1185                op: :and,1186                params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1187                file: "/work/proj/deps_rpi5/ecto/lib/ecto/migration/schema_migration.ex",1188                line: 341189              })1190            ),1191            :prefix,1192            prefix1193          ), timeout: :infinity, log: false)11941195    type warning found at:1196    │1197 34 │     from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1198    │                ~1199    │1200    └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/312011202     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1203     │1204 430 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->1205     │                                                                              ~1206     │1207     └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/212081209      warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)1210      │1211 1422 │   defp type_to_module(:naive_datetime), do: NaiveDateTime1212      │        ~1213      │1214      └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/112151216      warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)1217      │1218 1885 │         if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do1219      │                 ~1220      │1221      └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/312221223    warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1224    │1225 29 │     surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)1226    │     ~1227    │1228    └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/212291230     warning: the following clause will never match:12311232         {:error, _} = error ->12331234     because it attempts to match on the result of:12351236         apply(changeset, adapter, :insert, args)12371238     which has type:12391240         dynamic({:invalid or :ok, term()})12411242     type warning found at:1243     │1244 219 │           {:error, _} = error ->1245     │                       ~1246     │1247     └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/412481249     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: 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)1283     │1284 228 │         raise BadStructError, struct: struct, term: data1285     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1286     │1287     └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/512881289    warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead1290    │1291 44 │     index  = Map.size(params)1292    │                  ~1293    │1294    └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/51295    └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/512961297     warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead1298     │1299 614 │     Decimal.minus(decimal)1300     │             ~1301     │1302     └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/113031304     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1305     │1306 214 │       filter_and_reraise e, System.stacktrace1307     │                                    ~1308     │1309     └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41310     └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/413111312     warning: the following clause will never match:13131314         {:error, _} ->13151316     because it attempts to match on the result of:13171318         NaiveDateTime.new(date, time)13191320     which has type:13211322         dynamic({:ok, %NaiveDateTime{}})13231324     type warning found at:1325     │1326 803 │         {:error, _} -> :error1327     │         ~~~~~~~~~~~~~~~~~~~~~1328     │1329     └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/113301331      warning: expected a map or struct when accessing .__struct__ in expression:13321333          schema.__struct__13341335      where "schema" was given the types:13361337          # type: dynamic(atom() and not nil)1338          # from: lib/ecto/query/planner.ex:1186:411339          schema13401341          # type: atom()1342          # from: lib/ecto/query/planner.ex:1186:611343          is_atom(schema)13441345      hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13461347      type warning found at:1348      │1349 1190 │       Map.has_key?(schema.__struct__, field) ->1350      │                           ~1351      │1352      └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/613531354     warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1355     │1356 159 │         supervise(children, strategy: :one_for_one)1357     │         ~1358     │1359     └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/113601361    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: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:13761377        Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])13781379    given types:13801381        (1382          -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,1383          dynamic()1384        )13851386    but expected one of:13871388        atom(), term()13891390    where "opts" was given the type:13911392        # type: dynamic(1393          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1394            non_struct_map()1395        )1396        # from: lib/ecto/migrator.ex:44:651397        opts[:prefix]13981399    where "repo" was given the type:14001401        # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})1402        # from: lib/ecto/migrator.ex:44:231403        Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])14041405    type warning found at:1406    │1407 45 │       SchemaMigration.migrated_versions(repo, opts[:prefix])1408    │                       ~1409    │1410    └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/214111412    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1413    │1414 15 │     supervise(children, strategy: :simple_one_for_one)1415    │     ~1416    │1417    └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/114181419     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: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1454    │1455 10 │       worker(Ecto.Registry, []),1456    │       ~1457    │1458    └─ lib/ecto/application.ex:10:7: Ecto.Application.start/214591460     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1461     │1462 321 │         reraise error, System.stacktrace1463     │                               ~1464     │1465     └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/314661467    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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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/rpi5/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_rpi51632Generated nerves_system_rpi5 app1633==> nerves_compatibility_test1634===> Analyzing applications...1635===> Compiling telemetry1636===> Analyzing applications...1637===> Compiling cowboy1638     ┌─ src/cowboy_websocket.erl:1639     │1640 147 │  		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_websocket.erl:1644     │1645 645 │  			{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_websocket.erl:1649     │1650 755 │  			{stacktrace, erlang:get_stacktrace()},1651     │  			             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace165216531654    ┌─ src/cowboy_handler.erl:1655    │1656 87 │  		Stacktrace = erlang:get_stacktrace(),1657    │  		             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16581659     ┌─ src/cowboy_handler.erl:1660     │1661 116 │  		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_handler.erl:1665     │1666 235 │  		Stacktrace = erlang:get_stacktrace(),1667     │  		             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16681669     ┌─ src/cowboy_handler.erl:1670     │1671 290 │  			{stacktrace, erlang:get_stacktrace()},1672     │  			             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace167316741675    ┌─ src/cowboy_rest.erl:1676    │1677 69 │  				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_rest.erl:1681      │1682 1006 │  	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_rpi5/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"