|
| 1 | +```mermaid |
| 2 | +flowchart TD |
| 3 | + classDef exception fill:#ff6054,stroke:#b80c00,stroke-width:2px,color:#000; |
| 4 | +
|
| 5 | + download_deps([Download dependencies]) |
| 6 | + solve_deps[Solve dependencies] |
| 7 | + detect_unused[Detect unused dependencies] |
| 8 | +
|
| 9 | + download_deps --> solve_deps |
| 10 | + solve_deps --> detect_unused |
| 11 | + detect_unused --> S1 |
| 12 | +
|
| 13 | + subgraph S1[Process dependency] |
| 14 | + direction LR |
| 15 | +
|
| 16 | + subgraph S2[PRE DOWNLOAD CHECK] |
| 17 | + direction TB |
| 18 | +
|
| 19 | + S2_is_source_downloadable{Is component source downloadable?} |
| 20 | + S2_is_component_exist{"Is component exist in managed_components directory?"} |
| 21 | + S2_is_overwrite_set{"Is OVERWRITE_MANAGED_COMPONENTS set?"} |
| 22 | + S2_check_local[Check local changes] |
| 23 | + S2_download_dep[Download dependency] |
| 24 | +
|
| 25 | + S2_is_source_downloadable -- No --> S2_download_dep |
| 26 | + S2_is_source_downloadable -- Yes --> S2_is_component_exist |
| 27 | + S2_is_component_exist -- No --> S2_download_dep |
| 28 | + S2_is_component_exist -- Yes --> S2_is_overwrite_set |
| 29 | + S2_is_overwrite_set -- No --> S2_check_local |
| 30 | + S2_is_overwrite_set -- Yes --> S2_download_dep |
| 31 | + end |
| 32 | +
|
| 33 | + subgraph S3[CHECK LOCAL CHANGES] |
| 34 | + direction TB |
| 35 | +
|
| 36 | + S3_is_strict_set{"Is STRICT_CHECKSUM set?"} |
| 37 | + S3_validate_hashfile_eq_hashdir[Validate hashfile_eq_hashdir] |
| 38 | + S3_check_up_to_date[Check up to date] |
| 39 | + S3_is_valid{Is valid?} |
| 40 | + S3_component_modified[Component Modified]:::exception |
| 41 | +
|
| 42 | + S3_is_strict_set -- No --> S3_check_up_to_date |
| 43 | + S3_is_strict_set -- Yes --> S3_validate_hashfile_eq_hashdir |
| 44 | + S3_validate_hashfile_eq_hashdir --> S3_is_valid |
| 45 | + S3_is_valid -- No --> S3_component_modified |
| 46 | + S3_is_valid -- Yes --> S3_check_up_to_date |
| 47 | + end |
| 48 | +
|
| 49 | + subgraph S4[CHECK UP TO DATE] |
| 50 | + direction TB |
| 51 | +
|
| 52 | + S4_is_component_has_hash{Is downloadable component has hash?} |
| 53 | + S4_is_strict_set{"Is STRICT_CHECKSUM set?"} |
| 54 | + S4_download_checksums[Download component checksums] |
| 55 | + S4_is_checksums_exist{Is checksums exist?} |
| 56 | + S4_validate_checksums[Validate checksums] |
| 57 | + S4_validate_hash_eq_hashfile[Validate hash_eq_hashfile] |
| 58 | + S4_validate_hash_eq_hashdir[Validate hash_eq_hashdir] |
| 59 | + S4_is_valid{Is valid?} |
| 60 | + S4_fetching_error[Fetching error]:::exception |
| 61 | + S4_download_dep[Download dependency] |
| 62 | + S4_add_to_dep_list[Add to downloaded dependencies list] |
| 63 | +
|
| 64 | + S4_is_component_has_hash -- No --> S4_fetching_error |
| 65 | + S4_is_component_has_hash -- Yes --> S4_is_strict_set |
| 66 | + S4_is_strict_set -- No --> S4_validate_hash_eq_hashfile |
| 67 | + S4_is_strict_set -- Yes --> S4_download_checksums |
| 68 | + S4_download_checksums --> S4_is_checksums_exist |
| 69 | + S4_is_checksums_exist -- No --> S4_validate_hash_eq_hashdir |
| 70 | + S4_is_checksums_exist -- Yes --> S4_validate_checksums |
| 71 | + S4_validate_hash_eq_hashfile --> S4_is_valid |
| 72 | + S4_validate_checksums --> S4_is_valid |
| 73 | + S4_validate_hash_eq_hashdir --> S4_is_valid |
| 74 | + S4_is_valid -- No --> S4_download_dep |
| 75 | + S4_is_valid -- Yes --> S4_add_to_dep_list |
| 76 | + end |
| 77 | +
|
| 78 | + subgraph S5[DOWNLOAD DEPENDENCY] |
| 79 | + direction TB |
| 80 | +
|
| 81 | + S5_download_dep[Download dependency from source] |
| 82 | + S5_is_source_downloadable{Is component source downloadable?} |
| 83 | + S5_validate_hashfile_eq_hashdir[Validate hashfile_eq_hashdir] |
| 84 | + S5_is_valid{Is valid?} |
| 85 | + S5_fetching_error[Fetching error]:::exception |
| 86 | + S5_add_to_dep_list[Add to downloaded dependencies list] |
| 87 | +
|
| 88 | + S5_download_dep --> S5_is_source_downloadable |
| 89 | + S5_is_source_downloadable -- No --> S5_add_to_dep_list |
| 90 | + S5_is_source_downloadable -- Yes --> S5_validate_hashfile_eq_hashdir |
| 91 | + S5_validate_hashfile_eq_hashdir --> S5_is_valid |
| 92 | + S5_is_valid -- No --> S5_fetching_error |
| 93 | + S5_is_valid -- Yes --> S5_add_to_dep_list |
| 94 | + end |
| 95 | +
|
| 96 | + S2 ~~~ S3 |
| 97 | + S3 ~~~ S4 |
| 98 | + S4 ~~~ S5 |
| 99 | + end |
| 100 | +``` |
0 commit comments