We are aiming to achieve a "Minimal Stable Product" (MSP) for dune pkg.
We take MSP to mean:
- That
dune pkgcan be used reliably by OCaml users for developing most OCaml software projects. - That users do not need to make recourse to
opamor other package management systems, unless the workflows requiring workarounds are identified and documented.
Developing OCaml software projects includes more that just building projects and installing their dependencies. It also includes, at least:
- being able to install any desired OCaml developer tools
- being able to query packages available for installation
- being able to install software from the ecosystem that is commonly used in development
- publishing packages developed using
dune pkg - generating projects preconfigured to work with
dune pkg - launching repls
- interoperating easily with common IDEs (VSCode, Vim, & Emacs)
- running tests
- generating documentation
When we determine that this milestone is achieved we will record this outcome by removing the "experimental" warnings on the online and CLI documentation for dune pkg, and we will then begin encouraging working OCaml developers to use dune pkg in their day to day work.
- This stage of the tools should be stable in the sense that it works reliably, and supports the essential, day-to-day activities of individual developers and small software teams.
- This stage of the tool is minimal in that we don't need to solve every problem or provide all the planned features. For example:
- We don't need to solve portable, shared locking based on a checked-in lock directory to ship the MSP, since most ocaml users don't currently use this in their projects, and we achieve most of what we need for locking by pinning the opam-repo.
- We don't need to provide flashy terminal output: while nice terminal UX is a nice to have and will be supplied eventually, that is completely inessential for a working alternative to opam.
- We don't need every sub-feature to be fully stable: we can "demote" the "experimental" warnings to other parts of the tool (such as the
toolssub command), when we still feel like we need to warn users about instability or likely breaking changes. - We don't need to discover or fix every bug users are likely to encounter: we should expect, and indeed we want, real users to report the problems they encounter while trying to use
dune pkgon real projects (after the MSP is completed).
List view
0 issues of 26 selected
- Status: Closed (abandoned).ocaml/dunenumber 11900#11900 In ocaml/dune;
- Status: Merged (completed).ocaml/dunenumber 12394#12394 In ocaml/dune;
- Status: Merged (completed).ocaml/dunenumber 12194#12194 In ocaml/dune;
- Status: Merged (completed).ocaml/dunenumber 12758#12758 In ocaml/dune;
- Status: Merged (completed).ocaml/dunenumber 12765#12765 In ocaml/dune;
- Status: Closed (completed).#11958 In ocaml/dune;
- Status: Closed (completed).#12106 In ocaml/dune;
- Status: Closed (completed).#11644 In ocaml/dune;
- Status: Closed (completed).#12099 In ocaml/dune;
- Status: Closed (completed).#12588 In ocaml/dune;
- Status: Closed (completed).#12244 In ocaml/dune;
- Status: Closed (completed).#10290 In ocaml/dune;
- Status: Closed (completed).#10964 In ocaml/dune;
- Status: Closed (completed).#10903 In ocaml/dune;
- Status: Closed (completed).#11476 In ocaml/dune;
- Status: Closed (completed).#12694 In ocaml/dune;
- Status: Closed (completed).#12692 In ocaml/dune;
- Status: Duplicate of an existing item.#12697 In ocaml/dune; · Duplicate
- Status: Closed (completed).#12701 In ocaml/dune;
- Status: Closed (completed).#12491 In ocaml/dune;
- Status: Closed (completed).#12097 In ocaml/dune;
- Status: Closed (completed).#12098 In ocaml/dune;
- Status: Duplicate of an existing item.#12798 In ocaml/dune; · Duplicate
- Status: Closed (completed).#12799 In ocaml/dune;
- Status: Not planned (skipped).#12717 In ocaml/dune;