Skip to content

Commit

Permalink
fix(pkg): remove dune from lock dir (#10774)
Browse files Browse the repository at this point in the history
dune can't install dune anyway

Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
  • Loading branch information
rgrinberg authored Jul 29, 2024
1 parent b12205b commit 75cb1fe
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 10 deletions.
1 change: 1 addition & 0 deletions src/dune_pkg/dune_dep.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
let name = Package_name.of_string "dune"
1 change: 1 addition & 0 deletions src/dune_pkg/dune_dep.mli
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
val name : Package_name.t
1 change: 1 addition & 0 deletions src/dune_pkg/lock_dir.ml
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ let validate_packages packages =
|> List.concat_map ~f:(fun (dependant_package : Pkg.t) ->
List.filter_map dependant_package.depends ~f:(fun (loc, dependency) ->
if Package_name.Map.mem packages dependency
|| Package_name.equal dependency Dune_dep.name
then None
else Some { dependant_package; dependency; loc }))
in
Expand Down
17 changes: 8 additions & 9 deletions src/dune_pkg/opam_solver.ml
Original file line number Diff line number Diff line change
Expand Up @@ -247,9 +247,10 @@ module Context_for_dune = struct

let user_restrictions : t -> OpamPackage.Name.t -> OpamFormula.version_constraint option
=
let dune = OpamPackage.Name.of_string "dune" in
fun t pkg ->
if OpamPackage.Name.equal dune pkg then Some (`Eq, t.dune_version) else None
if Package_name.equal Dune_dep.name (Package_name.of_opam_package_name pkg)
then Some (`Eq, t.dune_version)
else None
;;

let filter_deps t package filtered_formula =
Expand Down Expand Up @@ -786,14 +787,12 @@ let solve_lock_dir
>>= function
| Error _ as e -> Fiber.return e
| Ok solution ->
(* don't include local packages in the lock dir *)
(* don't include local packages or dune in the lock dir *)
let opam_packages_to_lock =
let is_local_package package =
OpamPackage.name package
|> Package_name.of_opam_package_name
|> Package_name.Map.mem local_packages
in
List.filter solution ~f:(Fun.negate is_local_package)
let is_local_package = Package_name.Map.mem local_packages in
List.filter solution ~f:(fun package ->
let name = OpamPackage.name package |> Package_name.of_opam_package_name in
(not (is_local_package name)) && not (Package_name.equal Dune_dep.name name))
in
let* candidates_cache = Fiber_cache.to_table context.candidates_cache in
let ocaml, pkgs =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,4 @@ constraint.
[1]
$ test "4.0.0"
Solution for dune.lock:
- dune.3.11.0
- foo.0.0.1

0 comments on commit 75cb1fe

Please sign in to comment.