# Module Topkg.Private.Pkg

    module Pkg: sig .. end

Package description.

    type t

The type for package descriptions.

    val empty : t

`empty` is an empty package description.

    val name : t -> string

`name p` is `p`'s name.

    val delegate : t -> Topkg.Cmd.t option

`delegate p`is `p`'s delegate.

    val build_dir : t -> Topkg.fpath

`build_dir p` is `p`'s build directory.

    val readmes : t -> Topkg.fpath list

`readme p` is `p`'s readme files.

    val change_logs : t -> Topkg.fpath list

`change_logs p` is `p`'s change logs.

    val licenses : t -> Topkg.fpath list

`licenses p` is `p`'s license files.

    val opam : name:string -> t -> Topkg.fpath

`opam name p` is `p`'s opam file for opam package `name`.

## Distrib

    val distrib_uri : t -> string option

`distrib_uri p` is `p`'s distribution location URI pattern. See Distrib.

## Publish

    val publish_artefacts : t -> [ `Alt of string | `Distrib | `Doc ] list

`publish_artefacts p` is `p`'s distribution publication artefacts. See Publish.

## Lints

Note. In the following `None` values mean that the lint is disabled by the package description.

    val lint_custom : t -> (unit -> Topkg.R.msg Topkg.result list) option

`lint_custom p` is `p`'s custom linting function (if any).

Note. Use `Topkg.Private.Ipc.lint_custom` to run the function from another program.

    val lint_files : t -> Topkg.fpath list option

`lint_files p` are `p`'s files to check for existence.

    val lint_metas : t -> (Topkg.fpath * bool) list

`lint_metas p` are `p`'s META file to OCamlfind lint.

    val lint_opams : t -> (Topkg.fpath * bool * string list option) list

`lint_opams p` are `p`'s opam file opam lint and dependency lint.

## Codec

    val codec : t Topkg.Private.Codec.t

`codec` is a codec for package descriptions.