Dune est un système de build pour OCaml. Il offre une expérience cohérente et prend en charge les détails de bas niveau de la compilation OCaml. Il vous suffit de fournir une description de votre projet et Dune fera le reste.
Dune implémente un schéma inspiré de celui utilisé dans Jane Street et adapté au monde open source. Il a mûri au fil du temps et est utilisé quotidiennement par des centaines de développeurs, ce qui signifie qu'il est hautement testé et productif.
Dune est livré avec un manuel. Si vous souhaitez commencer sans trop lire, consultez le guide de démarrage rapide ou regardez cette vidéo d'introduction.
Le répertoire d'exemples contient des exemples de projets utilisant Dune.
Dune lit les métadonnées du projet à partir des fichiers dune
, qui sont des fichiers statiques avec une syntaxe d'expression S simple. Il utilise ces informations pour configurer les règles de construction, générer des fichiers de configuration pour les outils de développement tels que Merlin, gérer l'installation, etc.
Dune lui-même est rapide, nécessite très peu de surcharge et prend en charge les versions parallèles sur toutes les plates-formes. Il n'a aucune dépendance système. OCaml est tout ce dont vous avez besoin pour créer Dune et des packages à l'aide de Dune.
En particulier, on peut installer OCaml sur Windows avec un programme d'installation binaire, puis utiliser uniquement la console Windows pour créer Dune et des packages à l'aide de Dune.
Dune est composable, ce qui signifie que plusieurs projets Dune peuvent être organisés ensemble, conduisant à une seule version que Dune sait exécuter. Cela permet de monorepos de projets.
Dune fait du développement simultané sur plusieurs packages une tâche triviale.
Dune sait gérer les référentiels contenant plusieurs packages. Lors de la construction via opam, il est capable d'utiliser correctement les bibliothèques précédemment installées, même si elles sont déjà présentes dans l'arborescence des sources.
L'invocation magique est :
$ dune build --only-packages < package-name > @install
Dune peut créer un référentiel de code source donné sur plusieurs configurations simultanément. Cela facilite la maintenance des packages sur plusieurs versions d'OCaml, car vous pouvez tous les tester en même temps sans problème.
En particulier, cela facilite la gestion de la compilation croisée. Cette fonctionnalité nécessite OPAM.
Dune nécessite OCaml version 4.08.0 pour se construire et peut créer des projets OCaml en utilisant OCaml 4.02.3 ou version ultérieure.
Nous vous recommandons d'installer Dune via le gestionnaire de packages opam :
$ opam install dune
Si vous êtes nouveau sur opam, assurez-vous d'exécuter eval $(opam config env)
pour rendre dune
disponible dans votre PATH
. Le binaire dune
est autonome et déplaçable, vous pouvez donc le copier en toute sécurité ailleurs pour le rendre disponible en permanence.
Vous pouvez également le construire manuellement avec :
$ make release
$ make install
Si vous n'avez pas make
, vous pouvez procéder comme suit :
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
La première commande crée le binaire dune.exe
. Le second construit les fichiers supplémentaires installés par Dune, tels que les pages de manuel , et le dernier installe simplement tout cela sur le système.
Remarque : à moins que vous n'ayez exécuté le script facultatif ./configure
, vous pouvez simplement copier dune.exe
n'importe où et cela fonctionnera. dune
est entièrement relocalisable et découvre son environnement au moment de l'exécution plutôt que de le coder en dur au moment de la compilation.
Si vous avez des questions ou des problèmes concernant Dune, vous pouvez les poser sur notre page de discussions GitHub ou ouvrir un ticket sur GitHub.