From 023ae79d17201e9f4850e6e159087813af18cdb5 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire <thomas@gazagnaire.org> Date: Sat, 28 Oct 2023 00:25:56 +0200 Subject: [PATCH] Only add root pin-depends in the .opam.locked file --- cli/lock.ml | 5 ++++- lib/lockfile.ml | 11 ++--------- lib/lockfile.mli | 1 + test/bin/simple-lock.t/run.t | 4 ---- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/cli/lock.ml b/cli/lock.ml index 4ceb32fd7..d7f8080ac 100644 --- a/cli/lock.ml +++ b/cli/lock.ml @@ -573,8 +573,11 @@ let run (`Root root) (`Recurse_opam recurse) (`Build_only build_only) Common.Logs.app (fun l -> l "Calculating exact pins for each of them."); let* duniverse = compute_duniverse ~dependency_entries >>= resolve_ref in let target_depexts = target_depexts opam_files target_packages in + let pin_depends = + match root_pin_depends opam_files with Ok r -> r | Error _ -> [] + in let lockfile = - D.Lockfile.create ~source_config ~root_packages:target_packages + D.Lockfile.create ~source_config ~root_packages:target_packages ~pin_depends ~dependency_entries ~root_depexts:target_depexts ~duniverse () in let cli_args = raw_cli_args () in diff --git a/lib/lockfile.ml b/lib/lockfile.ml index a422c9c1f..bef0b98ec 100644 --- a/lib/lockfile.ml +++ b/lib/lockfile.ml @@ -173,12 +173,6 @@ end module Pin_depends = struct type t = (OpamPackage.t * OpamUrl.t) list - let from_duniverse l = - let open Duniverse.Repo in - List.concat_map l ~f:(fun { provided_packages; url; _ } -> - let url = Url.to_opam_url url in - List.map provided_packages ~f:(fun p -> (p, url))) - let sort t = List.sort ~cmp:(fun (pkg, _) (pkg', _) -> OpamPackage.compare pkg pkg') t end @@ -293,11 +287,10 @@ type t = { let depexts t = t.depexts -let create ~source_config ~root_packages ~dependency_entries ~root_depexts - ~duniverse () = +let create ~source_config ~root_packages ~pin_depends ~dependency_entries + ~root_depexts ~duniverse () = let version = Version.current in let depends = Depends.from_dependency_entries dependency_entries in - let pin_depends = Pin_depends.from_duniverse duniverse in let duniverse_dirs = Duniverse_dirs.from_duniverse duniverse in let depexts = Depexts.all ~root_depexts ~dependency_entries in { diff --git a/lib/lockfile.mli b/lib/lockfile.mli index f9390f5ac..5de52a6ab 100644 --- a/lib/lockfile.mli +++ b/lib/lockfile.mli @@ -8,6 +8,7 @@ end val create : source_config:Source_opam_config.t -> root_packages:OpamPackage.Name.Set.t -> + pin_depends:(OpamPackage.t * OpamUrl.t) list -> dependency_entries:Opam.Dependency_entry.t list -> root_depexts:(OpamSysPkg.Set.t * OpamTypes.filter) list list -> duniverse:Duniverse.t -> diff --git a/test/bin/simple-lock.t/run.t b/test/bin/simple-lock.t/run.t index 86300ca05..28fa03884 100644 --- a/test/bin/simple-lock.t/run.t +++ b/test/bin/simple-lock.t/run.t @@ -43,10 +43,6 @@ The lockfile should contain the base packages, dune and our 2 dependencies "ocaml-config" {= "2"} "ocaml-options-vanilla" {= "1"} ] - pin-depends: [ - ["b.1" "https://b.com/b.tbz"] - ["c.1" "https://c.com/c.tbz"] - ] x-opam-monorepo-duniverse-dirs: [ [ "https://b.com/b.tbz"