/dune-release

Streamlining the release of dune packages to opam

Primary LanguageOCaml

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 GitHub.

Installation

dune-release can be installed with opam:

opam install dune-release

Documentation

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

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

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

       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
       dune-release-bistro(1).

Important Notes

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

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);