@@ -47,32 +47,36 @@ let version_by_package_name local_packages (lock_dir : Lock_dir.t) =
47
47
])
48
48
;;
49
49
50
- let concrete_dependencies_of_local_package_with_test t local_package_name =
50
+ let concrete_dependencies_of_local_package t local_package_name ~ with_test =
51
51
let local_package = Package_name.Map. find_exn t .local_packages local_package_name in
52
52
Local_package. (for_solver local_package |> For_solver. opam_filtered_dependency_formula )
53
53
|> Resolve_opam_formula. filtered_formula_to_package_names
54
- ~with_test : true
54
+ ~with_test
55
55
(Solver_env. to_env t .solver_env )
56
56
t .version_by_package_name
57
57
|> Result. map_error ~f :(function
58
58
| `Formula_could_not_be_satisfied unsatisfied_formula_hints ->
59
59
User_message. make
60
- ~ hints :lockdir_regenerate_hints
60
+ ? hints :( Option. some_if with_test lockdir_regenerate_hints )
61
61
~loc :local_package .loc
62
62
(Pp. textf
63
- "The dependencies of local package %S could not be satisfied from the lockdir:"
63
+ "The dependencies of local package %S could not be satisfied from the lockdir%s :"
64
64
(Package_name. to_string local_package .name )
65
+ (if with_test
66
+ then ""
67
+ else " when the solver variable 'with_test' is set to 'false'" )
65
68
:: List. map
66
69
unsatisfied_formula_hints
67
70
~f :Resolve_opam_formula.Unsatisfied_formula_hint. pp ))
68
- |> Result. map ~f :Package_name.Set. of_list
69
71
;;
70
72
71
73
let all_non_local_dependencies_of_local_packages t =
72
74
let open Result. O in
73
75
let + all_dependencies_of_local_packages =
74
76
Package_name.Map. keys t .local_packages
75
- |> Result.List. map ~f :(concrete_dependencies_of_local_package_with_test t )
77
+ |> Result.List. map ~f :(fun p ->
78
+ concrete_dependencies_of_local_package ~with_test :true t p
79
+ |> Result. map ~f :Package_name.Set. of_list )
76
80
|> Result. map ~f :Package_name.Set. union_all
77
81
in
78
82
Package_name.Set. diff
@@ -205,31 +209,14 @@ let create local_packages lock_dir =
205
209
t
206
210
;;
207
211
208
- let concrete_dependencies_of_local_package_without_test t local_package_name =
209
- let local_package = Package_name.Map. find_exn t .local_packages local_package_name in
210
- Local_package. (for_solver local_package |> For_solver. opam_filtered_dependency_formula )
211
- |> Resolve_opam_formula. filtered_formula_to_package_names
212
- ~with_test :false
213
- (Solver_env. to_env t .solver_env )
214
- t .version_by_package_name
215
- |> function
216
- | Ok x -> x
217
- | Error (`Formula_could_not_be_satisfied hints ) ->
218
- User_error. raise
219
- (Pp. textf
220
- "Unable to find dependencies of package %S in lockdir when the solver variable \
221
- 'with_test' is set to 'false':"
222
- (Package_name. to_string local_package .name )
223
- :: List. map hints ~f :Resolve_opam_formula.Unsatisfied_formula_hint. pp )
224
- ;;
225
-
226
212
let local_transitive_dependency_closure_without_test =
227
213
let module Top_closure = Top_closure. Make (Package_name. Set) (Monad. Id) in
228
214
fun t start ->
229
215
match
230
216
Top_closure. top_closure
231
217
~deps :(fun a ->
232
- concrete_dependencies_of_local_package_without_test t a
218
+ concrete_dependencies_of_local_package t a ~with_test :false
219
+ |> User_error. ok_exn
233
220
|> List. filter ~f :(Package_name.Map. mem t .local_packages ))
234
221
~key :Fun. id
235
222
start
@@ -251,7 +238,8 @@ let transitive_dependency_closure_without_test t start =
251
238
|> Package_name.Set. to_list
252
239
|> Package_name.Set. union_map ~f :(fun name ->
253
240
let all_deps =
254
- concrete_dependencies_of_local_package_without_test t name
241
+ concrete_dependencies_of_local_package t name ~with_test :false
242
+ |> User_error. ok_exn
255
243
|> Package_name.Set. of_list
256
244
in
257
245
Package_name.Set. diff all_deps local_package_names )
@@ -295,8 +283,8 @@ let check_contains_package t package_name =
295
283
let all_dependencies t package ~traverse =
296
284
check_contains_package t package ;
297
285
let immediate_deps =
298
- match concrete_dependencies_of_local_package_with_test t package with
299
- | Ok x -> x
286
+ match concrete_dependencies_of_local_package t package ~ with_test : true with
287
+ | Ok x -> Package_name.Set. of_list x
300
288
| Error e ->
301
289
Code_error. raise
302
290
"Invalid package universe which should have already been validated"
@@ -313,7 +301,8 @@ let non_test_dependencies t package ~traverse =
313
301
check_contains_package t package ;
314
302
match traverse with
315
303
| `Immediate ->
316
- concrete_dependencies_of_local_package_without_test t package
304
+ concrete_dependencies_of_local_package t package ~with_test :false
305
+ |> User_error. ok_exn
317
306
|> Package_name.Set. of_list
318
307
| `Transitive ->
319
308
let closure =
0 commit comments