> On 6 Dec 2014, at 02:08, Louis Gesbert <[email protected]> wrote:
>
> Hi all,
>
> Following the thread on [email protected] about the needs for teachers
> and the discussion on opam-in-a-box, here is a preliminary specification of
> what I intend to do to improve the situation.
>
> * keep the ad-hoc scripting to a minimum. So that it's easier to maintain,
> contribute, and not get too tied to a given tool (e.g. Vagrant)
Absolutely -- it would be really useful to have a reusable set of scripts that
we could reuse across (e.g.) Docker and Vagrant.
Thomas Gazagnaire suggest pulling out opam-installext from the Docker scripts
into an OPAM package so that we can just install it easily.
> * opam-in-a-box should be just that, a VM or container with a pre-installed
> OPAM. The provisionning command on the VM should be as simple as possible
> (one system-package install, opam init, one opam package install ; possibly
> one more command to serve some web pages)
Agreed.
> * Now the tough part: setting up the account for a nice default user setup,
> with a possible choice of editors. For that I'm starting to work on the 'opam
> package for user setup' (opus ?) ('OCaml TOol Package for User Setup',
> 'octopus' ? :))
I guess this only applies for whole-VM virtualisation like Vagrant. In the
case of Docker packages, we can just skip all this and let the host editor
work. Do we have a page somewhere where we can editor customisation
instructions easily? Right now it's spread across Real World OCaml's
installation instructions, the Merlin website, etc.
>
> ## user-setup
>
> user-setup is a small OCaml program intended to be used as an OPAM package
> with optional dependencies on every tool package it has a module for (e.g.
> merlin, ocp-indent, ocp-index...). Its role is simply to set up the
> configuration of the user to use the installed tools. The idea is to have a
> clean modular interface, with a module for each editor, containing:
>
> - a base config template, to be used if the user has no config yet
> (typically, opam-in-a-box install)
> - a list of chunks that need to be added to given editor files. We'll support
> update of these chunks with correct handling of manual modifications.
>
> then for each tool (within each editor):
> - a similar list of chunks
> - a list of files to link or install
>
> We'll suppose a default configuration for most of this for now, the
> opam-in-a-box setting being the first use-case, and since advanced users
> probably won't use that anyway.
>
> Doing it this way has a bunch of advantages, among them:
> - it should be easy to contribute configurations, and for this, contributions
> are highly needed (I've already put together a good emacs config from the
> various cited sources and my own to start, but am not qualified to do this
> for e.g. vim)
> - it's flexible and allows updates: by using depopts, it will be re-run on
> every tool installation, change or upgrade, only for people to chose to
> install it.
> - it's not normal for an opam package to write outside of ~/.opam, but here
> that'll be well advertised and kept to this one single package, without
> tainting tool packages themselves.
This sounds excellent. What about managing `~/.ocamlinit` as well? That's a
very common missing step among RWO readers.
Anil
_______________________________________________
Platform mailing list
[email protected]
http://lists.ocaml.org/listinfo/platform