module Task:sig
..end
A task is a high-level description of user intents. It allows to express things like:
"I want to compiler the package X to all supported host configurations and all OCaml compiler versions."
Tasks are later translated into more specific jobs
by workers, using the OPAM solver. These jobs
are then processed by other workers to generate
build objects. The user can then access the jobs
outputs and results, and the genarated objects.
typeid =
[ `Task ] Id.t
Task.create
arguments (after normalisation) and calling Id.digest
on the result.type
t
typerepo =
string * Uri.t
val pp_repo : repo Fmt.t
pp_repository
formats a repository.typepin =
string * Uri.t option
val pp_pin : pin Fmt.t
pp_pin
formats a pin package.val id : t -> id
id t
is t
's deterministic identifier. Is it obtaining by
hashing a stable representation of t
's components.val packages : t -> Package.t list
packages t
's is the list of packages that t
wants to
install.val create : ?repos:repo list ->
?pins:pin list ->
?switches:Switch.t list -> ?hosts:Host.t list -> Package.t list -> t
create pkgs
is the task of building the packages pkgs
on all
possible compiler switches and on all possible host
configurations. This task can somehow be attenuated by specifying
some optional arguments:
repos
is the list of (remote) repositories the the workers
should use.pins
is the list of pinned packages that the worker should
use.switches
restricts the list of compiler switches to test to
only the ones appearing in the list. An empty list means all
the supported compiler switches.hosts
restricts the list of host configurations to test to only
the ones appearing in the list. An empty list means all the
supported hosts.val equal : t -> t -> bool
equal
is the task equality.val compare : t -> t -> int
compare
compares tasks.val pp : t Fmt.t
pp
formats tasks.val json : t Jsont.codec
json
is the JSON codec for tasks.typestatus =
[ `Cancelled | `Failure | `New | `Pending | `Success ]
val pp_status : status Fmt.t
val json_status : status Jsont.codec
json_status
is the JSON coded for task status.