1.3 Roadmap

Jared Forsyth edited this page Jun 16, 2017 · 5 revisions


at the moment, see the opam mailing-list archives or the discourse forum https://discuss.ocaml.org/tags/opam for the up-to-date roadmap


  • Rewrite parallel command engine. / done.

  • Native system manipulation (cp, rm, curl...). These are mostly done through calls to the shell or external programs. It's not very pretty but quite pragmatic actually... until we want to run on Windows without Cygwin. Anyway, this wouldn't be the end of portability issues.

  • Windows support. for OPAM itself to begin with. This should be pretty close.

  • Packages on Windows. Locate common issues and attempt to find generic fixes.

  • Allow direct use of more solvers or solver servers.

  • Support cross-compilation This is quite an open issue at the moment.


  • Isolate OCaml-specific stuff. E.g. specific opam-file variables. See ocaml-specific.md

  • Separate as plugins To open the gate to OPAM without these plugins, or with other ones

  • Compilers as packages. This should mostly work now, but needs some tests and strengthening. The main thing still to do is to handle the system compiler changes properly ; that part should be made more generic anyway (see discussion on hooks)


  • A provides field. Generally useful, but particulary so with compilers-as-packages

  • Releasing the "features" field for easier package configuration

  • Track installed files

  • Improve security: just checking md5s is quite light ; package scripts can write anywhere

  • OS-specific handling of dependencies with plugins (#1519)

  • Specify and implement hooks

  • Find a nicer way to share dev repos / undoable "pinning sources"

  • Per-switch remotes

  • Multi-switch packages

  • Support for (automatic generation of) binary packages

  • Nicer ocamlfind interaction

  • Better error recovery (perhaps via ocaml-git to track the contents of ~/.opam)

  • Separating build and install phases via using a destination dir, so that a manifest of installed files can be recorded per package.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.