In praise of ocaml

I don’t know about others but personally I don’t see how a more nuanced discussion is feasible here because how would a build system talk about, let alone enforce, different workflows at different stages of the development lifecycle? People today complain about not remembering dune init project my-project and what the lib and bin directories are for. How would we convince them to have separate build settings for development, review, CI, deployment? How would we handle the diversity of different needs in every project, or the absence of some of these stages in some projects? What about projects that don’t have a CI or don’t publish to opam?

I don’t see how this is viable and looking at other language ecosystems, I’ve never seen this done (except through generic ‘profiles’, which dune already has). Do you know of a build tool for any language that detects when it is being run in CI and enables strict linting? I’ve never heard of it…

1 Like