Known distributions and OCaml variants
type t = [ ]Supported Docker container distributions
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.tval t_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tval __t_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> tresolve_alias t will resolve t into a concrete version. This removes versions such as Latest.
val distros : t listEnumeration of the supported Docker container distributions
val latest_distros : t listEnumeration of the latest stable (ideally LTS) supported distributions.
val master_distro : tThe distribution that is the top-level alias for the latest tag in the ocaml/opam2 Docker Hub build.
val builtin_ocaml_of_distro : t -> string optionbuiltin_ocaml_of_distro t will return the OCaml version supplied with the distribution packaging, and None if there is no supported version.
val human_readable_string_of_distro : t -> stringhuman_readable_string_of_distro t returns a human readable version of the distribution tag, including version information.
val human_readable_short_string_of_distro : t -> stringhuman_readable_short_string_of_distro t returns a human readable short version of the distribution tag, excluding version information.
The package manager used by a distro.
val sexp_of_package_manager : package_manager -> Ppx_sexp_conv_lib.Sexp.tval package_manager_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> package_managerval __package_manager_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> package_managerval package_manager : t -> package_managerpackage_manager t returns the type of package manager used by that distribution. Many derived distributions (such as OracleLinux) share the same package manager from a base distribution (such as CentOS).
Docker Hub addresses
val tag_of_distro : t -> stringtag_of_distro t convert a distribution t to a Docker Hub tag.
val distro_of_tag : string -> t optiondistro_of_tag s parses s into a t distribution, and None otherwise.
val latest_tag_of_distro : t -> stringlatest_tag_of_distro distro will generate a Docker Hub tag that is a convenient short form for the latest stable release of a particular distribution. This tag will be regularly rewritten to point to any new releases of the distribution.
val base_distro_tag : ?arch:Ocaml_version.arch -> t -> string * stringbase_distro_tag ?arch t will return a tuple of a Docker Hub user/repository and tag for which the base image of a distribution can be found (e.g. opensuse/leap,15.0 which maps to opensuse/leap:15.0 on the Docker Hub). This base image is in turn can be used to generate opam and other OCaml tool Dockerfiles. arch defaults to x86_64 and can vary the base user/repository since some architecture are built elsewhere.
CPU architectures
val distro_arches : Ocaml_version.t -> t -> Ocaml_version.arch listdistro_arches ov t returns the list of architectures that distribution t is supported on for OCaml compiler version ov
val distro_supported_on : Ocaml_version.arch -> Ocaml_version.t -> t -> booldistro_supported_on arch ov distro returns true if the combination of CPU arch, compiler version ov is available on the distribution distro.
Opam build infrastructure support
val active_distros : Ocaml_version.arch -> t listactive_distros arch returns the list of currently supported distributions in the opam build infrastructure. Distributions that are end-of-life upstream will rotate out of this list regularly.
val active_tier1_distros : Ocaml_version.arch -> t listTier 1 distributions are those supported for the full matrix of compiler versions in the opam build infrastructure.
val active_tier2_distros : Ocaml_version.arch -> t listTier 2 distributions are those supported for a limited set of compiler versions in the opam build infrastructure.