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.
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
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).
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
andtopkg-care
);