package opam-client

  1. Overview
  2. Docs

Functions handling the "opam pin" subcommand

Pins a package to the given version, and writes to disk. Returns the updated state. The main difference with source_pin is that a definition overlay is not created. Therefore, the package must exist already.

exception Aborted
exception Nothing_to_do
val source_pin : OpamStateTypes.rw OpamStateTypes.switch_state -> OpamTypes.name -> ?version:OpamTypes.version -> ?edit:bool -> ?opam:OpamFile.OPAM.t -> ?quiet:bool -> ?force:bool -> ?ignore_extra_pins:bool -> OpamTypes.url option -> OpamStateTypes.rw OpamStateTypes.switch_state

Sets the package as pinned to the given target. A package definition is looked for in the package source and current metadata (in this order), unless specified using ~opam.

If edit, or if no package definition is found, this opens an editor (with a template if no definition is available).

If force, don't abort even if the source can't be fetched from target

May raise Aborted or Nothing_to_do.

Interactively handles the pin-depends in an opam file

Let the user edit a pinned package's opam file. If given, the version is put into the template in advance. Writes and returns the updated switch state.

Pure function that reverts a single package pinning

val list : 'a OpamStateTypes.switch_state -> short:bool -> unit

List the pinned packages to the user.

val read_opam_file_for_pinning : ?quiet:bool -> OpamTypes.name -> OpamFile.OPAM.t OpamFile.t -> OpamTypes.url -> OpamFile.OPAM.t option

Lints the given opam file, prints warnings or errors accordingly (unless quiet), upgrades it to current format, adds references to files below the 'files/' subdir (unless the file is directly below the specified, local url), and returns it

The default version for pinning a package: depends on the state, what is installed and available, and defaults to ~dev.