dune-release: release dune packages in opam

dune-release is a tool to streamline the release of Dune packages in
opam. It supports only projects be built
with Dune and released on


dune-release can be installed with opam:

opam install dune-release


A basic introduction and API reference is automatically generated by
odoc from the interfaces. It can be consulted online.

The dune-release command line tool is extensively documented in man pages
available through it's help system. Type:

dune-release help release # for help about releasing your package
dune-release help         # for more help

For instance:

$ dune-release help release

       dune-release - How to release a (dune) package

       The basic release script is the following. Each step is refined and
       explained with more details below.

       dune-release browse issues # Review remaining outstanding issues
       dune-release status        # Review the changes since last version
       dune-release log edit      # Write the release notes
       dune-release log commit    # Commit the release notes
       dune-release tag           # Tag the distribution with a version
       dune-release distrib       # Create the distribution archive
       dune-release publish       # Publish it on the WWW with its documentation
       dune-release opam pkg      # Create an opam package
       dune-release opam submit   # Submit it to OCaml's opam repository

       The last four steps can be performed via a single invocation to

Important Notes

Most of the code in this repository has been written and has already
been released part of the topkg

The main differences between dune-release and topkg are:

  • Remove pkg/pkg.ml;

  • Assume the project is built with dune;

  • Bundle everything as a single binary;

  • Use of Astring, Logs, Fpath andBos;

  • Remove the IPC layer (which is used between topkg and topkg-care);

  • Remove the delegation mechanism: only publishing to GitHub is supported.