Vendored Libraries

As an opam package, Dune has no dependencies. But it uses some existing libraries by copying, or “vendoring”, their source code into the vendor/ directory.

In some cases, the external dependency is extracted from the upstream repository. In other cases, we carry patches and refer to a fork in the ocaml-dune GitHub organization.

The source code in the vendor/ directory is not meant to be edited directly. Instead, it is edited in the external repository, and the copy in the Dune source tree is updated by running an update script, such as update-spawn.sh.