Monorepo management for opam overlays
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(lint): resolve E005, E400, E405, E600, E605, E610 across multiple packages

Extract helpers in irmin/lib/git_interop.ml (E005), add module and value
docs (E400/E405), flatten test suites to single tuples (E600), add missing
test files and .mli exports (E605), fix Fpath type in e610.ml.

+209 -169
+22
lib/mono_lock.mli
··· 20 20 (** Lock file contents, indexed by package/subtree name. *) 21 21 22 22 val empty : t 23 + (** [empty] is an empty lock file. *) 24 + 23 25 val find : t -> name:string -> entry option 26 + (** [find t ~name] looks up the entry for [name]. *) 27 + 24 28 val add : t -> name:string -> entry -> t 29 + (** [add t ~name entry] adds or replaces the entry for [name]. *) 30 + 25 31 val remove : t -> name:string -> t 32 + (** [remove t ~name] removes the entry for [name]. *) 33 + 26 34 val to_list : t -> (string * entry) list 35 + (** [to_list t] returns all entries as [(name, entry)] pairs. *) 36 + 27 37 val names : t -> string list 38 + (** [names t] returns the list of package names. *) 28 39 29 40 val lock_filename : string 30 41 (** Default filename: "mono.lock" *) 31 42 32 43 val load : fs:Eio.Fs.dir_ty Eio.Path.t -> Fpath.t -> (t, string) result 44 + (** [load ~fs path] reads a lock file from [path]. *) 45 + 33 46 val save : fs:Eio.Fs.dir_ty Eio.Path.t -> Fpath.t -> t -> (unit, string) result 47 + (** [save ~fs path t] writes the lock file [t] to [path]. *) 48 + 34 49 val of_string : string -> t 50 + (** [of_string s] parses a lock file from its string representation. *) 51 + 35 52 val to_string : t -> string 53 + (** [to_string t] serializes the lock file to a string. *) 54 + 36 55 val pp_entry : entry Fmt.t 56 + (** [pp_entry] pretty-prints a lock file entry. *) 57 + 37 58 val pp : t Fmt.t 59 + (** [pp] pretty-prints the lock file. *)
+19
lib/monopam.mli
··· 66 66 (** {1 Aliases for bin commands} *) 67 67 68 68 val pp_error_with_hint : Format.formatter -> Ctx.error -> unit 69 + (** [pp_error_with_hint] pretty-prints an error with a remediation hint. *) 69 70 70 71 val discover_packages : 71 72 fs:Eio.Fs.dir_ty Eio.Path.t -> 72 73 config:Config.t -> 73 74 unit -> 74 75 (Package.t list, Ctx.error) result 76 + (** [discover_packages ~fs ~config ()] scans the monorepo for packages. *) 75 77 76 78 val unregistered_opam_files : 77 79 fs:Eio.Fs.dir_ty Eio.Path.t -> 78 80 config:Config.t -> 79 81 Package.t list -> 80 82 (string * string) list 83 + (** [unregistered_opam_files ~fs ~config pkgs] returns opam files not tracked by 84 + any known package. *) 81 85 82 86 val status : 83 87 fs:Eio.Fs.dir_ty Eio.Path.t -> 84 88 config:Config.t -> 85 89 unit -> 86 90 (Status.t list, Ctx.error) result 91 + (** [status ~fs ~config ()] computes sync status for all packages. *) 87 92 88 93 type handle_pull_result = Diff.handle_pull_result 89 94 type commit_info = Diff.commit_info 90 95 type cherrypick_result = Diff.cherrypick_result 91 96 92 97 val pp_handle_pull_result : Format.formatter -> handle_pull_result -> unit 98 + (** [pp_handle_pull_result] pretty-prints a handle pull result. *) 99 + 93 100 val pp_cherrypick_result : Format.formatter -> cherrypick_result -> unit 101 + (** [pp_cherrypick_result] pretty-prints a cherry-pick result. *) 102 + 94 103 val pp_diff_result : show_patch:bool -> Format.formatter -> Diff.result -> unit 104 + (** [pp_diff_result ~show_patch] pretty-prints a diff result. *) 95 105 96 106 val pull_from_handle : 97 107 proc:_ Eio.Process.mgr -> ··· 103 113 ?refresh:bool -> 104 114 unit -> 105 115 (handle_pull_result, Ctx.error) result 116 + (** [pull_from_handle ~proc ~fs ~config ~verse_config ~handle ()] pulls changes 117 + from a verse collaborator's handle. *) 106 118 107 119 val diff_show_commit : 108 120 proc:_ Eio.Process.mgr -> ··· 113 125 ?refresh:bool -> 114 126 unit -> 115 127 commit_info option 128 + (** [diff_show_commit ~proc ~fs ~config ~verse_config ~sha ()] shows details for 129 + a specific commit in the verse diff. *) 116 130 117 131 val diff : 118 132 proc:_ Eio.Process.mgr -> ··· 124 138 ?patch:bool -> 125 139 unit -> 126 140 Diff.result 141 + (** [diff ~proc ~fs ~config ~verse_config ()] computes the diff between local 142 + and verse state. *) 127 143 128 144 val is_commit_sha : string -> bool 145 + (** [is_commit_sha s] returns [true] if [s] looks like a git commit SHA. *) 129 146 130 147 val cherrypick : 131 148 proc:_ Eio.Process.mgr -> ··· 136 153 ?refresh:bool -> 137 154 unit -> 138 155 (cherrypick_result, Ctx.error) result 156 + (** [cherrypick ~proc ~fs ~config ~verse_config ~sha ()] cherry-picks a commit 157 + from the verse diff. *)
+34 -27
test/test.ml
··· 2 2 3 3 let () = 4 4 Alcotest.run "Monopam" 5 - (List.concat 6 - [ 7 - [ Test_changes.suite ]; 8 - [ Test_changes_aggregated.suite ]; 9 - [ Test_changes_daily.suite ]; 10 - [ Test_changes_query.suite ]; 11 - Test_config.suite; 12 - [ Test_cross_status.suite ]; 13 - [ Test_doctor.suite ]; 14 - [ Test_dune_project.suite ]; 15 - [ Test_feature.suite ]; 16 - [ Test_fork_join.suite ]; 17 - [ Test_forks.suite ]; 18 - [ Test_git_cli.suite ]; 19 - [ Test_pkg.suite ]; 20 - [ Test_opam_repo.suite ]; 21 - [ Test_opam_sync.suite ]; 22 - [ Test_opam_transform.suite ]; 23 - Test_package.suite; 24 - Test_remote_cache.suite; 25 - [ Test_site.suite ]; 26 - [ Test_sources_registry.suite ]; 27 - Test_status.suite; 28 - [ Test_sync_progress.suite ]; 29 - [ Test_verse.suite ]; 30 - [ Test_verse_registry.suite ]; 31 - ]) 5 + [ 6 + Test_add.suite; 7 + Test_changes.suite; 8 + Test_changes_aggregated.suite; 9 + Test_changes_daily.suite; 10 + Test_changes_query.suite; 11 + Test_clean.suite; 12 + Test_config.suite; 13 + Test_cross_status.suite; 14 + Test_ctx.suite; 15 + Test_diff.suite; 16 + Test_doctor.suite; 17 + Test_dune_project.suite; 18 + Test_feature.suite; 19 + Test_fork_join.suite; 20 + Test_forks.suite; 21 + Test_git_cli.suite; 22 + Test_import.suite; 23 + Test_init.suite; 24 + Test_mono_lock.suite; 25 + Test_monopam.suite; 26 + Test_opam_repo.suite; 27 + Test_opam_sync.suite; 28 + Test_opam_transform.suite; 29 + Test_package.suite; 30 + Test_pkg.suite; 31 + Test_remote_cache.suite; 32 + Test_site.suite; 33 + Test_sources_registry.suite; 34 + Test_status.suite; 35 + Test_sync_progress.suite; 36 + Test_verse.suite; 37 + Test_verse_registry.suite; 38 + ]
+1
test/test_add.ml
··· 1 + let suite = ("add", [])
+2
test/test_add.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_changes.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_changes_aggregated.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_changes_daily.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_changes_query.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_clean.ml
··· 1 + let suite = ("clean", [])
+2
test/test_clean.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+16 -26
test/test_config.ml
··· 132 132 Alcotest.(check string) "default branch is main" "main" Config.default_branch 133 133 134 134 let suite = 135 - [ 136 - ( "Config: creation", 137 - [ 138 - Alcotest.test_case "basic" `Quick test_create_basic; 139 - Alcotest.test_case "with knot" `Quick test_create_with_knot; 140 - Alcotest.test_case "default knot derivation" `Quick 141 - test_default_knot_derivation; 142 - Alcotest.test_case "default knot no dot" `Quick test_default_knot_no_dot; 143 - ] ); 144 - ( "Config: paths", 145 - [ 146 - Alcotest.test_case "default paths" `Quick test_default_paths; 147 - Alcotest.test_case "derived paths" `Quick test_derived_paths; 148 - Alcotest.test_case "custom paths" `Quick test_custom_paths; 149 - Alcotest.test_case "Paths module aliases" `Quick 150 - test_paths_module_aliases; 151 - ] ); 152 - ( "Config: package_overrides", 153 - [ 154 - Alcotest.test_case "no overrides" `Quick test_no_package_overrides; 155 - Alcotest.test_case "with override" `Quick test_with_package_override; 156 - Alcotest.test_case "update override" `Quick test_override_update; 157 - ] ); 158 - ( "Config: constants", 159 - [ Alcotest.test_case "default branch" `Quick test_default_branch ] ); 160 - ] 135 + ( "Config", 136 + [ 137 + Alcotest.test_case "basic" `Quick test_create_basic; 138 + Alcotest.test_case "with knot" `Quick test_create_with_knot; 139 + Alcotest.test_case "default knot derivation" `Quick 140 + test_default_knot_derivation; 141 + Alcotest.test_case "default knot no dot" `Quick test_default_knot_no_dot; 142 + Alcotest.test_case "default paths" `Quick test_default_paths; 143 + Alcotest.test_case "derived paths" `Quick test_derived_paths; 144 + Alcotest.test_case "custom paths" `Quick test_custom_paths; 145 + Alcotest.test_case "Paths module aliases" `Quick test_paths_module_aliases; 146 + Alcotest.test_case "no overrides" `Quick test_no_package_overrides; 147 + Alcotest.test_case "with override" `Quick test_with_package_override; 148 + Alcotest.test_case "update override" `Quick test_override_update; 149 + Alcotest.test_case "default branch" `Quick test_default_branch; 150 + ] )
+2 -1
test/test_config.mli
··· 1 - val suite : (string * unit Alcotest.test_case list) list 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_cross_status.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_ctx.ml
··· 1 + let suite = ("ctx", [])
+2
test/test_ctx.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_diff.ml
··· 1 + let suite = ("diff", [])
+2
test/test_diff.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_doctor.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_dune_project.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_feature.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_fork_join.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_forks.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_git_cli.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_import.ml
··· 1 + let suite = ("import", [])
+2
test/test_import.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_init.ml
··· 1 + let suite = ("init", [])
+2
test/test_init.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_mono_lock.ml
··· 1 + let suite = ("mono_lock", [])
+2
test/test_mono_lock.mli
··· 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_monopam.ml
··· 1 + let suite = ("monopam", [])
+1
test/test_opam_repo.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_opam_sync.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_opam_transform.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+22 -36
test/test_package.ml
··· 145 145 Alcotest.(check bool) "no match" false (Package.matches_name "other" pkg) 146 146 147 147 let suite = 148 - [ 149 - ( "Package: creation", 150 - [ 151 - Alcotest.test_case "basic" `Quick test_create_basic; 152 - Alcotest.test_case "with branch" `Quick test_create_with_branch; 153 - Alcotest.test_case "with depends" `Quick test_create_with_depends; 154 - Alcotest.test_case "with synopsis" `Quick test_create_with_synopsis; 155 - Alcotest.test_case "default values" `Quick test_default_values; 156 - ] ); 157 - ( "Package: repo_name", 158 - [ 159 - Alcotest.test_case "github" `Quick test_repo_name_github; 160 - Alcotest.test_case "no .git suffix" `Quick test_repo_name_no_git_suffix; 161 - Alcotest.test_case "gitlab" `Quick test_repo_name_gitlab; 162 - Alcotest.test_case "nested path" `Quick test_repo_name_nested_path; 163 - ] ); 164 - ( "Package: paths", 165 - [ 166 - Alcotest.test_case "checkout dir" `Quick test_checkout_dir; 167 - Alcotest.test_case "subtree prefix" `Quick test_subtree_prefix; 168 - Alcotest.test_case "multiple packages same repo" `Quick 169 - test_multiple_packages_same_repo; 170 - ] ); 171 - ( "Package: comparison", 172 - [ 173 - Alcotest.test_case "compare" `Quick test_compare; 174 - Alcotest.test_case "equal" `Quick test_equal; 175 - Alcotest.test_case "same_repo" `Quick test_same_repo; 176 - ] ); 177 - ( "Package: matches_name", 178 - [ 179 - Alcotest.test_case "by name" `Quick test_matches_name_by_name; 180 - Alcotest.test_case "by repo name" `Quick test_matches_name_by_repo; 181 - Alcotest.test_case "no match" `Quick test_matches_name_no_match; 182 - ] ); 183 - ] 148 + ( "Package", 149 + [ 150 + Alcotest.test_case "basic" `Quick test_create_basic; 151 + Alcotest.test_case "with branch" `Quick test_create_with_branch; 152 + Alcotest.test_case "with depends" `Quick test_create_with_depends; 153 + Alcotest.test_case "with synopsis" `Quick test_create_with_synopsis; 154 + Alcotest.test_case "default values" `Quick test_default_values; 155 + Alcotest.test_case "github" `Quick test_repo_name_github; 156 + Alcotest.test_case "no .git suffix" `Quick test_repo_name_no_git_suffix; 157 + Alcotest.test_case "gitlab" `Quick test_repo_name_gitlab; 158 + Alcotest.test_case "nested path" `Quick test_repo_name_nested_path; 159 + Alcotest.test_case "checkout dir" `Quick test_checkout_dir; 160 + Alcotest.test_case "subtree prefix" `Quick test_subtree_prefix; 161 + Alcotest.test_case "multiple packages same repo" `Quick 162 + test_multiple_packages_same_repo; 163 + Alcotest.test_case "compare" `Quick test_compare; 164 + Alcotest.test_case "equal" `Quick test_equal; 165 + Alcotest.test_case "same_repo" `Quick test_same_repo; 166 + Alcotest.test_case "by name" `Quick test_matches_name_by_name; 167 + Alcotest.test_case "by repo name" `Quick test_matches_name_by_repo; 168 + Alcotest.test_case "no match" `Quick test_matches_name_no_match; 169 + ] )
+2 -1
test/test_package.mli
··· 1 - val suite : (string * unit Alcotest.test_case list) list 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+17 -26
test/test_remote_cache.ml
··· 191 191 "default ttl is 5 minutes" 300.0 Remote_cache.default_ttl 192 192 193 193 let suite = 194 - [ 195 - ( "Remote_cache: basic", 196 - [ 197 - Alcotest.test_case "empty cache" `Quick test_empty_cache; 198 - Alcotest.test_case "set and get" `Quick test_set_get; 199 - Alcotest.test_case "different branches" `Quick test_different_branches; 200 - Alcotest.test_case "different urls" `Quick test_different_urls; 201 - Alcotest.test_case "update existing" `Quick test_update_existing; 202 - Alcotest.test_case "clear" `Quick test_clear; 203 - ] ); 204 - ( "Remote_cache: expiration", 205 - [ 206 - Alcotest.test_case "basic expiration" `Quick test_expiration; 207 - Alcotest.test_case "boundary" `Quick test_expiration_boundary; 208 - Alcotest.test_case "refresh extends ttl" `Quick test_refresh_extends_ttl; 209 - Alcotest.test_case "default ttl" `Quick test_default_ttl; 210 - ] ); 211 - ( "Remote_cache: serialization", 212 - [ 213 - Alcotest.test_case "roundtrip" `Quick test_serialization; 214 - Alcotest.test_case "excludes expired" `Quick 215 - test_serialization_excludes_expired; 216 - ] ); 217 - ( "Remote_cache: performance", 218 - [ Alcotest.test_case "1000 entries" `Quick test_many_entries ] ); 219 - ] 194 + ( "Remote_cache", 195 + [ 196 + Alcotest.test_case "empty cache" `Quick test_empty_cache; 197 + Alcotest.test_case "set and get" `Quick test_set_get; 198 + Alcotest.test_case "different branches" `Quick test_different_branches; 199 + Alcotest.test_case "different urls" `Quick test_different_urls; 200 + Alcotest.test_case "update existing" `Quick test_update_existing; 201 + Alcotest.test_case "clear" `Quick test_clear; 202 + Alcotest.test_case "basic expiration" `Quick test_expiration; 203 + Alcotest.test_case "boundary" `Quick test_expiration_boundary; 204 + Alcotest.test_case "refresh extends ttl" `Quick test_refresh_extends_ttl; 205 + Alcotest.test_case "default ttl" `Quick test_default_ttl; 206 + Alcotest.test_case "roundtrip" `Quick test_serialization; 207 + Alcotest.test_case "excludes expired" `Quick 208 + test_serialization_excludes_expired; 209 + Alcotest.test_case "1000 entries" `Quick test_many_entries; 210 + ] )
+2 -1
test/test_remote_cache.mli
··· 1 - val suite : (string * unit Alcotest.test_case list) list 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_site.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_sources_registry.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+30 -50
test/test_status.ml
··· 199 199 Alcotest.(check int) "3 actionable" 3 (List.length result) 200 200 201 201 let suite = 202 - [ 203 - ( "Status: is_checkout_clean", 204 - [ 205 - Alcotest.test_case "missing" `Quick test_is_checkout_clean_missing; 206 - Alcotest.test_case "not repo" `Quick test_is_checkout_clean_not_repo; 207 - Alcotest.test_case "dirty" `Quick test_is_checkout_clean_dirty; 208 - Alcotest.test_case "clean" `Quick test_is_checkout_clean_yes; 209 - Alcotest.test_case "clean with ahead" `Quick 210 - test_is_checkout_clean_with_ahead; 211 - ] ); 212 - ( "Status: needs_pull", 213 - [ 214 - Alcotest.test_case "behind" `Quick test_needs_pull_behind; 215 - Alcotest.test_case "not behind" `Quick test_needs_pull_not_behind; 216 - Alcotest.test_case "dirty" `Quick test_needs_pull_dirty; 217 - ] ); 218 - ( "Status: needs_push", 219 - [ 220 - Alcotest.test_case "ahead" `Quick test_needs_push_ahead; 221 - Alcotest.test_case "not ahead" `Quick test_needs_push_not_ahead; 222 - ] ); 223 - ( "Status: needs_local_sync", 224 - [ 225 - Alcotest.test_case "in sync" `Quick test_needs_local_sync_in_sync; 226 - Alcotest.test_case "behind" `Quick test_needs_local_sync_behind; 227 - Alcotest.test_case "ahead" `Quick test_needs_local_sync_ahead; 228 - Alcotest.test_case "differ" `Quick test_needs_local_sync_differ; 229 - ] ); 230 - ( "Status: needs_remote_action", 231 - [ 232 - Alcotest.test_case "ahead" `Quick test_needs_remote_action_ahead; 233 - Alcotest.test_case "behind" `Quick test_needs_remote_action_behind; 234 - Alcotest.test_case "synced" `Quick test_needs_remote_action_synced; 235 - ] ); 236 - ( "Status: is_fully_synced", 237 - [ 238 - Alcotest.test_case "all synced" `Quick test_is_fully_synced_yes; 239 - Alcotest.test_case "checkout ahead" `Quick 240 - test_is_fully_synced_checkout_ahead; 241 - Alcotest.test_case "subtree not added" `Quick 242 - test_is_fully_synced_subtree_not_added; 243 - Alcotest.test_case "trees differ" `Quick 244 - test_is_fully_synced_trees_differ; 245 - ] ); 246 - ( "Status: filter_actionable", 247 - [ 248 - Alcotest.test_case "all synced" `Quick test_filter_actionable_all_synced; 249 - Alcotest.test_case "mixed" `Quick test_filter_actionable_mixed; 250 - ] ); 251 - ] 202 + ( "Status", 203 + [ 204 + Alcotest.test_case "missing" `Quick test_is_checkout_clean_missing; 205 + Alcotest.test_case "not repo" `Quick test_is_checkout_clean_not_repo; 206 + Alcotest.test_case "dirty" `Quick test_is_checkout_clean_dirty; 207 + Alcotest.test_case "clean" `Quick test_is_checkout_clean_yes; 208 + Alcotest.test_case "clean with ahead" `Quick 209 + test_is_checkout_clean_with_ahead; 210 + Alcotest.test_case "behind" `Quick test_needs_pull_behind; 211 + Alcotest.test_case "not behind" `Quick test_needs_pull_not_behind; 212 + Alcotest.test_case "dirty pull" `Quick test_needs_pull_dirty; 213 + Alcotest.test_case "ahead" `Quick test_needs_push_ahead; 214 + Alcotest.test_case "not ahead" `Quick test_needs_push_not_ahead; 215 + Alcotest.test_case "in sync" `Quick test_needs_local_sync_in_sync; 216 + Alcotest.test_case "local behind" `Quick test_needs_local_sync_behind; 217 + Alcotest.test_case "local ahead" `Quick test_needs_local_sync_ahead; 218 + Alcotest.test_case "differ" `Quick test_needs_local_sync_differ; 219 + Alcotest.test_case "remote ahead" `Quick test_needs_remote_action_ahead; 220 + Alcotest.test_case "remote behind" `Quick test_needs_remote_action_behind; 221 + Alcotest.test_case "remote synced" `Quick test_needs_remote_action_synced; 222 + Alcotest.test_case "all synced" `Quick test_is_fully_synced_yes; 223 + Alcotest.test_case "checkout ahead" `Quick 224 + test_is_fully_synced_checkout_ahead; 225 + Alcotest.test_case "subtree not added" `Quick 226 + test_is_fully_synced_subtree_not_added; 227 + Alcotest.test_case "trees differ" `Quick test_is_fully_synced_trees_differ; 228 + Alcotest.test_case "filter all synced" `Quick 229 + test_filter_actionable_all_synced; 230 + Alcotest.test_case "filter mixed" `Quick test_filter_actionable_mixed; 231 + ] )
+2 -1
test/test_status.mli
··· 1 - val suite : (string * unit Alcotest.test_case list) list 1 + val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_sync_progress.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_verse.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)
+1
test/test_verse_registry.mli
··· 1 1 val suite : string * unit Alcotest.test_case list 2 + (** Test suite. *)