@@ -21,7 +21,6 @@ use ic_wasm::metadata::{add_metadata, remove_metadata, Kind};
21
21
use ic_wasm:: optimize:: OptLevel ;
22
22
use itertools:: Itertools ;
23
23
use petgraph:: graph:: { DiGraph , NodeIndex } ;
24
- use petgraph:: visit:: Bfs ;
25
24
use rand:: { thread_rng, RngCore } ;
26
25
use slog:: { error, info, trace, warn, Logger } ;
27
26
use std:: cell:: RefCell ;
@@ -703,42 +702,20 @@ impl CanisterPool {
703
702
} ;
704
703
BuildError :: DependencyError ( format ! ( "Found circular dependency: {}" , message) )
705
704
} ) ?;
706
- let order: Vec < ( & NodeIndex , CanisterId ) > = nodes
705
+ let order: Vec < CanisterId > = nodes
707
706
. iter ( )
708
707
. rev ( ) // Reverse the order, as we have a dependency graph, we want to reverse indices.
709
- . map ( |idx| ( idx , * graph. node_weight ( * idx) . unwrap ( ) ) )
708
+ . map ( |idx| * graph. node_weight ( * idx) . unwrap ( ) )
710
709
. collect ( ) ;
711
710
712
711
let canisters_to_build = self . canisters_to_build ( build_config) ;
713
712
let mut result = Vec :: new ( ) ;
714
- for ( & idx , canister_id) in & order {
713
+ for canister_id in & order {
715
714
if let Some ( canister) = self . get_canister ( canister_id) {
716
715
if canisters_to_build
717
716
. iter ( )
718
717
. map ( |c| c. get_name ( ) )
719
718
. contains ( & canister. get_name ( ) )
720
- && {
721
- use dfx_core:: fs:: metadata;
722
- let wasm_file_name = canister. get_info ( ) . get_output_root ( )
723
- . join ( Path :: new ( canister. get_name ( ) ) )
724
- . join ( Path :: new ( & format ! ( "{}.wasm" , canister. get_name( ) ) ) ) ;
725
- let wasm_file_metadata = metadata ( wasm_file_name. as_path ( ) ) ?;
726
- let wasm_file_time = wasm_file_metadata. modified ( ) ?;
727
- let mut bfs = Bfs :: new ( & graph, idx) ;
728
- loop {
729
- if let Some ( node_index) = bfs. next ( & graph) {
730
- if let Some ( node) = graph. node_weight ( node_index) {
731
- // FIXME: We need the graph of dependencies including `.mo` files, not only canisters.
732
- // TODO
733
- } else {
734
- panic ! ( "cannot get canister" ) ;
735
- }
736
- } else {
737
- break false ;
738
- }
739
- } ;
740
- true
741
- }
742
719
{
743
720
trace ! ( log, "Building canister '{}'." , canister. get_name( ) ) ;
744
721
} else {
@@ -778,7 +755,7 @@ impl CanisterPool {
778
755
}
779
756
}
780
757
781
- self . step_postbuild_all ( build_config, & order. into_iter ( ) . map ( |e| e . 1 ) . collect :: < Vec < CanisterId > > ( ) )
758
+ self . step_postbuild_all ( build_config, & order)
782
759
. map_err ( |e| DfxError :: new ( BuildError :: PostBuildAllStepFailed ( Box :: new ( e) ) ) ) ?;
783
760
784
761
Ok ( result)
0 commit comments