OR and AND combinators in dune-project dependencies
Nobody has claimed this yet.
- Dominant language
- OCaml
- Stars
- 1.9k
- Forks
- 500
- Avg merge
- 15h 21m
- Merged PRs (30d)
- 277
Description
Desired Behavior
I use dune to generate a .opam file. Currently, dune's dependencies language is weaker than OPAM's. OPAM allows "coq-ltac2" | "coq" { >= "8.11~" } to specify that a package needs coq-ltac2 or coq >= 8.11, but dune-project isn't as flexible.
This flexibility is useful when a package is merged into another one, for example. In the concrete case above, coq-ltac2 requires coq < 8.11, and coq 8.11 includes the functionality formerly provided by coq-ltac2.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the dependency declarations in dune-project and the generated .opam output, then compare the requested OR and AND forms with the OPAM syntax shown in the issue. Trace the dependency-generation entry point and identify how the generated output should represent these expressions; done means dune-project can express the stated alternatives and produces valid OPAM dependencies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ocaml
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100