caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Sylvain Le Gall <sylvain@le-gall.net>
To: caml-list@inria.fr
Subject: Re: [OSR] Ports-like package management system
Date: Wed, 30 Jan 2008 09:53:34 +0000 (UTC)	[thread overview]
Message-ID: <slrnfq0i8u.nki.sylvain@gallu.homelinux.org> (raw)
In-Reply-To: <47A045C1.7030603@exalead.com>

On 30-01-2008, Berke Durak <berke.durak@exalead.com> wrote:
> Sylvain Le Gall a écrit :
>> Please don't go into this. If you want to talk about PM, don't talk
>> about VCS. My point is that if you want to build something that last you
>> should keep focus on PM, which is not really bound to VCS (like content
>> of files is not bound to filesystem). There is no best VCS for doing PM.
>> We just should handle a way to :
>> * let anyone use a different VCS
>> * be able to download at least a version of each different packages
>
> > The most simple way to handle this, to my mind:
> > * distribute METADATA for packaging into ftp/http
> > * put a link to the VCS inside METADATA, to tell where you can find most
> >  recent one
>
> We want to guarantee to the user that if she has installed Ocaml and the 
> Ocaml package system, she will be able to use any component packaged in 
> the system without having to install extra software.
>
> The Ocaml pakcage system must therefore include as a prerequisite all 
> the tools required for fetching data.  Hence if we want to use a VCS as 
> part of the system, we must agree on one.
>
> The VCS selected, if any, doesn't have to be the one the developers use, 
> of course.  (But there exist many VCS-to-VCS bridges, so it's not really 
> a problem.)
>
> Speed and portability are however important.
>

Using a simple wget/rsync (you can redevelop it in OCaml) is far more simple
than to use a VCS. 

VCS-to-VCS is a dream. If have tried to use many, most of the times they
are complicated to setup and don't work well.

And of course wget/rsync are the fastest way to get data. 

> Now why would we want to use a VCS?
>
> * As a data storage and distribution mechanism
> * For efficient updates
> * For the ability to check out any revision
>
> These functions could be emulated by having a directory with a lot of 
> tarball snapshots and using wget.  This may work for passive use of the 
> software but even for this limited use case, use of a VCS is much more 
> useful - efficient updates, storage of all intermediate revisions, 
> branches, and the possibility for the upstream author to directly work 
> on that VCS.

Use rsync!

>
> But the aim of the Ocaml packaging system should be to foster 
> cooperation among Ocaml developers.  That is why having a recommended 
> VCS and a standardized build system (or at least set of build commands)
> is important.
>
> Assume we agree on a distributed VCS system S.  Most Ocaml software will 
> be developed in its own S repository, hosted by the author.  So we will 
> have programs P1, P2... with respective repositories S1, S2...
>

Assume that Mister Z don't want to use VCS S. Mister Z create a lot of
great OCaml libraries... What do you do?

> When you develop a program P you will have use programs P_{i1}, P_{i2}, 
> ... and thus have checkouts of repositories S_{i1}, S_{i2}, and so on. 
> If you find a bug in P_{i1} you can directly edit the checked out 
> version, recompile everything automatically by launching ocaml in P's 
> directory and thus debug P_{i1}.  You can then locally commit your 
> changes to P_{i1} and then easily push the patch or send the diff to the 
> upstream author.
>

Send a patch to author of P_{i1}. This is the easiest way. 

<hint>
diff -Nurd  P_{i1} P_{i1}.new
</hint>

> If we don't use a VCS, this becomes much more difficult and error-prone.
>
> The increase in collaboration and productivity could be tremendous. 
> This requires close integration of the build and repository system and 
> agreement on a common VCS.
>

This also lead to be stuck with one VCS for the rest of our lives. It
also prevents people who don't like/don't have time to learn VCS S, to
contribute.

> Now being able to use the software of your choice, plurality and 
> multiplicity of solutions are all good, but in this particular case this 
> hinders collaboration.
>
> It's as if everyone was using a different language!
>
> My intent was not to provoke VCS flame wars.  But I think agreeing on a 
> VCS is important and a flame war or two is acceptable collateral damage 
> in the process of selecting one.
>

Looking at all the mail of this thread, i mainly read people talking
about VCS R being faster than VCS S...

> Now of course I don't have a precise idea of what the Ocaml packaging 
> system would be like, but I think the way to go is to :
>
>    - Use a common distributed VCS system for storage and distribution of 
> source code, with multiple repositories
>

Lets choose a very simple storage system. Not a VCS. This too heavy and
create too many complicated case.

>    - A build system integrated with the package management system,
>

Yes, if you do not force every software developers to use it and still
provide a way to integrate their software into your package management
system.

>    - A package management system able to manage arbitrarily many 
> versions or copies of the same software component, and compile any 
> program using an arbitrary selection of the required versions,

Regards,
Sylvain Le Gall


  reply	other threads:[~2008-01-30  9:53 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-29 10:56 Berke Durak
2008-01-29 11:12 ` [Caml-list] " David Teller
2008-01-29 13:11 ` Yaron Minsky
2008-01-29 14:04   ` Nicolas Pouillard
2008-01-29 17:35   ` Berke Durak
2008-01-29 18:02     ` Bünzli Daniel
2008-01-29 18:10     ` Paul Pelzl
2008-01-29 22:26     ` Paolo Donadeo
2008-01-30  1:55       ` Bünzli Daniel
2008-01-29 22:46     ` Paolo Donadeo
2008-01-29 13:47 ` Yaron Minsky
2008-01-29 14:04   ` Nicolas Pouillard
2008-01-29 16:00 ` Alain Frisch
2008-01-30  6:58   ` Yaron Minsky
2008-01-30  8:56     ` Nicolas Pouillard
2008-01-29 17:56 ` Bünzli Daniel
2008-01-29 18:17   ` Nicolas Pouillard
2008-01-29 19:13     ` Bünzli Daniel
2008-01-30  8:49       ` Nicolas Pouillard
2008-01-30 11:15         ` Bünzli Daniel
2008-01-30 11:52           ` Nicolas Pouillard
2008-01-29 18:47 ` Hezekiah M. Carty
2008-01-30  9:06 ` Sylvain Le Gall
2008-01-30  9:39   ` [Caml-list] " Berke Durak
2008-01-30  9:53     ` Sylvain Le Gall [this message]
2008-01-30 10:50       ` Nicolas Pouillard
2008-01-30 11:15         ` Bünzli Daniel
2008-01-30 11:54           ` Nicolas Pouillard
2008-01-30 13:58             ` Sylvain Le Gall
2008-01-30 14:08               ` [Caml-list] " Nicolas Pouillard
2008-01-30 11:15       ` Berke Durak
2008-01-30 11:47         ` Bünzli Daniel
2008-01-30 13:55           ` Sylvain Le Gall
2008-01-30 13:54         ` Sylvain Le Gall
2008-01-30 14:24           ` [Caml-list] " Berke Durak
2008-01-30 14:35             ` Sylvain Le Gall
2008-01-30 19:48             ` [Caml-list] " Bünzli Daniel
2008-01-30 18:12           ` Vlad Skvortsov
2008-01-30 16:32       ` Michael Ekstrand
2008-01-30 16:44         ` Sylvain Le Gall
2008-01-30 18:03         ` [Caml-list] " Nicolas Pouillard
2008-01-30 19:45         ` Olivier Andrieu
2008-01-30 19:53           ` Vlad Skvortsov
2008-01-30 10:45     ` Sylvain Le Gall
2008-01-30  9:51   ` [Caml-list] " Jon Harrop
2008-01-30 10:18     ` Sylvain Le Gall
2008-01-30 10:43       ` [Caml-list] " Jon Harrop
2008-01-30 12:00         ` Nicolas Pouillard
2008-01-30 13:25           ` Jon Harrop
2008-01-30 14:06             ` Nicolas Pouillard
2008-01-30 12:37   ` Pietro Abate
2008-01-30 13:26     ` Stefano Zacchiroli
2008-01-30 14:07     ` Gerd Stolpmann
2008-01-30 13:37       ` Stefano Zacchiroli
2008-01-30 15:12         ` Gerd Stolpmann
2008-01-31  9:02           ` Stefano Zacchiroli
2008-02-01 15:03             ` Gerd Stolpmann
2008-02-03 20:21               ` Stefano Zacchiroli
2008-02-04  3:40                 ` Matthew Hannigan
2008-02-04 18:42               ` Nathaniel Gray
2008-01-30 17:42       ` David Allsopp
2008-01-30 14:13     ` Sylvain Le Gall
2008-01-30 20:22       ` [Caml-list] " Bünzli Daniel
2008-02-08 22:24       ` N. Owen Gunden
2008-01-30 15:15     ` Jon Harrop
2008-01-30 12:37 ` [Caml-list] " Berke Durak
2008-02-13  8:45 ` David Teller
2008-02-13 10:02   ` Sylvain Le Gall
2008-02-13 10:48     ` [Caml-list] " Berke Durak
2008-02-13 13:51       ` Sylvain Le Gall
2008-02-13 14:10       ` [Caml-list] " Richard Jones
2008-02-13 14:22         ` Sylvain Le Gall
2008-02-13 17:57           ` [Caml-list] " Richard Jones
2008-02-15  8:13       ` Maxence Guesdon
2008-02-15  9:47         ` Berke Durak
2008-02-15 10:24           ` Maxence Guesdon
2008-02-15 10:59             ` Stefano Zacchiroli
2008-02-15 15:45               ` Maxence Guesdon
2008-02-15 13:35         ` Ralph Douglass
2008-02-15 14:08           ` Christophe TROESTLER
2008-02-13 12:13     ` David Teller
2008-02-13 13:48       ` Sylvain Le Gall
2008-02-13 13:58         ` [Caml-list] " David Teller
2008-02-13 14:20           ` Sylvain Le Gall
2008-02-13 14:28             ` [Caml-list] " David Teller

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=slrnfq0i8u.nki.sylvain@gallu.homelinux.org \
    --to=sylvain@le-gall.net \
    --cc=caml-list@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;
as well as URLs for NNTP newsgroup(s).