[opam-devel] OPAM Roadmap -- what next ?

David Allsopp david.allsopp at metastack.com
Wed Dec 17 10:42:45 GMT 2014

My feeling is that full Windows support touches enough files that, whether it's part of opam 1.3 or something later, OS agnosticism in general is probably worth an entire release on its own, just to stop the carpet from moving under you? It'll be very boring for most opam users (well, except for a few hopefully happy Windows users!), but possibly easier to manage?

I haven't had a chance in the last few weeks to work on 'my' Windows port (I was doing some work to detect the build tools environment correctly for opam switch to allow switching between the 4 windows ports within the same opam installation) - hoping to squeeze a day or two in over the Christmas break and then publish.

I'm not very good at extracting git metrics, but my branch (at present from 954d29f, but I'll rebase before publishing) contains 32 commits touching/adding 45 or so source files and changing/adding 2000 lines.


From: opam-devel [mailto:opam-devel-bounces at lists.ocaml.org] On Behalf Of Louis Gesbert
Sent: 17 December 2014 10:08
To: opam-devel at lists.ocaml.org
Subject: [opam-devel] OPAM Roadmap -- what next ?

Hi all,

with some lag after the 1.2 release, I'd like to open some space for a collective discussion of the priorities for where the energies should go next. We have mainly 3 directions for improvements: first, portability, with the main goal of a Windows version. Second, agnosticity, with the goal to make OPAM more generic, and try and open it to users outside of the OCaml community (wouldn't OPAM for Haskell be fun ?). Third, there are always lots of features and improvements that have been asked for, and would improve the experience of current users.

So here is a summary of what I've gathered. Feel free to add your own.

## Portability

- **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


- **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.

## Agnosticity

- **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)

## Features

- A **provides** field. Generally useful, but particulary so with


- 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** (eg dependencies on packages from the

OS) 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**


Louis Gesbert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ocaml.org/pipermail/opam-devel/attachments/20141217/44129206/attachment.html>

More information about the opam-devel mailing list