openmaize_jwt

Build log

nerves_system_rpi4

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