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"