openmaize_jwt

Build log

nerves_system_rpi0

openmaize_jwt 1.0.0 · fail · run openmaize_jwt-1.0.0-1791028971953
1721 of 1721 lines
1Resolving Hex dependencies...2Resolution completed in 0.227s3Unchanged: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_rpi0/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_armv6_nerves_linux_gnueabihf-15.3.1/bin/armv6-nerves-linux-gnueabihf-gcc -g -O3 -Wall -I/usr/local/lib/erlang/erts-17.1/include -Ic_src -fPIC -shared --sysroot=/home/nerves/.nerves/artifacts/nerves_system_rpi0-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: the variable "split" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator488    │489 29 │     <<main::size(split)-binary, rest::binary>> = data490    │                  ~491    │492    └─ lib/comeonin/pbkdf2/base64.ex:29:18: Comeonin.Pbkdf2.Base64.encode/1493494    warning: the variable "split" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator495    │496 52 │     <<main::size(split)-binary, rest::binary>> = data497    │                  ~498    │499    └─ lib/comeonin/pbkdf2/base64.ex:52:18: Comeonin.Pbkdf2.Base64.decode/1500501    warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead502    │503 19 │     secure_check(rest_h, rest_s, acc ||| (h ^^^ s))504    │                                             ~505    │506    └─ lib/comeonin/tools.ex:19:45507508    warning: use Bitwise is deprecated. import Bitwise instead509    │510  6 │   use Bitwise511    │   ~~~~~~~~~~~512    │513    └─ lib/comeonin/tools.ex:6: Comeonin.Tools (module)514515     warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead516     │517 121 │     initial = :crypto.hmac(:sha512, password, <<salt::binary, block_index::integer-size(32)>>)518     │                       ~519     │520     └─ lib/comeonin/pbkdf2.ex:121:23: Comeonin.Pbkdf2.pbkdf2/7521     └─ lib/comeonin/pbkdf2.ex:129:20: Comeonin.Pbkdf2.iterate/4522523    warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead524    │525 76 │     hash = :crypto.hmac(:sha, Base.decode32!(secret, padding: false),526    │                    ~527    │528    └─ lib/comeonin/otp.ex:76:20: Comeonin.Otp.gen_hotp/3529530Generated comeonin app531==> nerves_compatibility_test532===> Analyzing applications...533===> Compiling cowlib534==> nerves_discovery535Compiling 5 files (.ex)536Generated nerves_discovery app537==> ring_logger538Compiling 7 files (.ex)539Generated ring_logger app540==> nerves_compatibility_test541===> Analyzing applications...542===> Compiling poolboy543==> decimal544Compiling 4 files (.ex)545      warning: using single-quoted strings to represent charlists is deprecated.546      Use ~c"" if you indeed want a charlist or use "" instead.547      You may run "mix format --migrate" to change all single-quoted548      strings to use the ~c sigil and fix this warning.549      │550 1320 │           '0.' ++ :lists.duplicate(-diff, ?0) ++ list551      │           ~552      │553      └─ lib/decimal.ex:1320:11554555      warning: using single-quoted strings to represent charlists is deprecated.556      Use ~c"" if you indeed want a charlist or use "" instead.557      You may run "mix format --migrate" to change all single-quoted558      strings to use the ~c sigil and fix this warning.559      │560 1351 │           list = list ++ 'E'561      │                          ~562      │563      └─ lib/decimal.ex:1351:26564565      warning: using single-quoted strings to represent charlists is deprecated.566      Use ~c"" if you indeed want a charlist or use "" instead.567      You may run "mix format --migrate" to change all single-quoted568      strings to use the ~c sigil and fix this warning.569      │570 1352 │           list = if exp >= 0, do: list ++ '+', else: list571      │                                           ~572      │573      └─ lib/decimal.ex:1352:43574575      warning: using single-quoted strings to represent charlists is deprecated.576      Use ~c"" if you indeed want a charlist or use "" instead.577      You may run "mix format --migrate" to change all single-quoted578      strings to use the ~c sigil and fix this warning.579      │580 1775 │       int = if int == [], do: '0', else: int581      │                               ~582      │583      └─ lib/decimal.ex:1775:31584585      warning: using single-quoted strings to represent charlists is deprecated.586      Use ~c"" if you indeed want a charlist or use "" instead.587      You may run "mix format --migrate" to change all single-quoted588      strings to use the ~c sigil and fix this warning.589      │590 1776 │       exp = if exp == [], do: '0', else: exp591      │                               ~592      │593      └─ lib/decimal.ex:1776:31594595Generated decimal app596warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"597  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2598  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1599  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5600  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2601  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4602  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2603604==> ecto605Compiling 70 files (.ex)606     warning: using single-quoted strings to represent charlists is deprecated.607     Use ~c"" if you indeed want a charlist or use "" instead.608     You may run "mix format --migrate" to change all single-quoted609     strings to use the ~c sigil and fix this warning.610     │611 166 │     defp insert_all_value(_),   do: '?'612     │                                     ~613     │614     └─ lib/ecto/adapters/mysql/connection.ex:166:37615616     warning: using single-quoted strings to represent charlists is deprecated.617     Use ~c"" if you indeed want a charlist or use "" instead.618     You may run "mix format --migrate" to change all single-quoted619     strings to use the ~c sigil and fix this warning.620     │621 354 │       '?'622     │       ~623     │624     └─ lib/ecto/adapters/mysql/connection.ex:354:7625626      warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.627628      This error happens when you have function calls without parentheses inside keywords. For example:629630          function(arg, one: nested_call a, b, c)631          function(arg, one: if expr, do: :this, else: :that)632633      In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:634635          function(arg, one: if(expr, do: :this, else: :that))636          function(arg, one: nested_call(a, b, c))637638      Ambiguity found at:639      │640 2286 │     raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"641      │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~642      │643      └─ lib/ecto/changeset.ex:2286644645     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.646647     This error happens when you have function calls without parentheses inside keywords. For example:648649         function(arg, one: nested_call a, b, c)650         function(arg, one: if expr, do: :this, else: :that)651652     In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:653654         function(arg, one: if(expr, do: :this, else: :that))655         function(arg, one: nested_call(a, b, c))656657     Ambiguity found at:658     │659 265 │     do: raise ArgumentError, "a constraint must have either a check or exclude option"660     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~661     │662     └─ lib/ecto/migration/runner.ex:265663664     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.665666     This error happens when you have function calls without parentheses inside keywords. For example:667668         function(arg, one: nested_call a, b, c)669         function(arg, one: if expr, do: :this, else: :that)670671     In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:672673         function(arg, one: if(expr, do: :this, else: :that))674         function(arg, one: nested_call(a, b, c))675676     Ambiguity found at:677     │678 267 │     do: raise ArgumentError, "a constraint must not have both check and exclude options"679     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~680     │681     └─ lib/ecto/migration/runner.ex:267682683     warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity684     │685 136 │       {:::, _, [left, _]} -> is_integer(left) or is_binary(left)686     │        ~687     │688     └─ lib/ecto/query/builder.ex:136:8689690     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)691     │692 643 │   def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime693     │                                             ~~694     │695     └─ lib/ecto/query/builder.ex:643:45: Ecto.Query.Builder.quoted_type/2696697     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)698     │699 644 │   def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date700     │                                         ~~701     │702     └─ lib/ecto/query/builder.ex:644:41: Ecto.Query.Builder.quoted_type/2703704     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.705706     This error happens when you have function calls without parentheses inside keywords. For example:707708         function(arg, one: nested_call a, b, c)709         function(arg, one: if expr, do: :this, else: :that)710711     In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:712713         function(arg, one: if(expr, do: :this, else: :that))714         function(arg, one: nested_call(a, b, c))715716     Ambiguity found at:717     │718 454 │     do: raise ArgumentError, "a changeset with action #{inspect given} was given to #{inspect repo}.#{action}/2"719     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~720     │721     └─ lib/ecto/repo/schema.ex:454722723    warning: unused require Ecto.Query724    │725  6 │   require Ecto.Query726    │   ~727    │728    └─ lib/ecto/repo/preloader.ex:6: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: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)803     │804 258 │       err in DBConnection.OwnershipError ->805     │           ~806     │807     └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/6808809    warning: incompatible types given to Mix.Ecto.ensure_started/2:810811        Mix.Ecto.ensure_started(repo, opts)812813    given types:814815        -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))816817    but expected one of:818819        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())820821    where "opts" was given the type:822823        # type: dynamic(824          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or825            non_struct_map()826        )827        # from: lib/mix/tasks/ecto.migrate.ex:68:10828        opts =829          if opts[:quiet] do830            Keyword.merge(opts, log: false, log_sql: false)831          else832            opts833          end834835    where "repo" was given the type:836837        # type: dynamic(atom())838        # from: lib/mix/tasks/ecto.migrate.ex:74:7839        Mix.Ecto.ensure_repo(repo, args)840841    type warning found at:842    │843 76 │       {:ok, pid, apps} = ensure_started(repo, opts)844    │                          ~845    │846    └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/2847848     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: 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: expected a map or struct when accessing .__adapter__ in expression:942943        repo.__adapter__944945    where "repo" was given the type:946947        # type: dynamic(atom())948        # from: lib/mix/tasks/ecto.dump.ex:50:7949        Mix.Ecto.ensure_repo(repo, args)950951    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()952953    type warning found at:954    │955 51 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,956    │                              ~957    │958    └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/1959960    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: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead980     │981 739 │           case System.stacktrace do982     │                       ~983     │984     └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/2985986    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: 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: incompatible types given to get_source/1:10651066        get_source(repo)10671068    given types:10691070        -dynamic(atom())-10711072    but expected one of:10731074        %{..., config: empty_list() or non_empty_list(term(), term())}10751076    where "repo" was given the type:10771078        # type: dynamic(atom())1079        # from: lib/ecto/migration/schema_migration.ex:24:131080        repo.all(1081          Map.put(1082            (1083              query =1084                (1085                  query = {get_source(repo), Ecto.Migration.SchemaMigration}1086                  Ecto.Query.Builder.From.apply(query, 1)1087                )1088        1089              Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{1090                ...,1091                expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},1092                file: "/work/proj/deps_rpi0/ecto/lib/ecto/migration/schema_migration.ex",1093                line: 22,1094                take: %{}1095              })1096            ),1097            :prefix,1098            prefix1099          ), timeout: :infinity, log: false)11001101    type warning found at:1102    │1103 22 │     from(p in {get_source(repo), __MODULE__}, select: p.version)1104    │                ~1105    │1106    └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/211071108    warning: incompatible types given to get_source/1:11091110        get_source(repo)11111112    given types:11131114        -dynamic(atom())-11151116    but expected one of:11171118        %{..., config: empty_list() or non_empty_list(term(), term())}11191120    where "repo" was given the type:11211122        # type: dynamic(atom())1123        # from: lib/ecto/migration/schema_migration.ex:30:131124        repo.insert!(1125          Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},1126            prefix: prefix,1127            source: get_source(repo)1128          ), timeout: :infinity, log: false)11291130    type warning found at:1131    │1132 29 │     |> Ecto.put_meta(prefix: prefix, source: get_source(repo))1133    │                                              ~1134    │1135    └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/311361137    warning: incompatible types given to get_source/1:11381139        get_source(repo)11401141    given types:11421143        -dynamic(atom())-11441145    but expected one of:11461147        %{..., config: empty_list() or non_empty_list(term(), term())}11481149    where "repo" was given the type:11501151        # type: dynamic(atom())1152        # from: lib/ecto/migration/schema_migration.ex:36:131153        repo.delete_all(1154          Map.put(1155            (1156              query =1157                (1158                  query = {get_source(repo), Ecto.Migration.SchemaMigration}1159                  Ecto.Query.Builder.From.apply(query, 1)1160                )1161        1162              Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{1163                expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},1164                op: :and,1165                params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],1166                file: "/work/proj/deps_rpi0/ecto/lib/ecto/migration/schema_migration.ex",1167                line: 341168              })1169            ),1170            :prefix,1171            prefix1172          ), timeout: :infinity, log: false)11731174    type warning found at:1175    │1176 34 │     from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)1177    │                ~1178    │1179    └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/311801181     warning: the following conditional expression:11821183         is_atom(related)11841185     will always evaluate to:11861187         dynamic(true)11881189     where "related" was given the type:11901191         # type: dynamic(atom())1192         # from: lib/ecto/association.ex:730:151193         related = Ecto.Association.related_from_query(queryable)11941195     type warning found at:1196     │1197 732 │     unless is_atom(related) do1198     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~1199     │1200     └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/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: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1257    │1258 54 │       filter_and_reraise e, System.stacktrace1259    │                                    ~1260    │1261    └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/512621263     warning: the following clause will never match:12641265         {:error, _} = error ->12661267     because it attempts to match on the result of:12681269         apply(changeset, adapter, action, args)12701271     which has type:12721273         dynamic({:invalid or :ok, term()})12741275     type warning found at:1276     │1277 297 │             {:error, _} = error ->1278     │                         ~1279     │1280     └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/412811282    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: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1324     │1325 159 │         supervise(children, strategy: :one_for_one)1326     │         ~1327     │1328     └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/113291330     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1331     │1332 214 │       filter_and_reraise e, System.stacktrace1333     │                                    ~1334     │1335     └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/41336     └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/413371338    warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead1339    │1340 15 │     surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)1341    │     ~1342    │1343    └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/213441345      warning: expected a map or struct when accessing .__struct__ in expression:13461347          schema.__struct__13481349      where "schema" was given the types:13501351          # type: dynamic(atom() and not nil)1352          # from: lib/ecto/query/planner.ex:1186:411353          schema13541355          # type: atom()1356          # from: lib/ecto/query/planner.ex:1186:611357          is_atom(schema)13581359      hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()13601361      type warning found at:1362      │1363 1190 │       Map.has_key?(schema.__struct__, field) ->1364      │                           ~1365      │1366      └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/613671368    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: 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: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1461    │1462 11 │       supervisor(Ecto.Migration.Supervisor, [])1463    │       ~1464    │1465    └─ lib/ecto/application.ex:11:7: Ecto.Application.start/214661467     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1468     │1469 321 │         reraise error, System.stacktrace1470     │                               ~1471     │1472     └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/314731474Generated 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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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/rpi0/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_armv6_nerves_linux_gnueabihf1629Compiling 1 file (.ex)1630Generated nerves_toolchain_armv6_nerves_linux_gnueabihf app1631==> nerves_system_rpi01632Generated nerves_system_rpi0 app1633==> nerves_compatibility_test1634===> Analyzing applications...1635===> Compiling telemetry1636===> Analyzing applications...1637===> Compiling cowboy1638    ┌─ src/cowboy_rest.erl:1639    │1640 69 │  				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_rest.erl:1644      │1645 1006 │  	Stacktrace = erlang:get_stacktrace(),1646      │  	             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace164716481649    ┌─ src/cowboy_handler.erl:1650    │1651 87 │  		Stacktrace = erlang:get_stacktrace(),1652    │  		             ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace16531654     ┌─ src/cowboy_handler.erl:1655     │1656 116 │  		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 235 │  		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 290 │  			{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_rpi0/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"