Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "Bünzli Daniel" <daniel.buenzli@erratique.ch>
To: caml-list caml-list <caml-list@yquem.inria.fr>
Subject: On module distribution
Date: Tue, 15 Jan 2008 12:20:04 +0100	[thread overview]
Message-ID: <92920466-3BCE-4A9F-9742-3396B07006F7@erratique.ch> (raw)

A few month ago, after a discussion on cherry-picking modules in the  
reins library I thought a little bit about devising a system to  
facilitate module sharing. A system to simplify the tedious and  
uninteresting actions needed to be able to use and publish modules. At  
that time I started a design document for it, but as is expected in  
such cases the effort didn't last long.

However since people will be meeting in Paris in a few week to discuss  
these things I thought there may be some ideas to take in this very  
rough and incomplete draft of a system that I will never implement. So  
FWIW here's a link [1] to this document. In summary the main ideas  
were :

1. A decentralized system, anyone who can publish on a web server can  
publish a package. A central authority is a bottleneck to publication.

2. Use atom feeds [2] as the distribution medium. Atom feeds contain  
all the semantic information (authors, contributors, entries, rights,  
link to enclosure, labels etc.) needed to represent a package and its  
versions with release notes. Shortly a package is a feed, a version is  
an entry with an enclosure link to an archive. The only extensions  
needed (Atom allows this via xml name spaces) are new link attributes  
to describe version dependencies. Packages as feeds allow to follow  
their evolution with a plain newsfeed reader (which would also  
facilitates the maintenance of repositories like the hump). To avoid  
angle brackets, package feeds are generated from a tagged plain text  
README file.

3. Manage packages per project (vs. per machine) to make project  
dependencies explicit. Thus a single command can install you the  
(OCaml + C stubs only) dependencies of your project on a fresh system.  
If your project is a package itself, it facilitates its packaging .

4. Rely on ocamlbuild to do the hard work. Grosso modo in the way  
described here [3], which may be unrealistic for big projects, but on  
unices ressource consumption could be mitigated by making hard links  
to a cache maintained per user or machine (inspired by ideas in this  
message [4]).

Best,

Daniel

[1] http://erratique.ch/writings/mod.pdf
[2] http://tools.ietf.org/html/rfc4287
[3] http://brion.inria.fr/gallium/index.php/Working_on_dependent_projects_with_ocamlbuild
[4] http://caml.inria.fr/pub/ml-archives/caml-list/2007/04/ea46e76c646854347ad02dc10862a6ee.fr.html


             reply	other threads:[~2008-01-15 11:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-15 11:20 Bünzli Daniel [this message]
2008-01-15 13:38 ` [Caml-list] " Berke Durak
2008-01-15 14:24   ` Gerd Stolpmann
2008-01-15 15:07 ` Sylvain Le Gall
2008-01-15 20:41   ` [Caml-list] " Bünzli Daniel
2008-01-15 20:56     ` Vlad Skvortsov
2008-01-16 10:19       ` Maxence Guesdon
2008-01-15 20:56     ` Will Farr
2008-01-15 21:27     ` Sylvain Le Gall
     [not found]   ` <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com>
2008-01-16  0:11     ` Fwd: [Caml-list] " Jonathan Bryant
2008-01-16  5:26     ` Jonathan Bryant
2008-01-15 18:46 ` [Caml-list] " David Thomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=92920466-3BCE-4A9F-9742-3396B07006F7@erratique.ch \
    --to=daniel.buenzli@erratique.ch \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox