I am happy to announce the first release of
drom, version 0.2.0, a
tool to create and manage OCaml projects.
drom is a simple layer on
dune, with project and package descriptions
written in TOML syntax. It is an attempt at providing a
experience for developers, with builtin support for standard OCaml
odoc, etc.) and source managers (Github for
now, with Github Actions and Github Pages).
There are mainly 2 use-cases of
drommakes it easy to create OCaml projects by
generating all the files needed for a standard OCaml project. It
creates files for
dune, formatters (
ocamlformat), documentation (
directories and Github CI. Once these files have been created,
dromis not needed anymore and you can keep using your preferred
dromcan also be used to keep managing the
project afterwards. It has commands like
drom buildto build the
project, automatically installing a local switch with all needed
drom docto generate the documentation and
drom testto execute tests.
dromworks as a simple interface over
duneso you almost never need to use them directly.
(this site and the documentation was mostly generated by
drom is available in the official opam repository.
$ drom new mylib --skeleton library // generate library project // or $ drom new hello // generate program project $ cd hello $ emacs drom.toml // edit the project description $ drom project // update files $ drom build // create local switch and build // or $ drom build --switch 4.10.0 // use global switch and build $ ./hello // run the executable $ drom test // run tests $ drom install // install in opam switch
This is an early release to get feedback from users.
drom has been
tested on several of our internal projects, like
drom creates local
opam switches for every project by
default (though it is possible to use global switches too), it is
advised to use it with
opam-bin to speed up switch creation and
drom works by creating projects using “skeletons”, i.e. project and
drom comes with a few predefined skeletons
library), and allows users to add their own
skeletons. We will of course extend the substitution language to help
users develop such new skeletons.
drom is a collaborative work between OCamlPro and Origin Labs.