At Tarides, we’ve been working on an initiative to improve the OCaml development experience: Dune Package Management. As outlined in the Platform Roadmap, which was created through community collaboration, the aim is to unify all OCaml development workflows under a single, streamlined tool. At Tarides, we aim to make Dune the recommended frontend for the OCaml Platform, offering new users a seamless developer experience.
The motivation behind Dune Package Management is clear. For years, the OCaml community has called for a single tool to address all the development concerns: building projects, managing dependencies, testing on different compiler versions, etc. By integrating package management directly into Dune, we want to resolve the above long-standing pain points that can make OCaml cumbersome to work with, both for newcomers and experienced developers.
The Vision for Dune
Our long-term goal is to make Dune the central tool for OCaml development. That means more than just feature additions! It's about radically simplifying how developers work with the OCaml platform. By making installation painless and simplifying frustrating workflows, such as the handling of dependencies and testing against multiple compiler versions, Dune will address all your OCaml needs.
Dune integrates package management by using opam as a libary in essential parts of our approach. Two commands lie at the heart of integration: dune pkg lock
and dune build
. dune pkg lock
creates a generated lock file, whereas dune build
depends on this lock file to manage project dependencies. You can now handle everything from project initialisation to dependency management using these simple commands.
What We’ve Achieved So Far
We've accomplished a lot in these past few months! The work we have done for Dune Package Management can already handle such complex projects as OCaml.org and Bonsai using the new package management features. Both were successfully built using these new features. These early successes confirm our hypothesis: we are on the right track, because this proves the solution's viability in real world scenarios.
But this is not the end of the work. In the future, we plan to further improve the UX so that Dune is not only correct but also easy and productive for developers to use. The remaining challenges are yet to be overcome, and we hope to make Dune Package Management the standard tooling for all OCaml workflows.
The Road Ahead
Now that we hit the milestone for MVP, the subsequent phase will have testing, validation, and enhancement of the developer experience. Our main focuses going ahead will include:
- Smoothen UX: We want to make the Dune Package Management interface as intuitive as possible, so developers can get their projects underway quickly.
- Optimising Performance: This means shorter compilation times, quicker install times for dependencies, and ensuring all operations work seamlessly.
- Simplify Tooling: We're starting to include things like testing, formatting, documentation generation, and more! This way developers will no longer have to run several different tools to manage their projects.
- Providing Clear Documentation: Thorough, user-friendly documentation will be essential in helping developers adopt these new features.
A Unified Future for OCaml
Package Management brings in a new era of OCaml development. Dune will now be the only tool engineers will need, making OCaml development as seamless and effective for both complete beginners and experienced developers on the platform.
We look forward to the future and what Dune Package Management will facilitate within the OCaml community. Stay tuned, and prepare to take part in a more integrated and seamless OCaml development experience with Dune.
Open-Source Development
Tarides champions open-source development. We create and maintain key features of the OCaml language in collaboration with the OCaml community. To learn more about how you can support our open-source work, discover our page on GitHub.
Stay Updated on OCaml and MirageOS!
Subscribe to our mailing list to receive the latest news from Tarides.
By signing up, you agree to receive emails from Tarides. You can unsubscribe at any time.