Resolving Hex dependencies... Resolution completed in 0.066s Unchanged: circular_buffer 1.0.0 elixir_make 0.9.0 finch 0.21.0 hpax 1.0.3 interactive_cmd 0.1.3 jason 1.4.4 mime 2.0.7 mint 1.7.1 nerves 1.14.0 nerves_discovery 0.1.2 nerves_logging 0.2.4 nerves_runtime 0.13.12 nerves_system_bbb 2.29.3 nerves_system_br 1.33.5 nerves_system_grisp2 0.17.3 nerves_system_mangopi_mq_pro 0.15.3 nerves_system_osd32mp1 0.24.3 nerves_system_qemu_aarch64 0.3.3 nerves_system_rpi 2.0.2 nerves_system_rpi0 2.0.2 nerves_system_rpi0_2 2.0.2 nerves_system_rpi2 2.0.2 nerves_system_rpi3 2.0.2 nerves_system_rpi4 2.0.2 nerves_system_rpi5 2.0.2 nerves_system_x86_64 1.33.3 nerves_toolchain_aarch64_nerves_linux_gnu 13.2.0 nerves_toolchain_armv6_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_armv7_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_ctng 1.10.0 nerves_toolchain_riscv64_nerves_linux_gnu 13.2.0 nerves_toolchain_x86_64_nerves_linux_musl 13.2.0 nerves_uevent 0.1.3 nimble_options 1.1.1 nimble_pool 1.1.0 property_table 0.3.3 req 0.5.17 ring_logger 0.11.5 shoehorn 0.9.3 tablet 0.3.2 telemetry 1.4.1 toolshed 0.4.2 uboot_env 1.0.2 vet_core 0.1.0 vet_reporter 0.1.0 All dependencies have been fetched ==> jason Compiling 10 files (.ex) Generated jason app ==> tablet Compiling 2 files (.ex) Generated tablet app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 51 files (.ex) Generated nerves app ==> nerves_compatibility_test Nerves environment MIX_TARGET: rpi4 MIX_ENV: prod Checking for prebuilt Nerves artifacts... Found nerves_system_rpi4 in cache /home/nerves/.nerves/artifacts/nerves_system_rpi4-portable-2.0.2 Found nerves_toolchain_aarch64_nerves_linux_gnu in cache /home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-linux_aarch64-13.2.0 ==> nerves ==> nerves_system_br Generated nerves_system_br app ==> nerves_toolchain_ctng Compiling 1 file (.ex) Generated nerves_toolchain_ctng app ==> nerves_toolchain_aarch64_nerves_linux_gnu Generated nerves_toolchain_aarch64_nerves_linux_gnu app ==> nerves_system_rpi4 Generated nerves_system_rpi4 app ==> nerves_compatibility_test Nerves environment MIX_TARGET: rpi4 MIX_ENV: prod ==> mime Compiling 1 file (.ex) Generated mime app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Compiling 5 files (.ex) Generated nerves_logging app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling telemetry ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> nimble_pool Compiling 2 files (.ex) Generated nimble_pool app ==> finch Compiling 14 files (.ex) Generated finch app ==> req Compiling 19 files (.ex) Generated req app ==> vet_core Compiling 32 files (.ex) warning: function parse_user_suppressions/1 is unused │ 256 │ defp parse_user_suppressions(%{allow: allow_list}) when is_list(allow_list) do │ ~ │ └─ lib/vet_core/allowlist.ex:256:8: VetCore.Allowlist (module) warning: variable "releases" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 97 │ def find_previous_version(releases, nil), do: nil │ ~~~~~~~~ │ └─ lib/vet_core/metadata/hex_checker.ex:97:29: VetCore.Metadata.HexChecker.find_previous_version/2 warning: variable "releases" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 116 │ def find_lookback_version(releases, nil, _n), do: nil │ ~~~~~~~~ │ └─ lib/vet_core/metadata/hex_checker.ex:116:29: VetCore.Metadata.HexChecker.find_lookback_version/3 warning: variable "repo" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 34 │ defp parse_entry({name, {:{}, _meta, [:hex, _pkg, version, _hash1, _managers, _deps, repo, hash2]}}) │ ~~~~ │ └─ lib/vet_core/lock_parser.ex:34:88: VetCore.LockParser.parse_entry/1 warning: the following clause will never match: {:ok, {:mismatch, mismatched_files}} because it attempts to match on the result of: compare_source(dep.name, dep.version, url) which has type: dynamic({:error, :fetch_failed} or {:ok, :match}) typing violation found at: │ 19 │ {:ok, {:mismatch, mismatched_files}} -> │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/vet_core/metadata/repo_integrity.ex:19: VetCore.Metadata.RepoIntegrity.check/2 warning: a struct for VetCore.Types.Dependency is expected on struct update: %VetCore.Types.Dependency{dep | children: children, direct?: direct?} but got type: dynamic() where "dep" was given the type: # type: dynamic() # from: lib/vet_core/tree_builder.ex:19:22 dep when defining the variable "dep", you must also pattern match on "%VetCore.Types.Dependency{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 23 │ %Dependency{dep | children: children, direct?: direct?} │ ~ │ └─ lib/vet_core/tree_builder.ex:23:9: VetCore.TreeBuilder.build/2 Generated vet_core app ==> vet_reporter Compiling 4 files (.ex) Generated vet_reporter app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Compiling 3 files (.ex) Generated nerves_uevent app ==> nerves_runtime Compiling 14 files (.ex) Generated nerves_runtime app ==> toolshed Compiling 5 files (.ex) Generated toolshed app ==> nerves_compatibility_test Compiling 2 files (.ex) Generated nerves_compatibility_test app |nerves| Building OTP Release... * [Nerves] validating vm.args * skipping runtime configuration (config/runtime.exs not found) * creating _build/rpi4/rel/nerves_compatibility_test/releases/0.1.0/vm.args Updating base firmware image with Erlang release... Copying rootfs_overlay: /work/proj/_build/rpi4/nerves/rootfs_overlay Copying rootfs_overlay: /work/proj/rootfs_overlay Building /work/proj/_build/rpi4/nerves/images/nerves_compatibility_test.fw... Firmware UUID: mind-indoor (887b5981-6ed1-555a-5dc8-c16ded548810) Firmware built successfully! 🎉 Now you may install it to a MicroSD card using `mix burn` or upload it to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`. * Cleaning vet_reporter ==> nerves ==> nerves_compatibility_test Nerves environment MIX_TARGET: rpi4 MIX_ENV: prod ==> vet_reporter Compiling 4 files (.ex) Generated vet_reporter app ==> nerves_compatibility_test Generated nerves_compatibility_test app |nerves| Building OTP Release... * [Nerves] validating vm.args * skipping runtime configuration (config/runtime.exs not found) * creating _build/rpi4/rel/nerves_compatibility_test/releases/0.1.0/vm.args Updating base firmware image with Erlang release... Copying rootfs_overlay: /work/proj/_build/rpi4/nerves/rootfs_overlay Copying rootfs_overlay: /work/proj/rootfs_overlay Building /work/proj/_build/rpi4/nerves/images/nerves_compatibility_test.fw... Firmware UUID: thunder-beach (e5167626-1d51-5c3c-1879-e51f60384a9a) Firmware built successfully! 🎉 Now you may install it to a MicroSD card using `mix burn` or upload it to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.