core_utils

Build log

nerves_system_trellis

core_utils 0.2.5 · fail · run core_utils-0.2.5-1791077395683
710 of 710 lines
1Resolving Hex dependencies...2Resolution completed in 0.307s3Unchanged:4  amqp 1.1.15  amqp_client 3.7.136  certifi 2.15.07  circular_buffer 1.1.08  connection 1.1.09  core_utils 0.2.510  db_connection 2.3.111  decimal 1.9.0 VULNERABLE!12    EEF-CVE-2026-32686 (MEDIUM)13    aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v14    Unbounded exponent in decimal enables unauthenticated DoS15    https://osv.dev/vulnerability/EEF-CVE-2026-3268616  ecto 3.0.917  ecto_sql 3.0.518  elixir_make 0.10.019  elixir_uuid 1.2.120  gen_amqp 5.0.621  geo 3.6.022  geo_postgis 2.1.023  goldrush 0.1.924  hackney 1.25.0 VULNERABLE!25    EEF-CVE-2026-47071 (HIGH)26    aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr27    SOCKS5 TLS upgrade ignores caller timeout in hackney28    https://osv.dev/vulnerability/EEF-CVE-2026-470712930    EEF-CVE-2026-47076 (MEDIUM)31    aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq32    SSRF allowlist bypass via percent-encoded host in hackney33    https://osv.dev/vulnerability/EEF-CVE-2026-470763435    EEF-CVE-2026-47069 (LOW)36    aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw237    CRLF injection in cookie domain/path options in hackney38    https://osv.dev/vulnerability/EEF-CVE-2026-470693940    EEF-CVE-2026-47075 (MEDIUM)41    aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf42    CR/LF injection in query parameter in hackney43    https://osv.dev/vulnerability/EEF-CVE-2026-4707544  idna 6.1.145  interactive_cmd 0.1.446  jsx 2.9.047  lager 3.6.548  metrics 1.0.149  mimerl 1.5.050  nerves 2.0.0-pre.251  nerves_discovery 0.1.552  nerves_logging 0.2.453  nerves_runtime 0.13.1354  nerves_system_bbb 2.30.255  nerves_system_br 1.34.456  nerves_system_mangopi_mq_pro 0.17.257  nerves_system_qemu_aarch64 0.4.258  nerves_system_rpi0 2.1.259  nerves_system_rpi4 2.1.260  nerves_system_rpi5 2.1.261  nerves_system_trellis 0.5.062  nerves_system_x86_64 1.34.263  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.164  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.165  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.166  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.167  nerves_toolchain_x86_64_nerves_linux_musl 15.3.168  nerves_uevent 0.1.769  parse_trans 3.4.170  poison 3.1.071  poolboy 1.5.272  postgrex 0.14.373  property_table 0.3.474  rabbit_common 3.7.13 VULNERABLE!75    GHSA-9pf7-f47q-mwpq (LOW)76    aka: CVE-2019-1129177    Cross-site Scripting in RabbitMQ78    https://osv.dev/vulnerability/GHSA-9pf7-f47q-mwpq79  ranch 1.7.180  recon 2.3.681  ring_logger 0.11.782  sentry 6.4.283  ssl_verify_fun 1.1.784  tablet 0.3.385  telemetry 0.3.086  toolshed 0.5.087  uboot_env 1.0.288  unicode_util_compat 0.7.189* Getting core_utils (Hex package)90* Getting nerves (Hex package)91* Getting ring_logger (Hex package)92* Getting toolshed (Hex package)93* Getting nerves_runtime (Hex package)94* Getting nerves_system_bbb (Hex package)95* Getting nerves_system_mangopi_mq_pro (Hex package)96* Getting nerves_system_qemu_aarch64 (Hex package)97* Getting nerves_system_rpi0 (Hex package)98* Getting nerves_system_rpi4 (Hex package)99* Getting nerves_system_rpi5 (Hex package)100* Getting nerves_system_trellis (Hex package)101* Getting nerves_system_x86_64 (Hex package)102* Getting nerves_system_br (Hex package)103* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)104* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)105* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)106* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)107* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)108* Getting nerves_logging (Hex package)109* Getting nerves_uevent (Hex package)110* Getting uboot_env (Hex package)111* Getting elixir_make (Hex package)112* Getting property_table (Hex package)113* Getting circular_buffer (Hex package)114* Getting interactive_cmd (Hex package)115* Getting nerves_discovery (Hex package)116* Getting tablet (Hex package)117* Getting ecto (Hex package)118* Getting ecto_sql (Hex package)119* Getting gen_amqp (Hex package)120* Getting geo (Hex package)121* Getting geo_postgis (Hex package)122* Getting poison (Hex package)123* Getting postgrex (Hex package)124* Getting sentry (Hex package)125* Getting hackney (Hex package)126* Getting certifi (Hex package)127* Getting idna (Hex package)128* Getting metrics (Hex package)129* Getting mimerl (Hex package)130* Getting parse_trans (Hex package)131* Getting ssl_verify_fun (Hex package)132* Getting unicode_util_compat (Hex package)133* Getting connection (Hex package)134* Getting db_connection (Hex package)135* Getting decimal (Hex package)136* Getting amqp (Hex package)137* Getting elixir_uuid (Hex package)138* Getting poolboy (Hex package)139* Getting amqp_client (Hex package)140* Getting goldrush (Hex package)141* Getting jsx (Hex package)142* Getting lager (Hex package)143* Getting rabbit_common (Hex package)144* Getting ranch (Hex package)145* Getting recon (Hex package)146* Getting telemetry (Hex package)147Found packages with security advisories, see above for details148    warning: String.strip/1 is deprecated. Use String.trim/1 instead149    │150  4 │   @version File.read!("VERSION") |> String.strip151    │                                            ~152    │153    └─ /work/proj/deps_trellis/poison/mix.exs:4:44: Poison.Mixfile (module)154155==> nerves_system_br156Generated nerves_system_br app157==> connection158Compiling 1 file (.ex)159     warning: using single-quoted strings to represent charlists is deprecated.160     Use ~c"" if you indeed want a charlist or use "" instead.161     You may run "mix format --migrate" to change all single-quoted162     strings to use the ~c sigil and fix this warning.163     │164 553 │         [{:data, [{'State', mod_state}]}]165     │                    ~166     │167     └─ lib/connection.ex:553:20168169     warning: using single-quoted strings to represent charlists is deprecated.170     Use ~c"" if you indeed want a charlist or use "" instead.171     You may run "mix format --migrate" to change all single-quoted172     strings to use the ~c sigil and fix this warning.173     │174 680 │     format = '** Generic server ~p terminating \n' ++175     │              ~176     │177     └─ lib/connection.ex:680:14178179     warning: using single-quoted strings to represent charlists is deprecated.180     Use ~c"" if you indeed want a charlist or use "" instead.181     You may run "mix format --migrate" to change all single-quoted182     strings to use the ~c sigil and fix this warning.183     │184 681 │       '** Last message in was ~p~n' ++ ## No last message185     │       ~186     │187     └─ lib/connection.ex:681:7188189     warning: using single-quoted strings to represent charlists is deprecated.190     Use ~c"" if you indeed want a charlist or use "" instead.191     You may run "mix format --migrate" to change all single-quoted192     strings to use the ~c sigil and fix this warning.193     │194 682 │       '** When Server state == ~p~n' ++195     │       ~196     │197     └─ lib/connection.ex:682:7198199     warning: using single-quoted strings to represent charlists is deprecated.200     Use ~c"" if you indeed want a charlist or use "" instead.201     You may run "mix format --migrate" to change all single-quoted202     strings to use the ~c sigil and fix this warning.203     │204 683 │       '** Reason for termination == ~n** ~p~n'205     │       ~206     │207     └─ lib/connection.ex:683:7208209Generated connection app210==> circular_buffer211Compiling 1 file (.ex)212Generated circular_buffer app213==> poison214Compiling 4 files (.ex)215    warning: using single-quoted strings to represent charlists is deprecated.216    Use ~c"" if you indeed want a charlist or use "" instead.217    You may run "mix format --migrate" to change all single-quoted218    strings to use the ~c sigil and fix this warning.219    │220 93 │   for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do221    │                               ~222    │223    └─ lib/poison/encoder.ex:93:31224225    warning: using single-quoted strings to represent charlists is deprecated.226    Use ~c"" if you indeed want a charlist or use "" instead.227    You may run "mix format --migrate" to change all single-quoted228    strings to use the ~c sigil and fix this warning.229    │230 93 │   for {char, seq} <- Enum.zip('"\\\n\t\r\f\b', '"\\ntrfb') do231    │                                                ~232    │233    └─ lib/poison/encoder.ex:93:48234235     warning: using single-quoted strings to represent charlists is deprecated.236     Use ~c"" if you indeed want a charlist or use "" instead.237     You may run "mix format --migrate" to change all single-quoted238     strings to use the ~c sigil and fix this warning.239     │240 139 │   defp chunk_size(<<char>> <> _, _mode, acc) when char <= 0x1F or char in '"\\' do241     │                                                                           ~242     │243     └─ lib/poison/encoder.ex:139:75244245    warning: using single-quoted strings to represent charlists is deprecated.246    Use ~c"" if you indeed want a charlist or use "" instead.247    You may run "mix format --migrate" to change all single-quoted248    strings to use the ~c sigil and fix this warning.249    │250 77 │   defp value(<<char, _ :: binary>> = string, pos, _keys) when char in '-0123456789' do251    │                                                                       ~252    │253    └─ lib/poison/parser.ex:77:71254255     warning: using single-quoted strings to represent charlists is deprecated.256     Use ~c"" if you indeed want a charlist or use "" instead.257     You may run "mix format --migrate" to change all single-quoted258     strings to use the ~c sigil and fix this warning.259     │260 155 │   defp number_int(<<char, _ :: binary>> = string, pos, acc) when char in '123456789' do261     │                                                                          ~262     │263     └─ lib/poison/parser.ex:155:74264265     warning: using single-quoted strings to represent charlists is deprecated.266     Use ~c"" if you indeed want a charlist or use "" instead.267     You may run "mix format --migrate" to change all single-quoted268     strings to use the ~c sigil and fix this warning.269     │270 171 │   defp number_exp(<<e>> <> rest, frac, pos, acc) when e in 'eE' do271     │                                                            ~272     │273     └─ lib/poison/parser.ex:171:60274275     warning: using single-quoted strings to represent charlists is deprecated.276     Use ~c"" if you indeed want a charlist or use "" instead.277     You may run "mix format --migrate" to change all single-quoted278     strings to use the ~c sigil and fix this warning.279     │280 197 │   defp number_digits(<<char>> <> rest = string, pos) when char in '0123456789' do281     │                                                                   ~282     │283     └─ lib/poison/parser.ex:197:67284285     warning: using single-quoted strings to represent charlists is deprecated.286     Use ~c"" if you indeed want a charlist or use "" instead.287     You may run "mix format --migrate" to change all single-quoted288     strings to use the ~c sigil and fix this warning.289     │290 205 │   defp number_digits_count(<<char>> <> rest, acc) when char in '0123456789' do291     │                                                                ~292     │293     └─ lib/poison/parser.ex:205:64294295     warning: using single-quoted strings to represent charlists is deprecated.296     Use ~c"" if you indeed want a charlist or use "" instead.297     You may run "mix format --migrate" to change all single-quoted298     strings to use the ~c sigil and fix this warning.299     │300 229 │   for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do301     │                               ~302     │303     └─ lib/poison/parser.ex:229:31304305     warning: using single-quoted strings to represent charlists is deprecated.306     Use ~c"" if you indeed want a charlist or use "" instead.307     You may run "mix format --migrate" to change all single-quoted308     strings to use the ~c sigil and fix this warning.309     │310 229 │   for {seq, char} <- Enum.zip('"\\ntr/fb', '"\\\n\t\r/\f\b') do311     │                                            ~312     │313     └─ lib/poison/parser.ex:229:44314315     warning: using single-quoted strings to represent charlists is deprecated.316     Use ~c"" if you indeed want a charlist or use "" instead.317     You may run "mix format --migrate" to change all single-quoted318     strings to use the ~c sigil and fix this warning.319     │320 239 │     when a1 in 'dD' and a2 in 'dD'321     │                ~322     │323     └─ lib/poison/parser.ex:239:16324325     warning: using single-quoted strings to represent charlists is deprecated.326     Use ~c"" if you indeed want a charlist or use "" instead.327     You may run "mix format --migrate" to change all single-quoted328     strings to use the ~c sigil and fix this warning.329     │330 239 │     when a1 in 'dD' and a2 in 'dD'331     │                               ~332     │333     └─ lib/poison/parser.ex:239:31334335     warning: using single-quoted strings to represent charlists is deprecated.336     Use ~c"" if you indeed want a charlist or use "" instead.337     You may run "mix format --migrate" to change all single-quoted338     strings to use the ~c sigil and fix this warning.339     │340 240 │     and (b1 in '89abAB')341     │                ~342     │343     └─ lib/poison/parser.ex:240:16344345     warning: using single-quoted strings to represent charlists is deprecated.346     Use ~c"" if you indeed want a charlist or use "" instead.347     You may run "mix format --migrate" to change all single-quoted348     strings to use the ~c sigil and fix this warning.349     │350 274 │   defp skip_whitespace(<<char>> <> rest, pos) when char in '\s\n\t\r' do351     │                                                            ~352     │353     └─ lib/poison/parser.ex:274:60354355    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead356    │357 22 │   if Application.get_env(:poison, :native) do358    │                  ~359    │360    └─ lib/poison/parser.ex:22:18: Poison.Parser (module)361362    warning: use Bitwise is deprecated. import Bitwise instead363    │364 26 │   use Bitwise365    │   ~~~~~~~~~~~366    │367    └─ lib/poison/parser.ex:26: Poison.Parser (module)368369     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 operator370     │371 199 │     <<digits :: binary-size(count), rest :: binary>> = string372     │                             ~373     │374     └─ lib/poison/parser.ex:199:29: Poison.Parser.number_digits/2375376     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 operator377     │378 225 │     <<chunk :: binary-size(count), rest :: binary>> = string379     │                            ~380     │381     └─ lib/poison/parser.ex:225:28: Poison.Parser.string_continue/3382383    warning: use Bitwise is deprecated. import Bitwise instead384    │385 83 │   use Bitwise386    │   ~~~~~~~~~~~387    │388    └─ lib/poison/encoder.ex:83: Poison.Encoder.BitString (module)389390     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 operator391     │392 135 │     <<chunk :: binary-size(size), rest :: binary>> = string393     │                            ~394     │395     └─ lib/poison/encoder.ex:135:28: Poison.Encoder.BitString.escape/2396397     warning: Integer.to_char_list/2 is deprecated. Use Integer.to_charlist/2 instead398     │399 173 │     case Integer.to_char_list(char, 16) do400     │                  ~401     │402     └─ lib/poison/encoder.ex:173:18: Poison.Encoder.BitString.seq/1403404Generated poison app405==> nerves_compatibility_test406===> Analyzing applications...407===> Compiling recon408     ┌─ src/recon_alloc.erl:409     │410 648 │  usage(0.0,0.0) -> 1.00;411     │        ╰── Warning: matching on the float 0.0 will no longer also match -0.0 in OTP 27.412If you specifically intend to match 0.0 alone, write +0.0 instead.413414     ┌─ src/recon_alloc.erl:415     │416 648 │  usage(0.0,0.0) -> 1.00;417     │            ╰── Warning: matching on the float 0.0 will no longer also match -0.0 in OTP 27.418If you specifically intend to match 0.0 alone, write +0.0 instead.419420421==> db_connection422Compiling 14 files (.ex)423    warning: unused require Bitwise424    │425 31 │     require Bitwise426    │     ~427    │428    └─ lib/db_connection/backoff.ex:31:5429430     warning: using single-quoted strings to represent charlists is deprecated.431     Use ~c"" if you indeed want a charlist or use "" instead.432     You may run "mix format --migrate" to change all single-quoted433     strings to use the ~c sigil and fix this warning.434     │435 296 │       :normal    -> [{:data, [{'Module', mod}]}]436     │                                ~437     │438     └─ lib/db_connection/connection.ex:296:32439440     warning: using single-quoted strings to represent charlists is deprecated.441     Use ~c"" if you indeed want a charlist or use "" instead.442     You may run "mix format --migrate" to change all single-quoted443     strings to use the ~c sigil and fix this warning.444     │445 398 │     [{:data, [{'Module', mod}, {'State', state}]}]446     │                ~447     │448     └─ lib/db_connection/connection.ex:398:16449450     warning: using single-quoted strings to represent charlists is deprecated.451     Use ~c"" if you indeed want a charlist or use "" instead.452     You may run "mix format --migrate" to change all single-quoted453     strings to use the ~c sigil and fix this warning.454     │455 398 │     [{:data, [{'Module', mod}, {'State', state}]}]456     │                                 ~457     │458     └─ lib/db_connection/connection.ex:398:33459460     warning: :random.seed/3 is deprecated. Use the 'rand' module instead461     │462 105 │     case :random.seed(hash, sec, micro) do463     │                  ~464     │465     └─ lib/db_connection/backoff.ex:105:18: DBConnection.Backoff.random_seed/0466467Generated db_connection app468==> nerves_compatibility_test469===> Analyzing applications...470===> Compiling goldrush471    ┌─ src/glc_run.erl:472    │473 15 │      case (catch Fun(Event, Store)) of474    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.475Compile directive 'nowarn_deprecated_catch' can be used to suppress476warnings in selected modules.477478479    ┌─ src/gr_counter.erl:480    │481 39 │      case (catch gen_server:call(Server, list)) of482    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.483Compile directive 'nowarn_deprecated_catch' can be used to suppress484warnings in selected modules.485486    ┌─ src/gr_counter.erl:487    │488 46 │      case (catch gen_server:call(Server, {lookup_element, Term})) of489    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.490Compile directive 'nowarn_deprecated_catch' can be used to suppress491warnings in selected modules.492493    ┌─ src/gr_counter.erl:494    │495 66 │      case (catch gen_server:call(Server, {insert_counter, Counter, Value})) of496    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.497Compile directive 'nowarn_deprecated_catch' can be used to suppress498warnings in selected modules.499500    ┌─ src/gr_counter.erl:501    │502 89 │      case (catch gen_server:call(Server, {reset_counters, Counter})) of503    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.504Compile directive 'nowarn_deprecated_catch' can be used to suppress505warnings in selected modules.506507508    ┌─ src/gr_param.erl:509    │510 39 │      case (catch gen_server:call(Server, list)) of511    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.512Compile directive 'nowarn_deprecated_catch' can be used to suppress513warnings in selected modules.514515    ┌─ src/gr_param.erl:516    │517 46 │      case (catch gen_server:call(Server, info_size)) of518    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.519Compile directive 'nowarn_deprecated_catch' can be used to suppress520warnings in selected modules.521522    ┌─ src/gr_param.erl:523    │524 53 │      case (catch gen_server:call(Server, {insert, Term})) of525    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.526Compile directive 'nowarn_deprecated_catch' can be used to suppress527warnings in selected modules.528529    ┌─ src/gr_param.erl:530    │531 60 │      case (catch gen_server:call(Server, {lookup, Term})) of532    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.533Compile directive 'nowarn_deprecated_catch' can be used to suppress534warnings in selected modules.535536    ┌─ src/gr_param.erl:537    │538 67 │      case (catch gen_server:call(Server, {lookup_element, Term})) of539    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.540Compile directive 'nowarn_deprecated_catch' can be used to suppress541warnings in selected modules.542543    ┌─ src/gr_param.erl:544    │545 74 │      case (catch gen_server:call(Server, info)) of546    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.547Compile directive 'nowarn_deprecated_catch' can be used to suppress548warnings in selected modules.549550    ┌─ src/gr_param.erl:551    │552 82 │      case (catch gen_server:call(Server, transform)) of553    │            ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.554Compile directive 'nowarn_deprecated_catch' can be used to suppress555warnings in selected modules.556557558===> Analyzing applications...559===> Compiling mimerl560===> Analyzing applications...561===> Compiling ranch562    ┌─ src/ranch_conns_sup.erl:563    │564 80 │  	catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},565    │  	╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.566Compile directive 'nowarn_deprecated_catch' can be used to suppress567warnings in selected modules.568569570     ┌─ src/ranch_ssl.erl:571     │572 142 │  	case ssl:ssl_accept(CSocket, Opts, Timeout) of573     │  	     ╰── Warning: ssl:ssl_accept/3 is removed; use ssl:handshake/1,2,3 instead574575576==> ssl_verify_fun577Compiling 7 files (.erl)578Generated ssl_verify_fun app579==> tablet580Compiling 2 files (.ex)581Generated tablet app582==> elixir_make583Compiling 8 files (.ex)584Generated elixir_make app585==> nerves_logging586 CC kmsg_tailer.o587 LD kmsg_tailer588Compiling 5 files (.ex)589Generated nerves_logging app590==> elixir_uuid591Compiling 1 file (.ex)592    warning: use Bitwise is deprecated. import Bitwise instead593    │594  2 │   use Bitwise, only_operators: true595    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~596    │597    └─ lib/uuid.ex:2: UUID (module)598599Generated elixir_uuid app600==> nerves_discovery601Compiling 5 files (.ex)602Generated nerves_discovery app603==> ring_logger604Compiling 7 files (.ex)605Generated ring_logger app606==> nerves_compatibility_test607===> Analyzing applications...608===> Compiling poolboy609==> decimal610Compiling 4 files (.ex)611      warning: using single-quoted strings to represent charlists is deprecated.612      Use ~c"" if you indeed want a charlist or use "" instead.613      You may run "mix format --migrate" to change all single-quoted614      strings to use the ~c sigil and fix this warning.615      │616 1320 │           '0.' ++ :lists.duplicate(-diff, ?0) ++ list617      │           ~618      │619      └─ lib/decimal.ex:1320:11620621      warning: using single-quoted strings to represent charlists is deprecated.622      Use ~c"" if you indeed want a charlist or use "" instead.623      You may run "mix format --migrate" to change all single-quoted624      strings to use the ~c sigil and fix this warning.625      │626 1351 │           list = list ++ 'E'627      │                          ~628      │629      └─ lib/decimal.ex:1351:26630631      warning: using single-quoted strings to represent charlists is deprecated.632      Use ~c"" if you indeed want a charlist or use "" instead.633      You may run "mix format --migrate" to change all single-quoted634      strings to use the ~c sigil and fix this warning.635      │636 1352 │           list = if exp >= 0, do: list ++ '+', else: list637      │                                           ~638      │639      └─ lib/decimal.ex:1352:43640641      warning: using single-quoted strings to represent charlists is deprecated.642      Use ~c"" if you indeed want a charlist or use "" instead.643      You may run "mix format --migrate" to change all single-quoted644      strings to use the ~c sigil and fix this warning.645      │646 1775 │       int = if int == [], do: '0', else: int647      │                               ~648      │649      └─ lib/decimal.ex:1775:31650651      warning: using single-quoted strings to represent charlists is deprecated.652      Use ~c"" if you indeed want a charlist or use "" instead.653      You may run "mix format --migrate" to change all single-quoted654      strings to use the ~c sigil and fix this warning.655      │656 1776 │       exp = if exp == [], do: '0', else: exp657      │                               ~658      │659      └─ lib/decimal.ex:1776:31660661Generated decimal app662==> ecto663Compiling 54 files (.ex)664      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 2640 │     raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"679      │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~680      │681      └─ lib/ecto/changeset.ex:2640682683     warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity684     │685 203 │       {:::, _, [left, _]} -> is_integer(left) or is_binary(left)686     │        ~687     │688     └─ lib/ecto/query/builder.ex:203:8689690     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)691     │692 853 │   def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime693     │                                             ~~694     │695     └─ lib/ecto/query/builder.ex:853:45: Ecto.Query.Builder.quoted_type/2696697     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)698     │699 854 │   def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date700     │                                         ~~701     │702     └─ lib/ecto/query/builder.ex:854:41: Ecto.Query.Builder.quoted_type/2703704705== Compilation error in file lib/ecto/query.ex ==706** (Kernel.TypespecError) lib/ecto/query.ex:400: type dynamic/0 is a built-in type and it cannot be redefined707    (elixir 1.20.3) lib/kernel/typespec.ex:1002: Kernel.Typespec.compile_error/2708    (stdlib 8.1) lists.erl:2470: :lists.foldl_1/3709    (elixir 1.20.3) lib/kernel/typespec.ex:230: Kernel.Typespec.translate_typespecs_for_module/2710could not compile dependency :ecto, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile ecto --force", update it with "mix deps.update ecto" or clean it with "mix deps.clean ecto"