View raw

Table of Contents

Workflow

Definition of done

A feature is not finished until, in this order:

  1. `dune build @check` is clean (type-checks library *and* tests).
  2. Alcotests exist for it — unit tests for behaviour, end-to-end tests for flows that cross module boundaries — and `dune runtest` passes.
  3. `dune fmt` has been run and `dune build @fmt` is clean.
  4. Documentation reflects the change.

Then, and only then:

Commits

  <type>(<optional scope>): <imperative summary under 72 chars>

  Body: why, not what. Wrap at 72. Note deviations from Heavy Duty doctrine
  and the reasoning behind design decisions.

Documentation

Written for a human skimming the repo, not for completeness.

Build directory safety

Never use the default Dune build directory. A persistent `dune exec -w ogit` process may use `_build`.

Use these commands instead:

Do not run `dune clean` on the default `_build` directory.