drom_lib

The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience
Library drom_lib
Module Drom_lib . Misc
module EzString : sig ... end
val option_value : 'a option -> default:'b -> 'c
val verbose : int -> bool
val call : ?stdout:Unix.file_descr -> string array -> unit
val call_get_fst_line : string -> string option

run a cmd and return the first line of output

val date : unit -> Unix.tm
val homepage : Types.project -> string option
val sphinx_target : Types.project -> string
val odoc_target : Types.project -> string
val doc_api : Types.project -> string option
val doc_gen : Types.project -> string option
val p_dependencies : Types.package -> (string * Types.dependency) list
val p_pack_modules : Types.package -> bool
val p_version : Types.package -> string
val p_tools : Types.package -> (string * Types.dependency) list
val p_synopsis : Types.package -> string
val p_description : Types.package -> string
val p_authors : Types.package -> string list
val wget : url:string -> output:string -> unit
val bug_reports : Types.project -> string option
val subst : string -> ( string -> string ) -> string
val list_opam_packages : string -> string list
val semantic_version : string -> (int * int * int) option
val underscorify : string -> string
val library_name : Types.package -> string
val package_lib : Types.package -> string
val deps_package : Types.project -> Types.package
val add_skip : string -> ('a * string) list -> ('b * string) list
val dev_repo : Types.project -> string option
val vendor_packages : unit -> string list
val library_module : Types.package -> string
val string_of_kind : Types.kind -> string
val project_skeleton : string option -> string
val package_skeleton : Types.package -> string
val hook : ?args:string list -> string -> unit
val before_hook : ?args:string list -> string -> unit
val after_hook : ?args:string list -> string -> unit
val default_ci_systems : string list
val editor : unit -> string
val infimum : default:string -> ?current:string -> bottom:string -> Types.version list -> [ `conflict of string * string | `found of string | `unknown ]

infimum ~default ~current ~bottom versions computes the infimum (ie. lower highest) version according to versions constraints. bottom is used as the minimal version and default and current for NoVersion and Version respectively.

  • returns

    `unknown when no infimum can be infered. For example, with the only constraint (>1.2.3) we can't decide a priori a infimum for it since we don't know what versions are available after 1.2.3 (maybe 1.2.4 or 1.2.7 or whatever). It returns `found version when an infimum version is found and `conflict (v, c) when the infimum found so far v doesn't match the constraint c.