Dune é um sistema de construção para OCaml. Ele fornece uma experiência consistente e cuida dos detalhes de baixo nível da compilação OCaml. Você só precisa fornecer uma descrição do seu projeto e Dune fará o resto.
Dune implementa um esquema inspirado naquele usado na Jane Street e adaptado ao mundo do código aberto. Ele amadureceu ao longo do tempo e é usado diariamente por centenas de desenvolvedores, o que significa que é altamente testado e produtivo.
Dune vem com um manual. Se quiser começar sem ler muito, consulte o guia de início rápido ou assista a este vídeo de introdução.
O diretório de exemplo contém exemplos de projetos usando Dune.
Dune lê metadados do projeto a partir de arquivos dune
, que são arquivos estáticos com uma sintaxe simples de expressão S. Ele usa essas informações para configurar regras de construção, gerar arquivos de configuração para ferramentas de desenvolvimento como Merlin, gerenciar a instalação, etc.
O Dune em si é rápido, tem muito pouca sobrecarga e suporta compilações paralelas em todas as plataformas. Não possui dependências de sistema. OCaml é tudo que você precisa para construir Dune e pacotes usando Dune.
Em particular, pode-se instalar o OCaml no Windows com um instalador binário e então usar apenas o Console do Windows para construir o Dune e pacotes usando o Dune.
Dune é combinável, o que significa que vários projetos Dune podem ser organizados juntos, levando a uma única construção que Dune sabe como executar. Isso permite monorepos de projetos.
Dune torna o desenvolvimento simultâneo em vários pacotes uma tarefa trivial.
Dune sabe como lidar com repositórios contendo vários pacotes. Ao construir via opam, ele consegue utilizar corretamente bibliotecas que foram instaladas anteriormente, mesmo que já estejam presentes na árvore de origem.
A invocação mágica é:
$ dune build --only-packages < package-name > @install
Dune pode construir um determinado repositório de código-fonte em várias configurações simultaneamente. Isso ajuda a manter pacotes em diversas versões do OCaml, já que você pode testá-los todos de uma vez sem complicações.
Em particular, isso facilita o manuseio da compilação cruzada. Este recurso requer opam.
Dune requer OCaml versão 4.08.0 para ser construído e pode construir projetos OCaml usando OCaml 4.02.3 ou superior.
Recomendamos instalar o Dune através do gerenciador de pacotes opam:
$ opam install dune
Se você é novo no opam, certifique-se de executar eval $(opam config env)
para disponibilizar dune
em seu PATH
. O binário dune
é independente e relocável, então você pode copiá-lo com segurança em outro lugar para torná-lo permanentemente disponível.
Você também pode construí-lo manualmente com:
$ make release
$ make install
Se você não tiver make
, você pode fazer o seguinte:
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
O primeiro comando cria o binário dune.exe
. O segundo constrói os arquivos adicionais instalados pelo Dune, como as páginas man , e o último simplesmente instala tudo isso no sistema.
Observação : a menos que você execute o script opcional ./configure
, você pode simplesmente copiar dune.exe
em qualquer lugar e ele simplesmente funcionará. dune
é totalmente relocável e descobre seu ambiente em tempo de execução, em vez de codificá-lo em tempo de compilação.
Se você tiver dúvidas ou problemas sobre o Dune, pergunte em nossa página de discussões do GitHub ou abra um ticket no GitHub.