I am pleased to announce the adoption of the initial version of the OCaml Platform roadmap!
The roadmap is the result of extensive collaboration with key contributors and discussions within the community. We extend our thanks to organizations who participated in user interviews, including Jane Street, Bloomberg, Ahrefs, LexiFi, Routine, and Meta, as well as the many developers who shared valuable insights that helped shape the roadmap. We also thank our dedicated OCaml Platform maintainers and those who contributed their feedback on Discuss.
A few things that are important to keep in mind:
- The roadmap is a living document. It will continue to evolve. Now that the first version is live on OCaml.org, don’t hesitate to propose amendments in the form of Pull Requests to the OCaml.org repository.
- The roadmap is a directional guide, not a strict specification. It only sets priorities for tool development on the OCaml Platform, shaped in collaboration with maintainers. Changes in the workflows are very likely to happen as work starts on the different projects.
- With a focus on addressing major developer needs and requests, the roadmap is a three-year plan. It’s a relatively short timeline, so it aims for a balance between long-term goals and immediate improvements.
Entering the Execution Phase
With the planning phase complete, we’re moving towards executing the roadmap. This is a community effort, and everyone can participate:
- Community members: Contributions to Platform projects are welcome. All the Platform projects are actively looking for contributors and everyone will be more than happy to help you onboard on a project/task.
- OCaml developers: Your feedback is always helpful. We encourage you to share your experiences and suggestions through issues or here, on Discuss.
- Industrial users: If elements of the roadmap align with your organization’s interests, consider supporting through development contributions or funding maintainers.
Community Feedback
The roadmap went through a few iterations since its first draft was shared for community feedback. Among all the excellent feedback we received, the focus of the roadmap on building a cohesive experience through Dune is one point that spilt a lot of ink. I want to highlight a few changes we’ve made to the roadmap based on that feedback:
- Re-wrote (P5) Tools are independent, yet unified
Following on P4, we underline the critical importance of permitting tools to flourish independently: the OCaml Platform exists and will continue to exist as a collection of tools that can be used independently.
[…]
Amidst this integration, we firmly commit to ensuring that tools retain their independence and continue to be accessible through their own CLIs.
- Added (W15) Plugin Extensibility
Following (P6) (The Platform is cohesive, yet extensible), Dune allows external tools to extend its language to add new build rules through a plugin system.
[…]
- Added (W16) Integrate With Other Build Systems
[…]
In order to ensure that the OCaml ecosystem remains accessible and usable for all these users, regardless of their chosen build system, Dune offers support to eject the build plan to a machine-readable format. This enables third-party tools to consume the exported build plan and convert it into other build systems’ specifications.
[…]
And as mentioned above, the roadmap is a living document, so don’t hesitate to send a PR to update or add development workflows.
This roadmap is a significant step in our journey to improve the OCaml tooling, making OCaml even more pleasant to use, and easier to adopt. It was also the first time we organised a community discussion to adopt a Platform roadmap. This was absolutely worth it, and something we’ll aim to reproduce. In the meantime, if you have suggestions on how we can organise these conversations better in the future, don’t hesitate to share your thoughts.
Now, time to build. On we go!