Resolving Hex dependencies... Resolution completed in 0.081s Unchanged: abacus 2.2.0 circular_buffer 1.0.0 elixir_make 0.9.0 finch 0.21.0 hpax 1.0.3 interactive_cmd 0.1.4 jason 1.4.4 jido_action 2.2.1 lua 0.4.0 luerl 1.5.1 mime 2.0.7 mint 1.7.1 multigraph 0.16.1-mg.3 nerves 1.14.1 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.5 nimble_options 1.1.1 nimble_pool 1.1.0 private 0.1.2 property_table 0.3.3 req 0.5.17 ring_logger 0.11.5 shoehorn 0.9.3 splode 0.3.1 tablet 0.3.2 telemetry 1.4.1 telemetry_metrics 1.1.0 toolshed 0.4.2 uboot_env 1.0.2 uniq 0.6.2 zoi 0.18.0 All dependencies have been fetched ==> 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 ==> multigraph Compiling 16 files (.ex) warning: a struct for Multigraph is expected on struct update: %Multigraph{g | vertices: vs, vertex_labels: ls, out_edges: oe, in_edges: ie, edges: em} but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1193:9 g = prune_vertex_from_edge_index(g, v_id, v) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1202 │ %__MODULE__{g | vertices: vs, vertex_labels: ls, out_edges: oe, in_edges: ie, edges: em} │ ~ │ └─ lib/multigraph.ex:1202:7: Multigraph.delete_vertex/2 warning: a struct for Multigraph is expected on struct update: %Multigraph{ g | in_edges: Map.put(ie, v2_id, in_neighbors), out_edges: Map.put(oe, v1_id, out_neighbors), edges: Map.put(meta, edge_key, edge_meta), edge_properties: ep } but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1314:7 g = if g.multigraph do edge = Multigraph.Edge.new(v1, v2, label: label, weight: weight, properties: properties) index_multigraph_edge(g, edge_key, edge) else g end when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1322 │ %__MODULE__{ │ ~ │ └─ lib/multigraph.ex:1322:5: Multigraph.do_add_edge/4 warning: a struct for Multigraph is expected on struct update: %Multigraph{g | edge_index: Map.put(g.edge_index, partition, new_edge_partition)} but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1338:50 g when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1355 │ %__MODULE__{ │ ~ │ └─ lib/multigraph.ex:1355:7: Multigraph.index_multigraph_edge/3 warning: a struct for Multigraph is expected on struct update: %Multigraph{ g | in_edges: Map.put(g.in_edges, v2_id, v2_in), out_edges: Map.put(g.out_edges, v1_id, v1_out), edges: Map.delete(g.edges, {v1_id, v2_id}) } but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1455:9 g = prune_all_edge_indexes(g, {v1_id, v1}, {v2_id, v2}) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1457 │ g = %__MODULE__{ │ ~ │ └─ lib/multigraph.ex:1457:11: Multigraph.do_split_edge/4 warning: a struct for Multigraph is expected on struct update: %Multigraph{g | edges: Map.put(em, edge_key, new_meta), edge_properties: ep} but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1584:15 g = index_multigraph_edge( prune_edge_index(g, {v1_id, v1}, {v2_id, v2}, old_label), {v1_id, v2_id}, Multigraph.Edge.new(v1, v2, label: new_label, weight: new_weight, properties: new_properties) ) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1596 │ %__MODULE__{g | edges: Map.put(em, edge_key, new_meta), edge_properties: ep} │ ~ │ └─ lib/multigraph.ex:1596:13: Multigraph.do_update_labelled_edge/5 warning: a struct for Multigraph is expected on struct update: %Multigraph{ g | in_edges: Map.put(ie, v2_id, v2_in), out_edges: Map.put(oe, v1_id, v1_out), edges: meta } but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1654:9 g = prune_all_edge_indexes(g, {v1_id, v1}, {v2_id, v2}) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1659 │ %__MODULE__{ │ ~ │ └─ lib/multigraph.ex:1659:7: Multigraph.do_delete_edge/3 warning: a struct for Multigraph is expected on struct update: %Multigraph{acc | edge_index: updated_edge_index} but got type: dynamic() where "acc" was given the type: # type: dynamic() # from: lib/multigraph.ex:1726:43 acc when defining the variable "acc", you must also pattern match on "%Multigraph{}". 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: │ 1753 │ %__MODULE__{acc | edge_index: updated_edge_index} │ ~ │ └─ lib/multigraph.ex:1753:7: Multigraph.prune_edge_key_from_partitions/5 warning: a struct for Multigraph is expected on struct update: %Multigraph{ g | in_edges: Map.put(ie, v2_id, v2_in), out_edges: Map.put(oe, v1_id, v1_out), edges: meta } but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1838:9 g = prune_edge_index(g, {v1_id, v1}, {v2_id, v2}, label) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1847 │ %__MODULE__{ │ ~ │ └─ lib/multigraph.ex:1847:11: Multigraph.do_delete_edge/4 warning: a struct for Multigraph is expected on struct update: %Multigraph{g | edges: meta} but got type: dynamic() where "g" was given the type: # type: dynamic() # from: lib/multigraph.ex:1838:9 g = prune_edge_index(g, {v1_id, v1}, {v2_id, v2}, label) when defining the variable "g", you must also pattern match on "%Multigraph{}". 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: │ 1856 │ %__MODULE__{g | edges: meta} │ ~ │ └─ lib/multigraph.ex:1856:11: Multigraph.do_delete_edge/4 Generated multigraph app ==> jason Compiling 10 files (.ex) Generated jason app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling luerl ==> abacus Compiling 3 files (.erl) Compiling 5 files (.ex) warning: Abacus.parse/1 is undefined or private │ 36 │ Abacus.parse(without_parantheses), │ ~ │ └─ lib/format.ex:36:14: Abacus.Format.format/1 └─ lib/format.ex:37:14: Abacus.Format.format/1 └─ lib/format.ex:38:14: Abacus.Format.format/1 └─ lib/format.ex:39:14: Abacus.Format.format/1 └─ lib/format.ex:64:14: Abacus.Format.format/1 └─ lib/format.ex:65:14: Abacus.Format.format/1 └─ lib/format.ex:81:14: Abacus.Format.format/1 └─ lib/format.ex:82:14: Abacus.Format.format/1 └─ lib/format.ex:100:28: Abacus.Format.format/1 Generated abacus app ==> tablet Compiling 2 files (.ex) Generated tablet app ==> private Compiling 1 file (.ex) Generated private app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Not crosscompiling. To test locally, the port binary needs extra permissions. Set SUDO=sudo to set permissions. The default is to skip this step. SUDO_ASKPASS=/usr/bin/ssh-askpass SUDO=true Compiling 5 files (.ex) Generated nerves_logging app ==> uniq Compiling 4 files (.ex) Generated uniq app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 50 files (.ex) Generated nerves app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling telemetry ==> telemetry_metrics Compiling 7 files (.ex) Generated telemetry_metrics app ==> zoi Compiling 79 files (.ex) Generated zoi app ==> splode Compiling 5 files (.ex) Generated splode app ==> lua Compiling 7 files (.ex) Generated lua app ==> 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 ==> jido_action Compiling 31 files (.ex) warning: Graph.topsort/1 is undefined (module Graph 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) │ 302 │ phases = Graph.topsort(graph) |> build_execution_phases(graph) │ ~ │ └─ lib/jido_plan.ex:302:22: Jido.Plan.execution_phases/1 warning: Graph.new/1 is undefined (module Graph 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) │ 393 │ graph = Graph.new(type: :directed) │ ~ │ └─ lib/jido_plan.ex:393:19: Jido.Plan.build_graph/1 warning: Graph.add_vertex/2 is undefined (module Graph 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) │ 398 │ Graph.add_vertex(acc_graph, plan_instruction.name) │ ~ │ └─ lib/jido_plan.ex:398:15: Jido.Plan.build_graph/1 warning: Graph.add_edge/3 is undefined (module Graph 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) │ 405 │ Graph.add_edge(edge_graph, dep, plan_instruction.name) │ ~ │ └─ lib/jido_plan.ex:405:17: Jido.Plan.build_graph/1 warning: Graph.is_acyclic?/1 is undefined (module Graph 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) │ 413 │ if Graph.is_acyclic?(graph) do │ ~ │ └─ lib/jido_plan.ex:413:14: Jido.Plan.validate_graph/1 warning: Graph.vertices/1 is undefined (module Graph 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) │ 435 │ vertices = Graph.vertices(graph) │ ~ │ └─ lib/jido_plan.ex:435:22: Jido.Plan.find_cycle/1 warning: Graph.out_neighbors/2 is undefined (module Graph 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) │ 461 │ neighbors = Graph.out_neighbors(graph, vertex) │ ~ │ └─ lib/jido_plan.ex:461:25: Jido.Plan.dfs_visit/5 warning: Graph.in_neighbors/2 is undefined (module Graph 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) │ 497 │ predecessors = Graph.in_neighbors(graph, vertex) │ ~ │ └─ lib/jido_plan.ex:497:26: Jido.Plan.calculate_depth/3 Generated jido_action app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Not crosscompiling. To test locally, the port binary needs extra permissions. Set SUDO=sudo to set permissions. The default is to skip this step. SUDO_ASKPASS=/usr/bin/ssh-askpass SUDO=true Compiling 5 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 Nerves environment MIX_TARGET: host MIX_ENV: prod Checking for prebuilt Nerves artifacts... Compiling 2 files (.ex) Generated nerves_compatibility_test app