A linter for build files in OCaml dune projects
  • OCaml 92.4%
  • Text 6.9%
  • Shell 0.4%
  • Dune 0.3%
Find a file
2026-09-08 12:21:42 +02:00
.github Upgrade CI 2026-09-08 12:21:42 +02:00
.vscode Add spell entry 2026-05-05 10:40:21 +02:00
actions Migrate documentation site from Docusaurus to Zola 2026-08-18 22:07:08 +02:00
doc Fix undiscoverable pages in sections lacking a real index 2026-08-20 12:33:42 +02:00
dunolint-config Fix dunolint lint 2026-08-17 18:52:04 +02:00
src Improve myers and merge3 vendoring 2026-08-17 16:51:30 +02:00
test Fix some typos 2026-05-18 16:52:10 +02:00
third-party-license Improve myers and merge3 vendoring 2026-08-17 16:51:30 +02:00
.gitattributes Initialize project 2025-02-11 11:39:27 +01:00
.gitignore Initialize project 2025-02-11 11:39:27 +01:00
.headache.config Initialize project 2025-02-11 11:39:27 +01:00
.ocamlformat Upgrade ocamlformat to 0.29.0 2026-03-24 09:49:37 +01:00
.pre-commit-hooks.yaml Add a pre-commit hook 2025-04-08 09:40:21 +02:00
AI-DECLARATION.md Add an AI-DECLARATION.md file and badge to the project 2026-05-12 00:19:45 +02:00
CHANGES.md Edit changelog 2026-05-12 18:27:06 +02:00
CODE_OF_CONDUCT.md Adopt OCaml code of conduct 2025-02-11 22:46:39 +01:00
CODEOWNERS Setup some file ownership for arvidj 2025-04-08 10:03:18 +02:00
COPYING Initialize project 2025-02-11 11:39:27 +01:00
COPYING.HEADER Modernize license headers and update year 2026-03-17 16:53:06 +01:00
COPYING.LESSER Initialize project 2025-02-11 11:39:27 +01:00
COPYING.LINKING Initialize project 2025-02-11 11:39:27 +01:00
dune Move the dunolint config at the root of the repo 2025-09-10 11:42:14 +02:00
dune-project Vendor ocaml-merge3 2026-05-18 16:32:08 +02:00
dune-workspace.4.14 Upgrade CI 2026-09-08 12:21:42 +02:00
dune-workspace.5.2 Upgrade CIs 2026-04-12 13:37:51 +02:00
dune-workspace.5.3 Upgrade CIs 2026-04-12 13:37:51 +02:00
dune-workspace.5.4 Upgrade CIs 2026-04-12 13:37:51 +02:00
dune-workspace.5.5 Upgrade CI 2026-09-08 12:21:42 +02:00
dunolint Fix dunolint lint 2026-08-17 18:52:04 +02:00
dunolint-dev.opam Reduce usage of ppx in tests too 2026-05-05 10:50:13 +02:00
dunolint-lib-base-tests.opam Remove base/ppx_sexp_value from test directories 2026-05-11 21:30:04 +02:00
dunolint-lib-base.opam Fix deps 2026-05-05 11:20:41 +02:00
dunolint-lib.opam Add dyn dependency to dunolint-lib 2026-05-04 13:34:14 +02:00
dunolint-lib.opam.template Initialize project 2025-02-11 11:39:27 +01:00
dunolint-tests.opam Vendor ocaml-merge3 2026-05-18 16:32:08 +02:00
dunolint.opam Reduce base usage in dunolint executable 2026-05-05 12:29:32 +02:00
dunolint.opam.template Initialize project 2025-02-11 11:39:27 +01:00
dunolint.sh Migrate main and doc CIs to setup-dune 2026-02-01 17:17:52 +01:00
headache.sh Remove left-over unused var (shellcheck) 2026-03-17 12:10:49 +01:00
Makefile Migrate documentation site from Docusaurus to Zola 2026-08-18 22:07:08 +02:00
NOTICE.md Improve myers and merge3 vendoring 2026-08-17 16:51:30 +02:00
README.md Add an AI-DECLARATION.md file and badge to the project 2026-05-12 00:19:45 +02:00

dunolint

CI Status Coverage Status Deploy Doc Status OCaml-CI Build Status AI-DECLARATION: pair

Introduction

Welcome to dunolint, a project composed of libraries and a CLI designed to assist with maintaining build files typically found in OCaml repos managed by the Dune build system (e.g., files named dune, dune-project, etc.).

Project Goals

The goal of dunolint is to check customizable invariants in your repo and help with ergonomic issues, such as applying systematic changes across many files. It supports things like enabling instrumentation, configuring recurring lint or preprocess flags, sorting libraries alphabetically, and more. You can use it at your convenience during development, and enforce consistency by integrating it into your CI pipeline.

Documentation

Published here.

Current State

It's currently in the early stages of development and there's little code and features at this point. I'm seeking feedback and early discussions about the project next steps.

Get Involved

I would love to hear your thoughts about dunolint. If you're interested in this project and would like to engage in discussions or provide feedback, please feel free to open an issue or start a discussion in the GitHub space of the project.

Thank you for your interest in dunolint!

Acknowledgements

We're very thankful to:

  • Jérémie Dimino and the Dune developers for their work on the Dune build system for OCaml.
  • The diataxis approach to technical documentation, which we use as inspiration to structure our doc.