A tiny, minimally-functional project management tool for OCaml.
NOTE: nomad is not published on opam and afaik I’m the only user, so it is likely to be a bit brittle. Contributions to improve and harden the tool would be welcome.
nomad
’s goal is to automate repetitive aspects of managing OCaml projects by
coordinating the dune and opam.
nomad
differs from drom and spin in its narrow focus and minimal ethos. I.e.:
- Just automate the most repetitive flows, but still expect users to use opam and dune.
- Don’t generate boilerplate and templates.
- Don’t introduce a bunch of complex features.
- sexp is perfect: don’t introduce new abstraction layers in the configuration format of the week.
Assuming you have installed opam and dune:
opam pin git@github.com:shonfeder/nomad.git
If you project’s name is dingus
nomad new dingus
And a scaffold for building the dingus executable will be created in the
directory ./dingus
.
If you project’s name is dingus
nomad new --lib dingus
And a scaffold for building the dingus library will be created in the
directory ./dingus
.
Suppose we’re building a GUI with bogue. We can add the dependency with:
nomad add bogue
From the project root
nomad sync
And the dependencies declared in your project’s dune-project
will be synced
using opam.
For more examples of usage, see test/README.org.
See project.org.