Skip to content

Commit

Permalink
Make the default choice of pinned versions consistent across modules
Browse files Browse the repository at this point in the history
  • Loading branch information
AltGr committed Feb 5, 2018
1 parent bc4cdcc commit c877e92
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 17 deletions.
10 changes: 5 additions & 5 deletions src/client/opamAuxCommands.ml
Expand Up @@ -276,7 +276,7 @@ let simulate_local_pinnings st to_pin =
let opam, version = match OpamFile.OPAM.version_opt opam with
| Some v -> opam, v
| None ->
let v = OpamPackage.Version.of_string "~dev" in
let v = OpamPinCommand.default_version st name in
OpamFile.OPAM.with_version v opam, v
in
OpamPackage.Map.add (OpamPackage.create name version) opam map)
Expand Down Expand Up @@ -388,6 +388,9 @@ let autopin st ?(simulate=false) ?quiet ?locked atom_or_local_list =

let get_compatible_compiler ?repos ?locked rt dir =
let gt = rt.repos_global in
let virt_st =
OpamSwitchState.load_virtual ?repos_list:repos gt rt
in
let local_files = opams_of_dir ?locked dir in
let local_opams =
List.fold_left (fun acc (name, f) ->
Expand All @@ -397,7 +400,7 @@ let get_compatible_compiler ?repos ?locked rt dir =
match OpamFile.OPAM.version_opt opam with
| Some v -> OpamPackage.create name v, opam
| None ->
let v = OpamPackage.Version.of_string "~dev" in
let v = OpamPinCommand.default_version virt_st name in
OpamPackage.create name v,
OpamFile.OPAM.with_version v opam
in
Expand All @@ -416,9 +419,6 @@ let get_compatible_compiler ?repos ?locked rt dir =
OpamSolution.eq_atoms_of_packages local_packages
in
let virt_st =
let virt_st =
OpamSwitchState.load_virtual ?repos_list:repos gt rt
in
let opams =
OpamPackage.Map.union (fun _ x -> x) virt_st.opams local_opams
in
Expand Down
17 changes: 5 additions & 12 deletions src/client/opamPinCommand.ml
Expand Up @@ -337,6 +337,10 @@ exception Nothing_to_do
end
include Exns

let default_version st name =
try OpamPackage.version (OpamSwitchState.get_package st name)
with Not_found -> OpamPackage.Version.of_string "~dev"

let rec handle_pin_depends st nv opam =
let extra_pins = OpamFile.OPAM.pin_depends opam in
let extra_pins =
Expand Down Expand Up @@ -373,12 +377,6 @@ and source_pin
(slog OpamPackage.Name.to_string) name
(slog (OpamStd.Option.to_string OpamPackage.Version.to_string)) version
(slog (OpamStd.Option.to_string ~none:"none" OpamUrl.to_string)) target_url;
let installed_version =
try
Some (OpamPackage.version
(OpamSwitchState.find_installed_package_by_name st name))
with Not_found -> None
in

let cur_version, cur_urlf =
try
Expand Down Expand Up @@ -413,12 +411,7 @@ and source_pin
"Are you sure you want to override this and pin it anyway ?"
then raise Exns.Aborted
);
let version =
try OpamPackage.version (OpamSwitchState.get_package st name)
with Not_found ->
OpamStd.Option.Op.(installed_version +!
OpamPackage.Version.of_string "~dev")
in
let version = default_version st name in
version, None
in

Expand Down
4 changes: 4 additions & 0 deletions src/client/opamPinCommand.mli
Expand Up @@ -63,3 +63,7 @@ val list: 'a switch_state -> short:bool -> unit
it *)
val read_opam_file_for_pinning:
name -> OpamFile.OPAM.t OpamFile.t -> url -> OpamFile.OPAM.t option

(** The default version for pinning a package: depends on the state, what is
installed and available, and defaults to [~dev]. *)
val default_version: 'a switch_state -> name -> version

0 comments on commit c877e92

Please sign in to comment.