memorex

Build log

nerves_system_x86_64

memorex 0.2.4 · fail · run memorex-0.2.4-1790999673734
1396 of 1396 lines
1Resolving Hex dependencies...2Resolution completed in 0.635s3Unchanged:4  castore 1.0.215  circular_buffer 1.1.06  combine 0.10.07  cowboy 2.19.08  cowboy_telemetry 0.4.09  cowlib 2.20.0 VULNERABLE!10    EEF-CVE-2026-43966 (MEDIUM)11    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c12    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/213    https://osv.dev/vulnerability/EEF-CVE-2026-439661415    EEF-CVE-2026-43969 (LOW)16    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5617    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/118    https://osv.dev/vulnerability/EEF-CVE-2026-4396919  dart_sass 0.7.020  db_connection 2.10.221  decimal 3.1.122  ecto 3.14.223  ecto_sql 3.14.024  elixir_make 0.10.025  esbuild 0.10.026  expo 1.1.127  gettext 0.26.228  interactive_cmd 0.1.429  jason 1.4.530  memorex 0.2.431  mime 2.0.732  nerves 2.0.0-pre.233  nerves_discovery 0.1.534  nerves_logging 0.2.435  nerves_runtime 0.13.1336  nerves_system_bbb 2.30.237  nerves_system_br 1.34.438  nerves_system_mangopi_mq_pro 0.17.239  nerves_system_qemu_aarch64 0.4.240  nerves_system_rpi0 2.1.241  nerves_system_rpi4 2.1.242  nerves_system_rpi5 2.1.243  nerves_system_trellis 0.5.044  nerves_system_x86_64 1.34.245  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.146  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.147  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.148  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.149  nerves_toolchain_x86_64_nerves_linux_musl 15.3.150  nerves_uevent 0.1.751  phoenix 1.7.2452  phoenix_ecto 4.7.053  phoenix_html 3.3.454  phoenix_live_dashboard 0.8.755  phoenix_live_view 0.20.17 VULNERABLE!56    EEF-CVE-2026-64941 (LOW)57    aka: CVE-2026-64941, GHSA-36m4-rm57-3prf58    Open redirect in Phoenix.LiveView.validate_local_url!/2 via ASCII tab, LF and CR59    https://osv.dev/vulnerability/EEF-CVE-2026-6494160  phoenix_pubsub 2.3.061  phoenix_template 1.1.062  plug 1.20.363  plug_cowboy 2.9.064  plug_crypto 2.2.065  postgrex 0.22.466  property_table 0.3.467  ranch 2.3.068  ring_logger 0.11.769  tablet 0.3.370  telemetry 1.4.271  telemetry_metrics 0.6.272  telemetry_poller 1.3.073  timex 3.7.1374  toml 0.7.075  toolshed 0.5.076  tzdata 1.2.277  uboot_env 1.0.278  uuid 1.1.879  websock 0.5.380  websock_adapter 0.5.981* Getting memorex (Hex package)82* Getting nerves (Hex package)83* Getting ring_logger (Hex package)84* Getting toolshed (Hex package)85* Getting nerves_runtime (Hex package)86* Getting nerves_system_bbb (Hex package)87* Getting nerves_system_mangopi_mq_pro (Hex package)88* Getting nerves_system_qemu_aarch64 (Hex package)89* Getting nerves_system_rpi0 (Hex package)90* Getting nerves_system_rpi4 (Hex package)91* Getting nerves_system_rpi5 (Hex package)92* Getting nerves_system_trellis (Hex package)93* Getting nerves_system_x86_64 (Hex package)94* Getting nerves_system_br (Hex package)95* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)96* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)97* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)98* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)99* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)100* Getting nerves_logging (Hex package)101* Getting nerves_uevent (Hex package)102* Getting uboot_env (Hex package)103* Getting elixir_make (Hex package)104* Getting property_table (Hex package)105* Getting circular_buffer (Hex package)106* Getting interactive_cmd (Hex package)107* Getting nerves_discovery (Hex package)108* Getting tablet (Hex package)109* Getting dart_sass (Hex package)110* Getting ecto_sql (Hex package)111* Getting esbuild (Hex package)112* Getting gettext (Hex package)113* Getting jason (Hex package)114* Getting phoenix (Hex package)115* Getting phoenix_ecto (Hex package)116* Getting phoenix_html (Hex package)117* Getting phoenix_live_dashboard (Hex package)118* Getting phoenix_live_view (Hex package)119* Getting plug_cowboy (Hex package)120* Getting postgrex (Hex package)121* Getting telemetry_metrics (Hex package)122* Getting telemetry_poller (Hex package)123* Getting timex (Hex package)124* Getting toml (Hex package)125* Getting uuid (Hex package)126* Getting combine (Hex package)127* Getting tzdata (Hex package)128* Getting telemetry (Hex package)129* Getting db_connection (Hex package)130* Getting decimal (Hex package)131* Getting cowboy (Hex package)132* Getting cowboy_telemetry (Hex package)133* Getting plug (Hex package)134* Getting mime (Hex package)135* Getting plug_crypto (Hex package)136* Getting cowlib (Hex package)137* Getting ranch (Hex package)138* Getting phoenix_template (Hex package)139* Getting ecto (Hex package)140* Getting castore (Hex package)141* Getting phoenix_pubsub (Hex package)142* Getting websock_adapter (Hex package)143* Getting websock (Hex package)144* Getting expo (Hex package)145Found packages with security advisories, see above for details146You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more147==> dart_sass148Compiling 3 files (.ex)149     warning: using single-quoted strings to represent charlists is deprecated.150     Use ~c"" if you indeed want a charlist or use "" instead.151     You may run "mix format --migrate" to change all single-quoted152     strings to use the ~c sigil and fix this warning.153     │154 348 │         {'location', download} = List.keyfind(headers, 'location', 0)155     │          ~156     │157     └─ lib/dart_sass.ex:348:10158159     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 348 │         {'location', download} = List.keyfind(headers, 'location', 0)165     │                                                        ~166     │167     └─ lib/dart_sass.ex:348:56168169Generated dart_sass app170==> esbuild171Compiling 4 files (.ex)172Generated esbuild app173warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"174  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2175  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1176  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5177  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2178  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4179  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2180181==> phoenix_ecto182Compiling 7 files (.ex)183Generated phoenix_ecto app184==> timex185Compiling 62 files (.ex)186    warning: default arguments in protocol definitions is deprecated187    │188 84 │   def compare(a, b, granularity \\ :microsecond)189    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~190    │191    └─ lib/comparable/comparable.ex:84: Timex.Comparable (module)192193     warning: default arguments in protocol definitions is deprecated194     │195 139 │   def diff(a, b, granularity \\ :microsecond)196     │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~197     │198     └─ lib/comparable/comparable.ex:139: Timex.Comparable (module)199200    warning: protocols can only define functions without implementation via def/1, found: compare/2, diff/2201    │202  1 │ defprotocol Timex.Comparable do203    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~204    │205    └─ lib/comparable/comparable.ex:1: Timex.Comparable (module)206207     warning: the variable "len" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator208     │209 317 │     <<abbrevs::bytes(len), rest::binary>> = data210     │                      ~211     │212     └─ lib/parse/zoneinfo/parser.ex:317:22: Timex.Parse.ZoneInfo.Parser.parse_abbreviations/4213214    warning: default arguments in protocol definitions is deprecated215    │216 48 │   def to_datetime(datetime, timezone \\ :utc)217    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~218    │219    └─ lib/protocol.ex:48: Timex.Protocol (module)220221    warning: protocols can only define functions without implementation via def/1, found: to_datetime/1222    │223  1 │ defprotocol Timex.Protocol do224    │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~225    │226    └─ lib/protocol.ex:1: Timex.Protocol (module)227228    warning: unused require Timex.Macros229    │230  5 │   require Timex.Macros231    │   ~232    │233    └─ lib/comparable/tuple.ex:5:3234235    warning: unused require Timex.Macros236    │237  5 │   require Timex.Macros238    │   ~239    │240    └─ lib/comparable/naivedatetime.ex:5:3241242    warning: unused require Bitwise243    │244  5 │   require Bitwise245    │   ~246    │247    └─ lib/calendar/julian.ex:5:3248249Compiling lib/l10n/gettext.ex (it's taking more than 10s)250     warning: the following clause will never match:251252         {ty, a, b} when ty === :gap or ty === :ambiguous ->253254     it is expected to match on type:255256         dynamic({:error, term()} and not {:ok, %{..., time_zone: term()}})257258     where "ty" was given the type:259260         # type: :ambiguous or :gap261         # from: lib/timezone/timezone.ex:548262         ty in [:gap, :ambiguous]263264     type warning found at:265     │266 548 │       {ty, a, b} when ty in [:gap, :ambiguous] ->267     │       ~268     │269     └─ lib/timezone/timezone.ex:548:7: Timex.Timezone.convert/2270271     warning: a struct for Timex.PosixTimezone is expected on struct update:272273         %Timex.PosixTimezone{rule | std_abbr: abbr}274275     but got type:276277         dynamic()278279     where "rule" was given the type:280281         # type: dynamic()282         # from: lib/parse/posix/parser.ex:119:33283         rule284285     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"286287     type warning found at:288     │289 121 │       parse_tz(:std_offset, rest, %TZ{rule | std_abbr: abbr})290     │                                   ~291     │292     └─ lib/parse/posix/parser.ex:121:35: Timex.Parse.Timezones.Posix.parse_tz/3293294     warning: a struct for Timex.PosixTimezone is expected on struct update:295296         %Timex.PosixTimezone{rule | std_offset: offset}297298     but got type:299300         dynamic()301302     where "rule" was given the type:303304         # type: dynamic()305         # from: lib/parse/posix/parser.ex:125:35306         rule307308     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"309310     type warning found at:311     │312 127 │       parse_tz(:dst_abbr, rest, %TZ{rule | std_offset: offset})313     │                                 ~314     │315     └─ lib/parse/posix/parser.ex:127:33: Timex.Parse.Timezones.Posix.parse_tz/3316317     warning: a struct for Timex.PosixTimezone is expected on struct update:318319         %Timex.PosixTimezone{rule | dst_abbr: abbr}320321     but got type:322323         dynamic()324325     where "rule" was given the type:326327         # type: dynamic()328         # from: lib/parse/posix/parser.ex:141:33329         rule330331     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"332333     type warning found at:334     │335 143 │          rule = %TZ{rule | dst_abbr: abbr} do336     │                 ~337     │338     └─ lib/parse/posix/parser.ex:143:17: Timex.Parse.Timezones.Posix.parse_tz/3339340     warning: a struct for Timex.PosixTimezone is expected on struct update:341342         %Timex.PosixTimezone{rule | dst_offset: offset}343344     but got type:345346         dynamic()347348     where "rule" was given the type:349350         # type: dynamic()351         # from: lib/parse/posix/parser.ex:160:35352         rule353354     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"355356     type warning found at:357     │358 162 │          rule = %TZ{rule | dst_offset: offset} do359     │                 ~360     │361     └─ lib/parse/posix/parser.ex:162:17: Timex.Parse.Timezones.Posix.parse_tz/3362363     warning: a struct for Timex.PosixTimezone is expected on struct update:364365         %Timex.PosixTimezone{rule | dst_start: dst_start, dst_end: dst_end}366367     but got type:368369         dynamic()370371     where "rule" was given the type:372373         # type: dynamic()374         # from: lib/parse/posix/parser.ex:185:36375         rule376377     when defining the variable "rule", you must also pattern match on "%Timex.PosixTimezone{}"378379     type warning found at:380     │381 190 │           {:ok, %TZ{rule | dst_start: dst_start, dst_end: dst_end}, rest}382     │                 ~383     │384     └─ lib/parse/posix/parser.ex:190:17: Timex.Parse.Timezones.Posix.parse_tz/3385386     warning: the following clause will never match:387388         :error ->389390     it is expected to match on type:391392         dynamic({:error, :invalid_number, binary()})393394     type warning found at:395     │396 264 │       :error ->397     │       ~~~~~~~~~398     │399     └─ lib/parse/posix/parser.ex:264: Timex.Parse.Timezones.Posix.parse_month_week_day/3400401    warning: the following pattern will never match:402403        {y, m, d} <- to_erl_datetime(date)404405    because the right-hand side has type:406407        dynamic(408          {:error, :invalid_date} or409            {:ok, {{integer(), integer(), integer()}, {integer(), integer(), integer()}}}410        )411412    where "date" was given the type:413414        # type: dynamic({...})415        # from: lib/datetime/erlang.ex:7:17416        date417418    type warning found at:419    │420  8 │     with {y, m, d} <- to_erl_datetime(date),421    │          ~422    │423    └─ lib/datetime/erlang.ex:8:10: Timex.Protocol.Tuple.to_julian/1424425     warning: the following clause is redundant:426427         def shift(_, _)428429     it has type:430431         dynamic(%Date{}), dynamic()432433     previous clauses have already matched on the following types:434435         %Date{}, term()436437     │438 227 │   def shift(_, _), do: {:error, :badarg}439     │       ~440     │441     └─ lib/date/date.ex:227:7: Timex.Protocol.Date.shift/2442443     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:444445         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions, leaps: leaps}446447     but got type:448449         dynamic(%{..., leaps: term(), transitions: term()})450451     where "zone" was given the types:452453         # type: dynamic(%{..., rule: term()} or %{..., transitions: term()})454         # from: lib/parse/zoneinfo/parser.ex:156:28455         {:ok, zone, rest} <- parse_content(1, data, %Timex.Parse.ZoneInfo.Parser.Zone{..., version: 1})456457         # type: dynamic(%{..., transitions: term()})458         # from: lib/parse/zoneinfo/parser.ex:157:26459         Enum.sort_by(zone.transitions, fn tx -> tx.starts_at end)460461         # type: dynamic(%{..., leaps: term(), transitions: term()})462         # from: lib/parse/zoneinfo/parser.ex:158:20463         Enum.sort_by(zone.leaps, fn leap -> leap.epoch end)464465     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"466467     type warning found at:468     │469 159 │       {:ok, %Zone{zone | transitions: transitions, leaps: leaps}, rest}470     │             ~471     │472     └─ lib/parse/zoneinfo/parser.ex:159:13: Timex.Parse.ZoneInfo.Parser.parse_versioned_content/2473474     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:475476         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: times}477478     but got type:479480         dynamic()481482     where "zone" was given the type:483484         # type: dynamic()485         # from: lib/parse/zoneinfo/parser.ex:270:92486         zone487488     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"489490     type warning found at:491     │492 272 │     parse_transition_info(version, rest, header, %Zone{zone | transitions: times})493     │                                                  ~494     │495     └─ lib/parse/zoneinfo/parser.ex:272:50: Timex.Parse.ZoneInfo.Parser.parse_transition_times/4496497     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:498499         %Timex.Parse.ZoneInfo.Parser.Zone{zone | leaps: leaps}500501     but got type:502503         dynamic()504505     where "zone" was given the type:506507         # type: dynamic()508         # from: lib/parse/zoneinfo/parser.ex:330:79509         zone510511     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"512513     type warning found at:514     │515 344 │     parse_flags(version, rest, header, %Zone{zone | leaps: leaps})516     │                                        ~517     │518     └─ lib/parse/zoneinfo/parser.ex:344:40: Timex.Parse.ZoneInfo.Parser.parse_leap_seconds/4519520     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:521522         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}523524     but got type:525526         dynamic(%{..., transitions: term()})527528     where "zone" was given the type:529530         # type: dynamic(%{..., transitions: term()})531         # from: lib/parse/zoneinfo/parser.ex:354:15532         Enum.with_index(zone.transitions)533534     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"535536     type warning found at:537     │538 362 │       parse_posixtz_string(version, rest, %Zone{zone | transitions: transitions})539     │                                           ~540     │541     └─ lib/parse/zoneinfo/parser.ex:362:43: Timex.Parse.ZoneInfo.Parser.parse_flags/4542543     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:544545         %Timex.Parse.ZoneInfo.Parser.Zone{zone | transitions: transitions}546547     but got type:548549         dynamic(%{..., transitions: term()})550551     where "zone" was given the type:552553         # type: dynamic(%{..., transitions: term()})554         # from: lib/parse/zoneinfo/parser.ex:354:15555         Enum.with_index(zone.transitions)556557     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"558559     type warning found at:560     │561 364 │       {:ok, %Zone{zone | transitions: transitions}, rest}562     │             ~563     │564     └─ lib/parse/zoneinfo/parser.ex:364:13: Timex.Parse.ZoneInfo.Parser.parse_flags/4565566     warning: a struct for Timex.Parse.ZoneInfo.Parser.Zone is expected on struct update:567568         %Timex.Parse.ZoneInfo.Parser.Zone{zone | rule: rule}569570     but got type:571572         dynamic()573574     where "zone" was given the type:575576         # type: dynamic()577         # from: lib/parse/zoneinfo/parser.ex:369:62578         zone579580     when defining the variable "zone", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Zone{}"581582     type warning found at:583     │584 372 │       {:ok, %Zone{zone | rule: rule}, format_rest <> rest}585     │             ~586     │587     └─ lib/parse/zoneinfo/parser.ex:372:13: Timex.Parse.ZoneInfo.Parser.parse_posixtz_string/3588589     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:590591         %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_abbr: abbr, dst_abbr: abbr}592593     but got type:594595         dynamic()596597     where "rule" was given the type:598599         # type: dynamic()600         # from: lib/parse/zoneinfo/parser.ex:383:33601         rule602603     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"604605     type warning found at:606     │607 385 │       parse_tz(:std_offset, rest, %Rule{rule | std_abbr: abbr, dst_abbr: abbr})608     │                                   ~609     │610     └─ lib/parse/zoneinfo/parser.ex:385:35: Timex.Parse.ZoneInfo.Parser.parse_tz/3611612     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:613614         %Timex.Parse.ZoneInfo.Parser.Rule{rule | std_offset: offset, dst_offset: offset}615616     but got type:617618         dynamic()619620     where "rule" was given the type:621622         # type: dynamic()623         # from: lib/parse/zoneinfo/parser.ex:389:35624         rule625626     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"627628     type warning found at:629     │630 391 │       parse_tz(:dst_abbr, rest, %Rule{rule | std_offset: offset, dst_offset: offset})631     │                                 ~632     │633     └─ lib/parse/zoneinfo/parser.ex:391:33: Timex.Parse.ZoneInfo.Parser.parse_tz/3634635     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:636637         %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_abbr: abbr}638639     but got type:640641         dynamic()642643     where "rule" was given the type:644645         # type: dynamic()646         # from: lib/parse/zoneinfo/parser.ex:405:33647         rule648649     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"650651     type warning found at:652     │653 407 │          rule = %Rule{rule | dst_abbr: abbr} do654     │                 ~655     │656     └─ lib/parse/zoneinfo/parser.ex:407:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3657658     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:659660         %Timex.Parse.ZoneInfo.Parser.Rule{rule | dst_offset: offset}661662     but got type:663664         dynamic()665666     where "rule" was given the type:667668         # type: dynamic()669         # from: lib/parse/zoneinfo/parser.ex:424:35670         rule671672     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"673674     type warning found at:675     │676 426 │          rule = %Rule{rule | dst_offset: offset} do677     │                 ~678     │679     └─ lib/parse/zoneinfo/parser.ex:426:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3680681     warning: a struct for Timex.Parse.ZoneInfo.Parser.Rule is expected on struct update:682683         %Timex.Parse.ZoneInfo.Parser.Rule{rule | start_time: start_time, end_time: end_time}684685     but got type:686687         dynamic()688689     where "rule" was given the type:690691         # type: dynamic()692         # from: lib/parse/zoneinfo/parser.ex:449:36693         rule694695     when defining the variable "rule", you must also pattern match on "%Timex.Parse.ZoneInfo.Parser.Rule{}"696697     type warning found at:698     │699 454 │           {:ok, %Rule{rule | start_time: start_time, end_time: end_time}, rest}700     │                 ~701     │702     └─ lib/parse/zoneinfo/parser.ex:454:17: Timex.Parse.ZoneInfo.Parser.parse_tz/3703704     warning: the following clause will never match:705706         :error ->707708     it is expected to match on type:709710         dynamic({:error, :invalid_number, binary()})711712     type warning found at:713     │714 528 │       :error ->715     │       ~~~~~~~~~716     │717     └─ lib/parse/zoneinfo/parser.ex:528: Timex.Parse.ZoneInfo.Parser.parse_month_week_day/3718719Generated timex app720==> websock_adapter721Compiling 4 files (.ex)722Generated websock_adapter app723warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"724  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2725  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1726  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5727  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2728  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4729  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2730731==> phoenix732Compiling 71 files (.ex)733    warning: unused require Logger734    │735  9 │   require Logger736    │   ~737    │738    └─ lib/phoenix/config.ex:9:3739740     warning: unused require Logger741     │742 281 │   require Logger743     │   ~744     │745     └─ lib/phoenix/endpoint.ex:281:3746747    warning: unused require Phoenix.Endpoint748    │749  6 │   require Phoenix.Endpoint750    │   ~751    │752    └─ lib/phoenix/controller.ex:6:3753754    warning: the variable "prefix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator755    │756 46 │       <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix757    │                             ~758    │759    └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2760761    warning: unused require Phoenix.Endpoint762    │763 17 │   require Phoenix.Endpoint764    │   ~765    │766    └─ lib/phoenix/endpoint/render_errors.ex:17:3767768     warning: unused require Phoenix.Endpoint769     │770 202 │   require Phoenix.Endpoint771     │   ~772     │773     └─ lib/phoenix/socket.ex:202:3774775    warning: unused require Phoenix.Endpoint776    │777  6 │   require Phoenix.Endpoint778    │   ~779    │780    └─ lib/phoenix/channel/server.ex:6:3781782    warning: unused require Logger783    │784 70 │   require Logger785    │   ~786    │787    └─ lib/phoenix/socket/pool_supervisor.ex:70:3788789     warning: unused require Logger790     │791 100 │   require Logger792     │   ~793     │794     └─ lib/phoenix/token.ex:100:3795796     warning: comparison between distinct types found:797798         merge_all != []799800     given types:801802         dynamic(non_empty_list({atom(), term()})) != empty_list()803804     where "merge_all" was given the type:805806         # type: dynamic(non_empty_list({atom(), term()}))807         # from: lib/phoenix/router/route.ex:121:15808         merge_all = merge_params ++ merge_private ++ merge_assigns809810     While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false811812     type warning found at:813     │814 123 │     if merge_all != [] do815     │                  ~816     │817     └─ lib/phoenix/router/route.ex:123:18: Phoenix.Router.Route.build_prepare/1818819    warning: a struct for Plug.Conn is expected on struct update:820821        %Plug.Conn{conn | state: :sent}822823    but got type:824825        dynamic()826827    where "conn" was given the type:828829        # type: dynamic()830        # from: lib/phoenix/endpoint/render_errors.ex:55:17831        conn832833    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"834835    type warning found at:836    │837 60 │           %Plug.Conn{conn | state: :sent}838    │           ~839    │840    └─ lib/phoenix/endpoint/render_errors.ex:60:11: Phoenix.Endpoint.RenderErrors.__catch__/5841842     warning: a struct for Plug.Conn is expected on struct update:843844         %Plug.Conn{conn | query_params: %{}, params: %{}}845846     but got type:847848         dynamic(%{..., params: %Plug.Conn.Unfetched{}})849850     where "conn" was given the types:851852         # type: dynamic(%{..., params: term()})853         # from: lib/phoenix/endpoint/render_errors.ex:133:17854         conn.params855856         # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})857         # from: lib/phoenix/endpoint/render_errors.ex:133:17858         conn.params859860     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"861862     type warning found at:863     │864 134 │         %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}865     │                                   ~866     │867     └─ lib/phoenix/endpoint/render_errors.ex:134:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1868869     warning: a struct for Plug.Conn is expected on struct update:870871         %Plug.Conn{conn | query_params: %{}, params: params}872873     but got type:874875         dynamic(%{..., params: not %Plug.Conn.Unfetched{}})876877     where "conn" was given the types:878879         # type: dynamic(%{..., params: term()})880         # from: lib/phoenix/endpoint/render_errors.ex:133:17881         conn.params882883         # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})884         # from: lib/phoenix/endpoint/render_errors.ex:133:17885         conn.params886887     when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"888889     type warning found at:890     │891 135 │         params -> %Plug.Conn{conn | query_params: %{}, params: params}892     │                   ~893     │894     └─ lib/phoenix/endpoint/render_errors.ex:135:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/1895896      warning: a struct for Plug.Conn is expected on struct update:897898          %Plug.Conn{conn | params: params}899900      but got type:901902          dynamic(%{..., params: map()})903904      where "conn" was given the type:905906          # type: dynamic(%{..., params: map()})907          # from: lib/phoenix/controller.ex:1327:17908          Map.get(conn.params, required_key)909910      when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"911912      type warning found at:913      │914 1334 │     %Plug.Conn{conn | params: params}915      │     ~916      │917      └─ lib/phoenix/controller.ex:1334:5: Phoenix.Controller.scrub_params/2918919Generated phoenix app920warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"921  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2922  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1923  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5924  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2925  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4926  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2927928==> phoenix_live_view929Compiling 39 files (.ex)930    warning: unused require Logger931    │932 48 │   require Logger933    │   ~934    │935    └─ lib/phoenix_live_view/socket.ex:48:3936937     warning: unused require Phoenix.ChannelTest938     │939 183 │   require Phoenix.ChannelTest940     │   ~941     │942     └─ lib/phoenix_live_view/test/live_view_test.ex:183:3943944     warning: unused require Phoenix.ConnTest945     │946 182 │   require Phoenix.ConnTest947     │   ~948     │949     └─ lib/phoenix_live_view/test/live_view_test.ex:182:3950951    warning: unused require Phoenix.ChannelTest952    │953  5 │   require Phoenix.ChannelTest954    │   ~955    │956    └─ lib/phoenix_live_view/test/upload_client.ex:5:3957958    warning: unused require Logger959    │960  6 │   require Logger961    │   ~962    │963    └─ lib/phoenix_live_view/upload_channel.ex:6:3964965     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:966967         %Phoenix.LiveView.Socket{968           socket969           | assigns: Map.merge(temp_assigns, socket.assigns),970             private:971               Map.update(972                 socket.private,973                 :temporary_assigns,974                 temp_assigns,975                 &Map.merge(&1, temp_assigns)976               )977         }978979     but got type:980981         dynamic()982983     where "socket" was given the type:984985         # type: dynamic()986         # from: lib/phoenix_live_view/utils.ex:415:28987         socket988989     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"990991     type warning found at:992     │993 422 │     %Socket{994     │     ~995     │996     └─ lib/phoenix_live_view/utils.ex:422:5: Phoenix.LiveView.Utils.handle_mount_option/3997998    warning: the following clause will never match:9991000        {:error, reason} ->10011002    because it attempts to match on the result of:10031004        IO.binwrite(state.file, data)10051006    which has type:10071008        dynamic(not {:error, term()})10091010    type warning found at:1011    │1012 23 │       {:error, reason} -> {:error, reason, state}1013    │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1014    │1015    └─ lib/phoenix_live_view/upload_tmp_file_writer.ex:23: Phoenix.LiveView.UploadTmpFileWriter.write_chunk/210161017     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10181019         %Phoenix.LiveView.UploadEntry{1020           entry1021           | preflighted?: entry.preflighted? || Enum.__in__(entry.ref, refs)1022         }10231024     but got type:10251026         dynamic()10271028     where "entry" was given the type:10291030         # type: dynamic()1031         # from: lib/phoenix_live_view/upload_config.ex:362:171032         entry <- conf.entries10331034     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10351036     type warning found at:1037     │1038 363 │         %UploadEntry{entry | preflighted?: entry.preflighted? || entry.ref in refs}1039     │         ~1040     │1041     └─ lib/phoenix_live_view/upload_config.ex:363:9: Phoenix.LiveView.UploadConfig.mark_preflighted/210421043     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10441045         %Phoenix.LiveView.UploadEntry{entry | valid?: true, uuid: generate_uuid()}10461047     but got type:10481049         dynamic()10501051     where "entry" was given the type:10521053         # type: dynamic()1054         # from: lib/phoenix_live_view/upload_config.ex:572:301055         entry10561057     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10581059     type warning found at:1060     │1061 573 │     entry = %UploadEntry{entry | valid?: true, uuid: generate_uuid()}1062     │             ~1063     │1064     └─ lib/phoenix_live_view/upload_config.ex:573:13: Phoenix.LiveView.UploadConfig.put_valid_entry/210651066     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:10671068         %Phoenix.LiveView.UploadEntry{entry | valid?: false}10691070     but got type:10711072         dynamic()10731074     where "entry" was given the type:10751076         # type: dynamic()1077         # from: lib/phoenix_live_view/upload_config.ex:585:321078         entry10791080     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"10811082     type warning found at:1083     │1084 586 │     entry = %UploadEntry{entry | valid?: false}1085     │             ~1086     │1087     └─ lib/phoenix_live_view/upload_config.ex:586:13: Phoenix.LiveView.UploadConfig.put_invalid_entry/310881089      warning: the following clause is redundant:10901091          def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2)10921093      it has type:10941095          dynamic(), dynamic(), dynamic((none() -> term()) or (none(), none() -> term()))10961097      previous clauses have already matched on the following types:10981099          %Phoenix.LiveView.Socket{}, term(), (none(), none() -> term())1100          %Phoenix.LiveView.Socket{}, term(), (none() -> term())1101          term(), term(), (none(), none() -> term())1102          term(), term(), (none() -> term())11031104      │1105 1378 │   def update(assigns, _key, fun) when is_function(fun, 1) or is_function(fun, 2) do1106      │       ~1107      │1108      └─ lib/phoenix_component.ex:1378:7: Phoenix.Component.update/311091110     warning: a struct for Phoenix.LiveView.UploadEntry is expected on struct update:11111112         %Phoenix.LiveView.UploadEntry{entry | cancelled?: true}11131114     but got type:11151116         dynamic()11171118     where "entry" was given the type:11191120         # type: dynamic()1121         # from: lib/phoenix_live_view/upload_config.ex:669:421122         entry11231124     when defining the variable "entry", you must also pattern match on "%Phoenix.LiveView.UploadEntry{}"11251126     type warning found at:1127     │1128 669 │         update_entry(conf, entry.ref, fn entry -> %UploadEntry{entry | cancelled?: true} end)1129     │                                                   ~1130     │1131     └─ lib/phoenix_live_view/upload_config.ex:669:51: Phoenix.LiveView.UploadConfig.cancel_entry/211321133    warning: Logger.disable/1 is deprecated. Use Logger.put_process_level(pid, :none) instead1134    │1135 73 │     Logger.disable(self())1136    │            ~1137    │1138    └─ lib/phoenix_live_view/test/client_proxy.ex:73:12: Phoenix.LiveViewTest.ClientProxy.init/111391140     warning: the right-hand side of || (shown as ... below) will never be executed:11411142         conn.private[:live_view_connect_info] || prune_conn(conn) || ...11431144     because the left-hand side always evaluates to:11451146         dynamic(not false and not nil)11471148     where "conn" was given the types:11491150         # type: dynamic(%Plug.Conn{assigns: %{..., live_module: term()}, status: integer()})1151         # from: lib/phoenix_live_view/test/live_view_test.ex:319:721152         %Plug.Conn{status: 200, assigns: %{live_module: live_module}} = conn11531154         # type: dynamic(%Plug.Conn{1155           assigns: %{..., live_module: term()},1156           private:1157             %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or1158               non_struct_map(),1159           status: integer()1160         })1161         # from: lib/phoenix_live_view/test/live_view_test.ex:333:351162         conn.private[:live_view_connect_params]11631164     type warning found at:1165     │1166 334 │       connect_info: conn.private[:live_view_connect_info] || prune_conn(conn) || %{},1167     │       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1168     │1169     └─ lib/phoenix_live_view/test/live_view_test.ex:334: Phoenix.LiveViewTest.connect_from_static_token/211701171     warning: a struct for Phoenix.LiveViewTest.ClientProxy is expected on struct update:11721173         %Phoenix.LiveViewTest.ClientProxy{view | rendered: rendered}11741175     but got type:11761177         dynamic(%{..., rendered: map()})11781179     where "view" was given the type:11801181         # type: dynamic(%{..., rendered: map()})1182         # from: lib/phoenix_live_view/test/client_proxy.ex:727:261183         Phoenix.LiveViewTest.DOM.merge_diff(view.rendered, diff)11841185     when defining the variable "view", you must also pattern match on "%Phoenix.LiveViewTest.ClientProxy{}"11861187     type warning found at:1188     │1189 728 │           new_view = %ClientProxy{view | rendered: rendered}1190     │                      ~1191     │1192     └─ lib/phoenix_live_view/test/client_proxy.ex:728:22: Phoenix.LiveViewTest.ClientProxy.merge_rendered/311931194     warning: a struct for Phoenix.LiveView.Socket is expected on struct update:11951196         %Phoenix.LiveView.Socket{1197           socket1198           | assigns: %Phoenix.LiveView.Socket.AssignsNotInSocket{__assigns__: assigns}1199         }12001201     but got type:12021203         dynamic(%{..., assigns: term()})12041205     where "socket" was given the type:12061207         # type: dynamic(%{..., assigns: term()})1208         # from: lib/phoenix_live_view/renderer.ex:121:431209         %{assigns: assigns} = socket12101211     when defining the variable "socket", you must also pattern match on "%Phoenix.LiveView.Socket{}"12121213     type warning found at:1214     │1215 122 │     socket = %Socket{socket | assigns: %Socket.AssignsNotInSocket{__assigns__: assigns}}1216     │              ~1217     │1218     └─ lib/phoenix_live_view/renderer.ex:122:14: Phoenix.LiveView.Renderer.render_assigns/112191220     warning: the following pattern will never match:12211222         template = Phoenix.LiveView.Utils.normalize_layout(template)12231224     because the right-hand side has type:12251226         none()12271228     where "template" was given the types:12291230         # type: binary()1231         # from: lib/phoenix_live_view/router.ex:299:661232         is_binary(template)12331234         # type: binary()1235         # from: lib/phoenix_live_view/router.ex1236         {:root_layout, {mod, template}}12371238     type warning found at:1239     │1240 300 │         template = Phoenix.LiveView.Utils.normalize_layout(template)1241     │                  ~1242     │1243     └─ lib/phoenix_live_view/router.ex:300:18: Phoenix.LiveView.Router.validate_live_session_opts/312441245     warning: the following pattern will never match:12461247         template = Phoenix.LiveView.Utils.normalize_layout(template)12481249     because the right-hand side has type:12501251         none()12521253     where "template" was given the types:12541255         # type: binary()1256         # from: lib/phoenix_live_view/router.ex:316:611257         is_binary(template)12581259         # type: binary()1260         # from: lib/phoenix_live_view/router.ex1261         {:layout, {mod, template}}12621263     type warning found at:1264     │1265 317 │         template = Phoenix.LiveView.Utils.normalize_layout(template)1266     │                  ~1267     │1268     └─ lib/phoenix_live_view/router.ex:317:18: Phoenix.LiveView.Router.validate_live_session_opts/312691270     warning: the following clause is redundant:12711272         def to_iodata(%_{} = struct)12731274     it has type:12751276         dynamic(%Phoenix.LiveView.Rendered{})12771278     previous clauses have already matched on the following types:12791280         %Phoenix.LiveView.Rendered{}12811282     │1283 152 │     def to_iodata(%_{} = struct) do1284     │         ~1285     │1286     └─ lib/phoenix_live_view/engine.ex:152:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/112871288     warning: the 1st pattern in clause will never match:12891290         nil12911292     because it is expected to receive type:12931294         dynamic(%Phoenix.LiveView.Rendered{})12951296     hint: defimpl for Phoenix.LiveView.Rendered requires its callbacks to match exclusively on %Phoenix.LiveView.Rendered{}12971298     type warning found at:1299     │1300 156 │     def to_iodata(nil) do1301     │     ~~~~~~~~~~~~~~~~~~~~~1302     │1303     └─ lib/phoenix_live_view/engine.ex:156: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/113041305     warning: the following clause is redundant:13061307         def to_iodata(other)13081309     it has type:13101311         dynamic(%Phoenix.LiveView.Rendered{})13121313     previous clauses have already matched on the following types:13141315         %Phoenix.LiveView.Rendered{}13161317     │1318 160 │     def to_iodata(other) do1319     │         ~1320     │1321     └─ lib/phoenix_live_view/engine.ex:160:9: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/113221323     warning: this clause of defp class_names/1 is never used (or it will always fail/warn when invoked)1324     │1325 903 │   defp class_names(nil), do: []1326     │        ~1327     │1328     └─ lib/phoenix_live_view/js.ex:903:8: Phoenix.LiveView.JS.class_names/113291330Generated phoenix_live_view app1331warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"1332  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/21333  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/11334  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51335  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21336  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41337  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/213381339==> phoenix_live_dashboard1340Compiling 36 files (.ex)1341     warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1342     │1343 281 │     do: struct.to_string(value)1344     │                ~1345     │1346     └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:281:16: Phoenix.LiveDashboard.EctoStatsPage.format/213471348Generated phoenix_live_dashboard app1349==> uuid1350Compiling 1 file (.ex)1351    warning: use Bitwise is deprecated. import Bitwise instead1352    │1353  2 │   use Bitwise, only_operators: true1354    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1355    │1356    └─ lib/uuid.ex:2: UUID (module)13571358Generated uuid app1359==> memorex1360Compiling 35 files (.ex)1361warning: defining a Gettext backend by calling13621363    use Gettext, otp_app: ...13641365is deprecated. To define a backend, call:13661367    use Gettext.Backend, otp_app: :my_app13681369Then, instead of importing your backend, call this in your module:13701371    use Gettext, backend: MyApp.Gettext13721373  lib/memorex_web/gettext.ex:23: MemorexWeb.Gettext (module)13741375    error: module Phoenix.View is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module1376    │1377  4 │   use MemorexWeb, :live_view1378    │   ^^^^^^^^^^^^^^^^^^^^^^^^^^1379    │1380    └─ lib/memorex_web/live/card_live/edit.ex:4: MemorexWeb.CardLive.Edit (module)13811382    error: module Phoenix.View is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module1383    │1384  4 │   use MemorexWeb, :live_component1385    │   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1386    │1387    └─ lib/memorex_web/live/card_live/card_component.ex:4: MemorexWeb.CardLive.CardComponent (module)138813891390== Compilation error in file lib/memorex_web/live/card_live/card_component.ex ==1391** (CompileError) lib/memorex_web/live/card_live/card_component.ex: cannot compile module MemorexWeb.CardLive.CardComponent (errors have been logged)1392    expanding macro: MemorexWeb.__using__/11393    lib/memorex_web/live/card_live/card_component.ex:4: MemorexWeb.CardLive.CardComponent (module)1394    (elixir 1.20.3) expanding macro: Kernel.use/21395    lib/memorex_web/live/card_live/card_component.ex:4: MemorexWeb.CardLive.CardComponent (module)1396could not compile dependency :memorex, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile memorex --force", update it with "mix deps.update memorex" or clean it with "mix deps.clean memorex"