ocaml / ocaml/dune

New build system API: collecting thoughts, ideas and wishes

Open
#3,571 5 comments 13 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

proposal
Dominant language
OCaml
Stars
1.9k
Forks
500
Avg merge
15h 21m
Merged PRs (30d)
277

Description

We would like to come up with a new clean and well defined build system API. The main reason we want to do this now is to help the migration from Jenga to Dune inside Jane Street. Indeed, we would like to come up with a new API that we would implement in both Jenga and Dune, making it easier for the build system team at Jane Street to share rules between the two systems.

Moreover, we want to think of this API not just as helping for the migration but also as a new ideal API that we would eventually be happy to open to users when we are ready to make Dune extensible. At this point we should have enough experience with build systems to design a solid API that will both be easy to reason about and still give enough power to the build system to perform fast and correct builds.

This ticket is to collect thoughts, ideas and wishes on such a new API. Please throw in any idea you have, or anything you always wished a build system API would provide!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the proposed API needs for sharing rules between Jenga and Dune, along with the goal of future Dune extensibility; done would require an agreed, well-defined API rather than an individual code change.

Written by the indexing model from the issue text.

Assessment

Tech stack
ocaml
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.