gandalf

Build log

host

gandalf 0.2.0 · fail · run gandalf-0.2.0-1791187572273
974 of 974 lines
1Resolving Hex dependencies...2Resolution completed in 0.327s3Unchanged:4  circular_buffer 1.1.05  comeonin 3.2.06  connection 1.0.47  db_connection 1.1.38  decimal 1.9.0 VULNERABLE!9    EEF-CVE-2026-32686 (MEDIUM)10    aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v11    Unbounded exponent in decimal enables unauthenticated DoS12    https://osv.dev/vulnerability/EEF-CVE-2026-3268613  ecto 2.2.1214  elixir_make 0.10.015  gandalf 0.2.016  interactive_cmd 0.1.417  mime 2.0.718  nerves 2.0.0-pre.219  nerves_discovery 0.1.520  nerves_logging 0.2.421  nerves_runtime 0.13.1322  nerves_system_bbb 2.30.223  nerves_system_br 1.34.424  nerves_system_mangopi_mq_pro 0.17.225  nerves_system_qemu_aarch64 0.4.226  nerves_system_rpi0 2.1.227  nerves_system_rpi4 2.1.228  nerves_system_rpi5 2.1.229  nerves_system_trellis 0.5.030  nerves_system_x86_64 1.34.231  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.132  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.133  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.134  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.135  nerves_toolchain_x86_64_nerves_linux_musl 15.3.136  nerves_uevent 0.1.737  plug 1.20.338  plug_crypto 2.2.039  poison 3.1.040  poolboy 1.5.241  postgrex 0.13.542  property_table 0.3.443  ring_logger 0.11.744  secure_random 0.5.145  tablet 0.3.346  telemetry 1.4.247  toolshed 0.5.048  uboot_env 1.0.249Found packages with security advisories, see above for details50All dependencies have been fetched51    warning: String.strip/1 is deprecated. Use String.trim/1 instead52    │53  4 │   @version File.read!("VERSION") |> String.strip54    │                                            ~55    │56    └─ /work/proj/deps/poison/mix.exs:4:44: Poison.Mixfile (module)5758warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"59  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/260  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/161  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/562  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/263  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/464  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/26566==> ecto67Compiling 70 files (.ex)68     warning: using single-quoted strings to represent charlists is deprecated.69     Use ~c"" if you indeed want a charlist or use "" instead.70     You may run "mix format --migrate" to change all single-quoted71     strings to use the ~c sigil and fix this warning.72     │73 166 │     defp insert_all_value(_),   do: '?'74     │                                     ~75     │76     └─ lib/ecto/adapters/mysql/connection.ex:166:377778     warning: using single-quoted strings to represent charlists is deprecated.79     Use ~c"" if you indeed want a charlist or use "" instead.80     You may run "mix format --migrate" to change all single-quoted81     strings to use the ~c sigil and fix this warning.82     │83 354 │       '?'84     │       ~85     │86     └─ lib/ecto/adapters/mysql/connection.ex:354:78788      warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.8990      This error happens when you have function calls without parentheses inside keywords. For example:9192          function(arg, one: nested_call a, b, c)93          function(arg, one: if expr, do: :this, else: :that)9495      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:9697          function(arg, one: if(expr, do: :this, else: :that))98          function(arg, one: nested_call(a, b, c))99100      Ambiguity found at:101      │102 2286 │     raise ArgumentError, "cannot add constraint to changeset because it does not have a source, got: #{inspect data}"103      │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~104      │105      └─ lib/ecto/changeset.ex:2286106107     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.108109     This error happens when you have function calls without parentheses inside keywords. For example:110111         function(arg, one: nested_call a, b, c)112         function(arg, one: if expr, do: :this, else: :that)113114     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:115116         function(arg, one: if(expr, do: :this, else: :that))117         function(arg, one: nested_call(a, b, c))118119     Ambiguity found at:120     │121 265 │     do: raise ArgumentError, "a constraint must have either a check or exclude option"122     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~123     │124     └─ lib/ecto/migration/runner.ex:265125126     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.127128     This error happens when you have function calls without parentheses inside keywords. For example:129130         function(arg, one: nested_call a, b, c)131         function(arg, one: if expr, do: :this, else: :that)132133     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:134135         function(arg, one: if(expr, do: :this, else: :that))136         function(arg, one: nested_call(a, b, c))137138     Ambiguity found at:139     │140 267 │     do: raise ArgumentError, "a constraint must not have both check and exclude options"141     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~142     │143     └─ lib/ecto/migration/runner.ex:267144145     warning: atom ::: must be written between quotes, as in :"::", to avoid ambiguity146     │147 136 │       {:::, _, [left, _]} -> is_integer(left) or is_binary(left)148     │        ~149     │150     └─ lib/ecto/query/builder.ex:136:8151152     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)153     │154 643 │   def quoted_type({:datetime_add, _, [_, _, __]}, _vars), do: :naive_datetime155     │                                             ~~156     │157     └─ lib/ecto/query/builder.ex:643:45: Ecto.Query.Builder.quoted_type/2158159     warning: unknown compiler variable "__" (expected one of __MODULE__, __ENV__, __DIR__, __CALLER__, __STACKTRACE__)160     │161 644 │   def quoted_type({:date_add, _, [_, _, __]}, _vars), do: :date162     │                                         ~~163     │164     └─ lib/ecto/query/builder.ex:644:41: Ecto.Query.Builder.quoted_type/2165166     warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.167168     This error happens when you have function calls without parentheses inside keywords. For example:169170         function(arg, one: nested_call a, b, c)171         function(arg, one: if expr, do: :this, else: :that)172173     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:174175         function(arg, one: if(expr, do: :this, else: :that))176         function(arg, one: nested_call(a, b, c))177178     Ambiguity found at:179     │180 454 │     do: raise ArgumentError, "a changeset with action #{inspect given} was given to #{inspect repo}.#{action}/2"181     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~182     │183     └─ lib/ecto/repo/schema.ex:454184185    warning: unused require Ecto.Query186    │187  6 │   require Ecto.Query188    │   ~189    │190    └─ lib/ecto/repo/preloader.ex:6:3191192    warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead193    │194  9 │   schema "schema_migrations" do195    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~196    │197    └─ lib/ecto/migration/schema_migration.ex:9: Ecto.Migration.SchemaMigration (module)198199    warning: incompatible types given to Mix.Ecto.ensure_started/2:200201        Mix.Ecto.ensure_started(repo, opts)202203    given types:204205        -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))206207    but expected one of:208209        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())210211    where "opts" was given the type:212213        # type: dynamic(214          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or215            non_struct_map()216        )217        # from: lib/mix/tasks/ecto.rollback.ex:64:10218        opts =219          if opts[:quiet] do220            Keyword.merge(opts, log: false, log_sql: false)221          else222            opts223          end224225    where "repo" was given the type:226227        # type: dynamic(atom())228        # from: lib/mix/tasks/ecto.rollback.ex:70:7229        Mix.Ecto.ensure_repo(repo, args)230231    type warning found at:232    │233 72 │       {:ok, pid, apps} = ensure_started(repo, opts)234    │                          ~235    │236    └─ lib/mix/tasks/ecto.rollback.ex:72:26: Mix.Tasks.Ecto.Rollback.run/2237238     warning: struct DBConnection.OwnershipError is undefined (module DBConnection.OwnershipError is not available or is yet to be defined)239     │240 258 │       err in DBConnection.OwnershipError ->241     │           ~242     │243     └─ lib/ecto/adapters/sql.ex:258:11: Ecto.Adapters.SQL.sql_call/6244245    warning: incompatible types given to Mix.Ecto.ensure_started/2:246247        Mix.Ecto.ensure_started(repo, all: true)248249    given types:250251        -dynamic(atom())-, non_empty_list({:all, true})252253    but expected one of:254255        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())256257    where "repo" was given the type:258259        # type: dynamic(atom())260        # from: lib/mix/tasks/ecto.migrations.ex:37:7261        Mix.Ecto.ensure_repo(repo, args)262263    type warning found at:264    │265 39 │       {:ok, pid, _} = ensure_started(repo, all: true)266    │                       ~267    │268    └─ lib/mix/tasks/ecto.migrations.ex:39:23: Mix.Tasks.Ecto.Migrations.run/3269270     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead271     │272 260 │         reraise %{err | message: message}, System.stacktrace273     │                                                   ~274     │275     └─ lib/ecto/adapters/sql.ex:260:51: Ecto.Adapters.SQL.sql_call/6276277    warning: incompatible types given to Mix.Ecto.ensure_started/2:278279        Mix.Ecto.ensure_started(repo, opts)280281    given types:282283        -dynamic(atom())-, dynamic(empty_list() or non_empty_list(term(), term()))284285    but expected one of:286287        %{..., __adapter__: atom()}, empty_list() or non_empty_list(term(), term())288289    where "opts" was given the type:290291        # type: dynamic(292          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or293            non_struct_map()294        )295        # from: lib/mix/tasks/ecto.migrate.ex:68:10296        opts =297          if opts[:quiet] do298            Keyword.merge(opts, log: false, log_sql: false)299          else300            opts301          end302303    where "repo" was given the type:304305        # type: dynamic(atom())306        # from: lib/mix/tasks/ecto.migrate.ex:74:7307        Mix.Ecto.ensure_repo(repo, args)308309    type warning found at:310    │311 76 │       {:ok, pid, apps} = ensure_started(repo, opts)312    │                          ~313    │314    └─ lib/mix/tasks/ecto.migrate.ex:76:26: Mix.Tasks.Ecto.Migrate.run/2315316    warning: incompatible types given to Mix.Ecto.source_repo_priv/1:317318        Mix.Ecto.source_repo_priv(repo)319320    given types:321322        -dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})-323324    but expected one of:325326        atom()327328    where "repo" was given the types:329330        # type: dynamic(%{..., config: empty_list() or non_empty_list(term(), term())})331        # from: lib/mix/tasks/ecto.load.ex:70:22332        Keyword.merge(repo.config, opts)333334        # type: dynamic(%{..., __adapter__: atom(), config: empty_list() or non_empty_list(term(), term())})335        # from: lib/mix/tasks/ecto.load.ex:72:27336        repo.__adapter__.structure_load(Mix.Ecto.source_repo_priv(repo), config)337338    type warning found at:339    │340 72 │     case repo.__adapter__.structure_load(source_repo_priv(repo), config) do341    │                                          ~342    │343    └─ lib/mix/tasks/ecto.load.ex:72:42: Mix.Tasks.Ecto.Load.load_structure/2344345    warning: expected a map or struct when accessing .__adapter__ in expression:346347        repo.__adapter__348349    where "repo" was given the type:350351        # type: dynamic(atom())352        # from: lib/mix/tasks/ecto.load.ex:53:7353        Mix.Ecto.ensure_repo(repo, args)354355    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()356357    type warning found at:358    │359 54 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,360    │                              ~361    │362    └─ lib/mix/tasks/ecto.load.ex:54:30: Mix.Tasks.Ecto.Load.run/1363364      warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead365      │366 2400 │     surround_many("#Ecto.Changeset<", list, ">", opts, fn367      │     ~368      │369      └─ lib/ecto/changeset.ex:2400:5: Inspect.Ecto.Changeset.inspect/2370371    warning: expected a map or struct when accessing .__adapter__ in expression:372373        repo.__adapter__374375    where "repo" was given the type:376377        # type: dynamic(atom())378        # from: lib/mix/tasks/ecto.dump.ex:50:7379        Mix.Ecto.ensure_repo(repo, args)380381    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()382383    type warning found at:384    │385 51 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Structure,386    │                              ~387    │388    └─ lib/mix/tasks/ecto.dump.ex:51:30: Mix.Tasks.Ecto.Dump.run/1389390    warning: expected a map or struct when accessing .__adapter__ in expression:391392        repo.__adapter__393394    where "repo" was given the type:395396        # type: dynamic(atom())397        # from: lib/mix/tasks/ecto.drop.ex:39:7398        Mix.Ecto.ensure_repo(repo, args)399400    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()401402    type warning found at:403    │404 40 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,405    │                              ~406    │407    └─ lib/mix/tasks/ecto.drop.ex:40:30: Mix.Tasks.Ecto.Drop.run/1408409     warning: the following clause will never match:410411         [{^module, :changeset, args_or_arity, _}] when args_or_arity == 2 when length(args_or_arity) == 2 ->412413     because it attempts to match on the result of:414415         System.stacktrace()416417     which has type:418419         empty_list()420421     where "args_or_arity" was given the type:422423         # type: float() or integer() or non_empty_list(term())424         # from: lib/ecto/changeset.ex425         (_() when args_or_arity == 2) when length(args_or_arity) == 2426427     where "module" was given the type:428429         # type: dynamic()430         # from: lib/ecto/changeset.ex:733:30431         module432433     type warning found at:434     │435 741 │ ...                   when length(args_or_arity) == 2 ->436     │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~437     │438     └─ lib/ecto/changeset.ex:741: Ecto.Changeset.on_cast_default/2439440    warning: expected a map or struct when accessing .__adapter__ in expression:441442        repo.__adapter__443444    where "repo" was given the type:445446        # type: dynamic(atom())447        # from: lib/mix/tasks/ecto.create.ex:37:7448        Mix.Ecto.ensure_repo(repo, args)449450    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()451452    type warning found at:453    │454 38 │       ensure_implements(repo.__adapter__, Ecto.Adapter.Storage,455    │                              ~456    │457    └─ lib/mix/tasks/ecto.create.ex:38:30: Mix.Tasks.Ecto.Create.run/1458459     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead460     │461 739 │           case System.stacktrace do462     │                       ~463     │464     └─ lib/ecto/changeset.ex:739:23: Ecto.Changeset.on_cast_default/2465466    warning: Mix.Project.compile/1 is deprecated. Use Mix.Task.run("compile", args) instead467    │468 62 │       Mix.Project.compile(args)469    │                   ~470    │471    └─ lib/mix/ecto.ex:62:19: Mix.Ecto.ensure_repo/2472473     warning: expected a module (an atom) when invoking start_link/1 in expression:474475         repo.start_link(pool_size: pool_size)476477     where "pool_size" was given the type:478479         # type: dynamic()480         # from: lib/mix/ecto.ex:101:15481         pool_size = Keyword.get(opts, :pool_size, 1)482483     where "repo" was given the type:484485         # type: dynamic(%{..., __adapter__: atom()})486         # from: lib/mix/ecto.ex:99:36487         repo.__adapter__.ensure_all_started(repo, :temporary)488489     type warning found at:490     │491 102 │     case repo.start_link(pool_size: pool_size) do492     │               ~493     │494     └─ lib/mix/ecto.ex:102:15: Mix.Ecto.ensure_started/2495496     warning: Logger.remove_backend/1 is deprecated. Use LoggerBackends.remove/2 from :logger_backends dependency497     │498 146 │     Logger.remove_backend(:console)499     │            ~500     │501     └─ lib/mix/ecto.ex:146:12: Mix.Ecto.restart_apps_if_migrated/2502503     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)504     │505 856 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->506     │                                                                              ~507     │508     └─ lib/ecto/association.ex:856:78: Ecto.Association.ManyToMany.after_compile_validation/2509     └─ lib/ecto/association.ex:860:45: Ecto.Association.ManyToMany.after_compile_validation/2510511     warning: Logger.add_backend/2 is deprecated. Use LoggerBackends.add/2 from :logger_backends dependency512     │513 155 │     Logger.add_backend(:console, flush: true)514     │            ~515     │516     └─ lib/mix/ecto.ex:155:12: Mix.Ecto.restart_apps_if_migrated/2517518    warning: incompatible types given to get_source/1:519520        get_source(repo)521522    given types:523524        -dynamic(atom())-525526    but expected one of:527528        %{..., config: empty_list() or non_empty_list(term(), term())}529530    where "repo" was given the type:531532        # type: dynamic(atom())533        # from: lib/ecto/migration/schema_migration.ex:24:13534        repo.all(535          Map.put(536            (537              query =538                (539                  query = {get_source(repo), Ecto.Migration.SchemaMigration}540                  Ecto.Query.Builder.From.apply(query, 1)541                )542        543              Ecto.Query.Builder.Select.apply(query, %Ecto.Query.SelectExpr{544                ...,545                expr: {{:., [], [{:&, [], [0]}, :version]}, [], []},546                file: "/work/proj/deps/ecto/lib/ecto/migration/schema_migration.ex",547                line: 22,548                take: %{}549              })550            ),551            :prefix,552            prefix553          ), timeout: :infinity, log: false)554555    type warning found at:556    │557 22 │     from(p in {get_source(repo), __MODULE__}, select: p.version)558    │                ~559    │560    └─ lib/ecto/migration/schema_migration.ex:22:16: Ecto.Migration.SchemaMigration.migrated_versions/2561562    warning: incompatible types given to get_source/1:563564        get_source(repo)565566    given types:567568        -dynamic(atom())-569570    but expected one of:571572        %{..., config: empty_list() or non_empty_list(term(), term())}573574    where "repo" was given the type:575576        # type: dynamic(atom())577        # from: lib/ecto/migration/schema_migration.ex:30:13578        repo.insert!(579          Ecto.put_meta(%Ecto.Migration.SchemaMigration{..., version: version},580            prefix: prefix,581            source: get_source(repo)582          ), timeout: :infinity, log: false)583584    type warning found at:585    │586 29 │     |> Ecto.put_meta(prefix: prefix, source: get_source(repo))587    │                                              ~588    │589    └─ lib/ecto/migration/schema_migration.ex:29:46: Ecto.Migration.SchemaMigration.up/3590591    warning: incompatible types given to get_source/1:592593        get_source(repo)594595    given types:596597        -dynamic(atom())-598599    but expected one of:600601        %{..., config: empty_list() or non_empty_list(term(), term())}602603    where "repo" was given the type:604605        # type: dynamic(atom())606        # from: lib/ecto/migration/schema_migration.ex:36:13607        repo.delete_all(608          Map.put(609            (610              query =611                (612                  query = {get_source(repo), Ecto.Migration.SchemaMigration}613                  Ecto.Query.Builder.From.apply(query, 1)614                )615        616              Ecto.Query.Builder.Filter.apply(query, :where, %Ecto.Query.BooleanExpr{617                expr: {:==, [], [{{:., [], [{:&, [], [0]}, :version]}, [], []}, {:^, [], [0]}]},618                op: :and,619                params: [{Ecto.Query.Builder.not_nil!(version), {0, :version}}],620                file: "/work/proj/deps/ecto/lib/ecto/migration/schema_migration.ex",621                line: 34622              })623            ),624            :prefix,625            prefix626          ), timeout: :infinity, log: false)627628    type warning found at:629    │630 34 │     from(p in {get_source(repo), __MODULE__}, where: p.version == ^version)631    │                ~632    │633    └─ lib/ecto/migration/schema_migration.ex:34:16: Ecto.Migration.SchemaMigration.down/3634635      warning: this clause of defp type_to_module/1 is never used (or it will always fail/warn when invoked)636      │637 1422 │   defp type_to_module(:naive_datetime), do: NaiveDateTime638      │        ~639      │640      └─ lib/ecto/schema.ex:1422:8: Ecto.Schema.type_to_module/1641642     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)643     │644 715 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->645     │                                                                              ~646     │647     └─ lib/ecto/association.ex:715:78: Ecto.Association.BelongsTo.after_compile_validation/2648649      warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)650      │651 1885 │         if Code.ensure_compiled?(type) and function_exported?(type, :type, 0) do652      │                 ~653      │654      └─ lib/ecto/schema.ex:1885:17: Ecto.Schema.check_type!/3655656     warning: the following conditional expression:657658         is_atom(related)659660     will always evaluate to:661662         dynamic(true)663664     where "related" was given the type:665666         # type: dynamic(atom())667         # from: lib/ecto/association.ex:730:15668         related = Ecto.Association.related_from_query(queryable)669670     type warning found at:671     │672 732 │     unless is_atom(related) do673     │     ~~~~~~~~~~~~~~~~~~~~~~~~~~674     │675     └─ lib/ecto/association.ex:732: Ecto.Association.BelongsTo.struct/3676677     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)678     │679 430 │       not is_atom(queryable) or queryable in env.context_modules or not Code.ensure_compiled?(queryable) ->680     │                                                                              ~681     │682     └─ lib/ecto/association.ex:430:78: Ecto.Association.Has.after_compile_validation/2683684     warning: the following clause will never match:685686         {:error, _} = error ->687688     because it attempts to match on the result of:689690         apply(changeset, adapter, :insert, args)691692     which has type:693694         dynamic({:invalid or :ok, term()})695696     type warning found at:697     │698 219 │           {:error, _} = error ->699     │                       ~700     │701     └─ lib/ecto/repo/schema.ex:219:23: Ecto.Repo.Schema.do_insert/4702703     warning: the following clause will never match:704705         {:error, _} = error ->706707     because it attempts to match on the result of:708709         apply(changeset, adapter, action, args)710711     which has type:712713         dynamic({:invalid or :ok, term()})714715     type warning found at:716     │717 297 │             {:error, _} = error ->718     │                         ~719     │720     └─ lib/ecto/repo/schema.ex:297:25: Ecto.Repo.Schema.do_update/4721722    warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead723    │724 29 │     surround_many("#Ecto.Query<", list, ">", opts, fn str, _ -> str end)725    │     ~726    │727    └─ lib/ecto/query/inspect.ex:29:5: Inspect.Ecto.Query.inspect/2728729     warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead730     │731 144 │     Macro.to_string(expr, &expr_to_string(&1, &2, names, part))732     │           ~733     │734     └─ lib/ecto/query/inspect.ex:144:11: Inspect.Ecto.Query.expr/3735736    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead737    │738 54 │       filter_and_reraise e, System.stacktrace739    │                                    ~740    │741    └─ lib/ecto/repo/preloader.ex:54:36: Ecto.Repo.Preloader.normalize_and_preload_each/5742743    warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead744    │745 44 │     index  = Map.size(params)746    │                  ~747    │748    └─ lib/ecto/query/builder.ex:44:18: Ecto.Query.Builder.escape/5749    └─ lib/ecto/query/builder.ex:53:17: Ecto.Query.Builder.escape/5750751     warning: Decimal.minus/1 is deprecated. Use Decimal.negate/1 instead752     │753 614 │     Decimal.minus(decimal)754     │             ~755     │756     └─ lib/ecto/query/builder.ex:614:13: Ecto.Query.Builder.negate!/1757758     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)759     │760 228 │         raise BadStructError, struct: struct, term: data761     │         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~762     │763     └─ lib/ecto/repo/queryable.ex:228: Ecto.Repo.Queryable.process/5764765     warning: the following clause will never match:766767         {:error, _} ->768769     because it attempts to match on the result of:770771         NaiveDateTime.new(date, time)772773     which has type:774775         dynamic({:ok, %NaiveDateTime{}})776777     type warning found at:778     │779 803 │         {:error, _} -> :error780     │         ~~~~~~~~~~~~~~~~~~~~~781     │782     └─ lib/ecto/type.ex:803: Ecto.Type.cast_naive_datetime/1783784     warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead785     │786 159 │         supervise(children, strategy: :one_for_one)787     │         ~788     │789     └─ lib/ecto/repo/supervisor.ex:159:9: Ecto.Repo.Supervisor.init/1790791     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead792     │793 214 │       filter_and_reraise e, System.stacktrace794     │                                    ~795     │796     └─ lib/ecto/query/planner.ex:214:36: Ecto.Query.Planner.prepare/4797     └─ lib/ecto/query/planner.ex:709:36: Ecto.Query.Planner.normalize/4798799    warning: Inspect.Algebra.surround_many/5 is deprecated. Use Inspect.Algebra.container_doc/6 instead800    │801 15 │     surround_many("dynamic(", [Macro.to_string(binding), inspected], ")", opts, fn str, _ -> str end)802    │     ~803    │804    └─ lib/ecto/query/inspect.ex:15:5: Inspect.Ecto.Query.DynamicExpr.inspect/2805806      warning: expected a map or struct when accessing .__struct__ in expression:807808          schema.__struct__809810      where "schema" was given the types:811812          # type: dynamic(atom() and not nil)813          # from: lib/ecto/query/planner.ex:1186:41814          schema815816          # type: atom()817          # from: lib/ecto/query/planner.ex:1186:61818          is_atom(schema)819820      hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()821822      type warning found at:823      │824 1190 │       Map.has_key?(schema.__struct__, field) ->825      │                           ~826      │827      └─ lib/ecto/query/planner.ex:1190:27: Ecto.Query.Planner.type!/6828829    warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead830    │831 12 │       worker(Ecto.Migration.Runner, [], restart: :temporary)832    │       ~833    │834    └─ lib/ecto/migration/supervisor.ex:12:7: Ecto.Migration.Supervisor.init/1835836    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead837    │838 15 │     supervise(children, strategy: :simple_one_for_one)839    │     ~840    │841    └─ lib/ecto/migration/supervisor.ex:15:5: Ecto.Migration.Supervisor.init/1842843    warning: incompatible types given to Ecto.Migration.SchemaMigration.migrated_versions/2:844845        Ecto.Migration.SchemaMigration.migrated_versions(repo, opts[:prefix])846847    given types:848849        (850          -dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})-,851          dynamic()852        )853854    but expected one of:855856        atom(), term()857858    where "opts" was given the type:859860        # type: dynamic(861          %{..., __struct__: atom()} or nil or empty_list() or non_empty_list(term(), term()) or862            non_struct_map()863        )864        # from: lib/ecto/migrator.ex:44:65865        opts[:prefix]866867    where "repo" was given the type:868869        # type: dynamic(%{..., __adapter__: term(), config: empty_list() or non_empty_list(term(), term())})870        # from: lib/ecto/migrator.ex:44:23871        Ecto.Migration.SchemaMigration.ensure_schema_migrations_table!(repo, opts[:prefix])872873    type warning found at:874    │875 45 │       SchemaMigration.migrated_versions(repo, opts[:prefix])876    │                       ~877    │878    └─ lib/ecto/migrator.ex:45:23: Ecto.Migrator.migrated_versions/2879880     warning: expected a module (an atom) when invoking transaction/2 in expression:881882         repo.transaction(fun, log: false, timeout: :infinity)883884     where "fun" was given the type:885886         # type: dynamic()887         # from: lib/ecto/migrator.ex:114:47888         fun889890     where "repo" was given the types:891892         # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: term()}})893         # from: lib/ecto/migrator.ex:118:24894         repo.__adapter__.supports_ddl_transaction?895896         # type: dynamic(%{..., __adapter__: %{..., supports_ddl_transaction?: not false and not nil}})897         # from: lib/ecto/migrator.ex:118:24898         repo.__adapter__.supports_ddl_transaction?899900     type warning found at:901     │902 119 │         repo.transaction(fun, [log: false, timeout: :infinity])903     │              ~904     │905     └─ lib/ecto/migrator.ex:119:14: Ecto.Migrator.run_maybe_in_transaction/3906907     warning: Code.load_file/1 is deprecated. Use Code.require_file/2 or Code.compile_file/2 instead908     │909 291 │     modules = Code.load_file(file)910     │                    ~911     │912     └─ lib/ecto/migrator.ex:291:20: Ecto.Migrator.extract_module/2913914     warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead915     │916 321 │         reraise error, System.stacktrace917     │                               ~918     │919     └─ lib/ecto/migrator.ex:321:31: Ecto.Migrator.verbose_schema_migration/3920921    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead922    │923 10 │       worker(Ecto.Registry, []),924    │       ~925    │926    └─ lib/ecto/application.ex:10:7: Ecto.Application.start/2927928    warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead929    │930 11 │       supervisor(Ecto.Migration.Supervisor, [])931    │       ~932    │933    └─ lib/ecto/application.ex:11:7: Ecto.Application.start/2934935Generated ecto app936==> gandalf937Compiling 30 files (.ex)938     warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead939     │940 128 │   @repo Application.get_env(:gandalf, :repo)941     │                     ~942     │943     └─ lib/gandalf.ex:128:21: Gandalf (module)944945    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead946    │947 10 │   @auth_strategies Application.get_env(:gandalf, :auth_strategies)948    │                                ~949    │950    └─ lib/gandalf/auth_strategies/header.ex:10:32: Gandalf.AuthStrategy.Header (module)951952    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead953    │954  8 │   @auth_strategies Application.get_env(:gandalf, :auth_strategies)955    │                                ~956    │957    └─ lib/gandalf/auth_strategies/query_param.ex:8:32: Gandalf.AuthStrategy.QueryParam (module)958959    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead960    │961 10 │   @auth_strategies Application.get_env(:gandalf, :auth_strategies)962    │                                ~963    │964    └─ lib/gandalf/auth_strategies/session.ex:10:32: Gandalf.AuthStrategy.Session (module)965966967== Compilation error in file lib/gandalf/auth_strategies/query_param.ex ==968** (BadMapError) expected a map, got:969970    nil971972    (elixir 1.20.3) lib/map.ex:596: Map.get(nil, :query_params, nil)973    lib/gandalf/auth_strategies/query_param.ex:9: (module)974could not compile dependency :gandalf, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile gandalf --force", update it with "mix deps.update gandalf" or clean it with "mix deps.clean gandalf"