* On module distribution @ 2008-01-15 11:20 Bünzli Daniel 2008-01-15 13:38 ` [Caml-list] " Berke Durak ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: Bünzli Daniel @ 2008-01-15 11:20 UTC (permalink / raw) To: caml-list caml-list 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 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] On module distribution 2008-01-15 11:20 On module distribution Bünzli Daniel @ 2008-01-15 13:38 ` Berke Durak 2008-01-15 14:24 ` Gerd Stolpmann 2008-01-15 15:07 ` Sylvain Le Gall 2008-01-15 18:46 ` [Caml-list] " David Thomas 2 siblings, 1 reply; 12+ messages in thread From: Berke Durak @ 2008-01-15 13:38 UTC (permalink / raw) To: Bünzli Daniel; +Cc: caml-list caml-list Bünzli Daniel a écrit : > 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]). I'm not a big fan of hardlinking external stuff into the _build directory. I think we should rather add to Ocamlbuild a module for calling ocamlfind, parsing its output, etc. This way ocamlbuild plugins could easily call ocamlfind, be it for configuration or compilation. Pursuing the ocamlbuild philosophy of having a simple solution for simple problems, a built-in tag syntax and associated rules should allow such simple (e.g. regular) projects to easily use a package registered in ocamlfind. I'm thinking of a tag use_ocamlfind(PROJECTNAME) so that you could write: <myproject.{byte,native}>: use_ocamlfind(pcre), use_ocamlfind(mysql) Of course you still need to register those packages in ocamlfind. As Ocaml binaries are brittle, a solution for compiling from source such as Godi is welcome. However Godi needs to be kept up-to-date with respect to the Ocaml distribution... it is currently only available for 3.09! -- Berke DURAK ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] On module distribution 2008-01-15 13:38 ` [Caml-list] " Berke Durak @ 2008-01-15 14:24 ` Gerd Stolpmann 0 siblings, 0 replies; 12+ messages in thread From: Gerd Stolpmann @ 2008-01-15 14:24 UTC (permalink / raw) To: Berke Durak; +Cc: Bünzli Daniel, caml-list caml-list > As Ocaml binaries are brittle, a solution for compiling from source such > as Godi is welcome. > > However Godi needs to be kept up-to-date with respect to the Ocaml > distribution... it is currently only available for 3.09! Sorry, but this is not true. You can use Godi with Ocaml 3.10 by passing "-section 3.10" to the bootstrap script. It is right is that Godi for Ocaml 3.10 is not yet publicly announced. The reason is that a few libraries are not kept up-to-date. In particular, there are still libraries using camlp4 that are not available for 3.10. So we simply cannot recommend blindly upgrading to 3.10 yet. It is unclear how we go on. Maybe we drop some libraries. Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: On module distribution 2008-01-15 11:20 On module distribution Bünzli Daniel 2008-01-15 13:38 ` [Caml-list] " Berke Durak @ 2008-01-15 15:07 ` Sylvain Le Gall 2008-01-15 20:41 ` [Caml-list] " Bünzli Daniel [not found] ` <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com> 2008-01-15 18:46 ` [Caml-list] " David Thomas 2 siblings, 2 replies; 12+ messages in thread From: Sylvain Le Gall @ 2008-01-15 15:07 UTC (permalink / raw) To: caml-list On 15-01-2008, Bünzli Daniel <daniel.buenzli@erratique.ch> wrote: > 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. > Unfortunately, a decentralized system has also several drawbacks: * initial specification on how to be part of the decentralized system must be precise and complete enough to not need to update it -- decentralized system always need a clear "contract" to collaborate. This part is by far not tricky if you are not 100% sure of what you want to build and if you have never done it before (it is just like designing a network protocol). * you need to provide a backup foreach node of your system. Otherwise, every node will become a point of failure. This is critical: lets consider you have a package A that build depends on package B, C and D. With a centralized system you "download" point of failure is the central location, either it is up or down. With a decentralized approach your "download" point of failure will be the location of A, B, C and D. You have to find a way to circumvent this problem... * automatic build and different checkup are more easily done in a central repository (because everything is at the same place) * hijack of modules is more easily done in a central repository. This point is important because, OSS developper tends to be Missing In Action. * ... In fact, Debian user reading this will see that i am having the same sort of arguments that Debian has concerning the other distributions. Debian has developped a very centric repository for all its packages which other Linux distribution have not done. This tends to lead to have more control on the QA of everything. Which is better to my mind. > 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. > You should have a look to DOAP http://usefulinc.com/doap/ > 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 . > I don't agree project and package are not the same thing. You should take into consideration that different distribution have different packaging policy. Trying to have the same packaging policy for every distribution is not feasable (well in fact it is possible but it is a very long term wokr -- something like the Grand Unification Theory). Regards, Sylvain Le Gall ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] Re: On module distribution 2008-01-15 15:07 ` Sylvain Le Gall @ 2008-01-15 20:41 ` Bünzli Daniel 2008-01-15 20:56 ` Vlad Skvortsov ` (2 more replies) [not found] ` <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com> 1 sibling, 3 replies; 12+ messages in thread From: Bünzli Daniel @ 2008-01-15 20:41 UTC (permalink / raw) To: caml-list caml-list Le 15 janv. 08 à 14:38, Berke Durak a écrit : > I think we should rather add to Ocamlbuild a module for calling > ocamlfind, parsing its output, etc. This way ocamlbuild plugins > could easily call ocamlfind, be it for configuration or compilation. My problem with ocamlfind is that it takes too much control over me. Also it doesn't help you with the tedious publishing aspect (which I try to mitigate by using news feeds) and it won't help you with the binary update problem. Le 15 janv. 08 à 16:07, Sylvain Le Gall a écrit : > Unfortunately, a decentralized system has also several drawbacks: [...] Yes of course. But the point is that we already have a decentralized system. All these tarballs that are referenced from the hump and not part of godi. My aim is to be able to quickly install or publish such decentralized bits. Currently these two tasks take too much time: using them, because everyone does it its own way, publishing them, because you have to devise your own way (make a readme, think about how to structure the tarball how to manage releases, announce on the mailing list, etc.). The idea is to simplify all this uninteresting business to entice people to share their modules. Lowering the bar may mean a decrease in quality but in the end good modules and reliable publishers will be identified by the community. Also note that the proposal in itself doesn't prevent the development of a more authoritative, centralized and stable source of packages. > In fact, Debian user reading this will see that i am having the same > sort of arguments that Debian has concerning the other distributions. > Debian has developped a very centric repository for all its packages > which other Linux distribution have not done. This tends to lead to > have > more control on the QA of everything. Which is better to my mind. If the aim is to support an operating system I completly agree with you. But the aim of my proposal is to support the ocaml development bazaar which is not the same thing. >> 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 . >> > > I don't agree project and package are not the same thing. You should > take into consideration that different distribution have different > packaging policy. That's not what I say. The _if_ of the last sentence is for when you are developing an ocaml library with dependencies in that case your project may become a package. If you are making an end-user application this should not be used as a distribution mechanism, I explicitly say that in the proposal, it is a tool for ocaml _developers_. But still from a developer perspective it is a good thing to have a mechanical way to track the external dependencies of your project whether this is an end-user application or not, hence packages should be (conceptually) managed per project. Best, Daniel ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] Re: On module distribution 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 2 siblings, 1 reply; 12+ messages in thread From: Vlad Skvortsov @ 2008-01-15 20:56 UTC (permalink / raw) To: Bünzli Daniel; +Cc: caml-list caml-list Bünzli Daniel wrote: > Le 15 janv. 08 à 14:38, Berke Durak a écrit : > >> I think we should rather add to Ocamlbuild a module for calling >> ocamlfind, parsing its output, etc. This way ocamlbuild plugins could >> easily call ocamlfind, be it for configuration or compilation. > > My problem with ocamlfind is that it takes too much control over me. > Also it doesn't help you with the tedious publishing aspect (which I > try to mitigate by using news feeds) and it won't help you with the > binary update problem. > > Le 15 janv. 08 à 16:07, Sylvain Le Gall a écrit : > >> Unfortunately, a decentralized system has also several drawbacks: > [...] > > Yes of course. But the point is that we already have a decentralized > system. All these tarballs that are referenced from the hump and not > part of godi. My aim is to be able to quickly install or publish such > decentralized bits. Currently these two tasks take too much time: > using them, because everyone does it its own way, publishing them, > because you have to devise your own way (make a readme, think about > how to structure the tarball how to manage releases, announce on the > mailing list, etc.). The idea is to simplify all this uninteresting > business to entice people to share their modules. Lowering the bar may > mean a decrease in quality but in the end good modules and reliable > publishers will be identified by the community. > > Also note that the proposal in itself doesn't prevent the development > of a more authoritative, centralized and stable source of packages. I've just started with OCaml, and my immediate perception was that modules and libraries are quite hard to find. This is due to several factors, one being that the web interface for Hump doesn't allow complex searches and stuff, doesn't offer RSS to keep track of updates, etc. Did you guys look at how this problem is solved in Python? There is a standard library module which allows one to write a package metadata in a "minilanguage". Then once the metadata is there, it's possible to use that for packaging (again, through the standard utility) and/or to update the centralized package index (pypi.python.org). It is as easy as: # Create metadata, listing files included into the package and some mandatory fields like version, homepage, author, keywords, etc. $ vi setup.py # Create a tarball for source distribution $ python setup.py sdist # ...or a binary distribution $ python setup.py bdist # Now tell the world we have a new package here $ python setup.py register More information here: http://docs.python.org/dist/setup-script.html My 0.02. -- Vlad Skvortsov, vss@73rus.com, http://vss.73rus.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] Re: On module distribution 2008-01-15 20:56 ` Vlad Skvortsov @ 2008-01-16 10:19 ` Maxence Guesdon 0 siblings, 0 replies; 12+ messages in thread From: Maxence Guesdon @ 2008-01-16 10:19 UTC (permalink / raw) To: caml-list On Tue, 15 Jan 2008 12:56:13 -0800 Vlad Skvortsov <vss@73rus.com> wrote: > Bünzli Daniel wrote: > > Le 15 janv. 08 à 14:38, Berke Durak a écrit : > > > >> I think we should rather add to Ocamlbuild a module for calling > >> ocamlfind, parsing its output, etc. This way ocamlbuild plugins could > >> easily call ocamlfind, be it for configuration or compilation. > > > > My problem with ocamlfind is that it takes too much control over me. > > Also it doesn't help you with the tedious publishing aspect (which I > > try to mitigate by using news feeds) and it won't help you with the > > binary update problem. > > > > Le 15 janv. 08 à 16:07, Sylvain Le Gall a écrit : > > > >> Unfortunately, a decentralized system has also several drawbacks: > > [...] > > > > Yes of course. But the point is that we already have a decentralized > > system. All these tarballs that are referenced from the hump and not > > part of godi. My aim is to be able to quickly install or publish such > > decentralized bits. Currently these two tasks take too much time: > > using them, because everyone does it its own way, publishing them, > > because you have to devise your own way (make a readme, think about > > how to structure the tarball how to manage releases, announce on the > > mailing list, etc.). The idea is to simplify all this uninteresting > > business to entice people to share their modules. Lowering the bar may > > mean a decrease in quality but in the end good modules and reliable > > publishers will be identified by the community. > > > > Also note that the proposal in itself doesn't prevent the development > > of a more authoritative, centralized and stable source of packages. > > I've just started with OCaml, and my immediate perception was that > modules and libraries are quite hard to find. This is due to several > factors, one being that the web interface for Hump doesn't allow complex > searches and stuff, doesn't offer RSS to keep track of updates, etc. There is an RSS channel on this page: http://caml.inria.fr/resources/index.en.html in the hump box on the right. The url of the channel is: http://caml.inria.fr/hump.rss Regards, Maxence Guesdon ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] Re: On module distribution 2008-01-15 20:41 ` [Caml-list] " Bünzli Daniel 2008-01-15 20:56 ` Vlad Skvortsov @ 2008-01-15 20:56 ` Will Farr 2008-01-15 21:27 ` Sylvain Le Gall 2 siblings, 0 replies; 12+ messages in thread From: Will Farr @ 2008-01-15 20:56 UTC (permalink / raw) To: caml-list caml-list You might take a look at the PLaneT (http://planet.plt-scheme.org/) system for PLT Scheme. It's a centralized repository, so not directly applicable if you stick with your current idea, but they handle the issues if interdependence and ease of publishing with *extreme* elegance (from my point of view---I've published a few PLaneT packages), and I think they have a paper discussing some of the design issues they've come across. (The paper is, in fact, here: http://scheme2006.cs.uchicago.edu/04-matthews.pdf .) Good luck, and have fun at the conference! Will On Jan 15, 2008 3:41 PM, Bünzli Daniel <daniel.buenzli@erratique.ch> wrote: > Yes of course. But the point is that we already have a decentralized > system. All these tarballs that are referenced from the hump and not > part of godi. My aim is to be able to quickly install or publish such > decentralized bits. Currently these two tasks take too much time: > using them, because everyone does it its own way, publishing them, > because you have to devise your own way (make a readme, think about > how to structure the tarball how to manage releases, announce on the > mailing list, etc.). The idea is to simplify all this uninteresting > business to entice people to share their modules. Lowering the bar may > mean a decrease in quality but in the end good modules and reliable > publishers will be identified by the community. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: On module distribution 2008-01-15 20:41 ` [Caml-list] " Bünzli Daniel 2008-01-15 20:56 ` Vlad Skvortsov 2008-01-15 20:56 ` Will Farr @ 2008-01-15 21:27 ` Sylvain Le Gall 2 siblings, 0 replies; 12+ messages in thread From: Sylvain Le Gall @ 2008-01-15 21:27 UTC (permalink / raw) To: caml-list On 15-01-2008, Bünzli Daniel <daniel.buenzli@erratique.ch> wrote: > Le 15 janv. 08 à 14:38, Berke Durak a écrit : > >> I think we should rather add to Ocamlbuild a module for calling >> ocamlfind, parsing its output, etc. This way ocamlbuild plugins >> could easily call ocamlfind, be it for configuration or compilation. > > My problem with ocamlfind is that it takes too much control over me. > Also it doesn't help you with the tedious publishing aspect (which I > try to mitigate by using news feeds) and it won't help you with the > binary update problem. > > Le 15 janv. 08 à 16:07, Sylvain Le Gall a écrit : > >> Unfortunately, a decentralized system has also several drawbacks: > [...] > > Yes of course. But the point is that we already have a decentralized > system. All these tarballs that are referenced from the hump and not > part of godi. My aim is to be able to quickly install or publish such > decentralized bits. Currently these two tasks take too much time: > using them, because everyone does it its own way, publishing them, > because you have to devise your own way (make a readme, think about > how to structure the tarball how to manage releases, announce on the > mailing list, etc.). The idea is to simplify all this uninteresting > business to entice people to share their modules. Lowering the bar may > mean a decrease in quality but in the end good modules and reliable > publishers will be identified by the community. > > Also note that the proposal in itself doesn't prevent the development > of a more authoritative, centralized and stable source of packages. > I think one of the best way to manage the bazaar is to follow the track of some other major languages (let say Perl) that has implemented a standard way to publish project with a good naming scheme et al (let say CPAN). My point is that unfortunately managing the bazaar of OCaml require more standard procedure and knowledge foreach member of the community. You will never reach the 100% compliance for every bits of the humps. If you get something like 10% it will already be something great (i really think it). As in debian, you need to have some kind of required knowledge to begin publishing good project. You cannot speed up this step. BUT after having this standard common knowledge that leads to an uniform packaging, you will be able to perform the second task: using them quickly... FYI, i recommend you to browse a little bit about Perl/CPAN, this is a great work about a centralized module publishing system: http://pause.perl.org Extract, to show you what mean a required basic knowledge: [quote] Your duties, the basics, traps We trust that you have read the perlmodinstall, perlmodlib, perlmodstyle, and perlnewmod manpages and that you regularly check out uploads to CPAN and that you have been watching CPAN activities for a while to have an impression of how things fit together. It usually boils down to (slogan shamelessly stolen and adapted from sudo(1)): 1. Think, better even talk before you upload 2. Respect the namespace of others [/quote] In particular perlmodstyle, perlmodlid and perlmodinstall are really a good way to understand years of publishing... >>> 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 . >>> >> >> I don't agree project and package are not the same thing. You should >> take into consideration that different distribution have different >> packaging policy. > > That's not what I say. The _if_ of the last sentence is for when you > are developing an ocaml library with dependencies in that case your > project may become a package. If you are making an end-user > application this should not be used as a distribution mechanism, I > explicitly say that in the proposal, it is a tool for ocaml > _developers_. But still from a developer perspective it is a good > thing to have a mechanical way to track the external dependencies of > your project whether this is an end-user application or not, hence > packages should be (conceptually) managed per project. > OK, sorry i don't have understand what you have written. Regards, Sylvain Le Gall ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com>]
* Fwd: [Caml-list] Re: On module distribution [not found] ` <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com> @ 2008-01-16 0:11 ` Jonathan Bryant 2008-01-16 5:26 ` Jonathan Bryant 1 sibling, 0 replies; 12+ messages in thread From: Jonathan Bryant @ 2008-01-16 0:11 UTC (permalink / raw) To: caml-list [-- Attachment #1: Type: text/plain, Size: 1593 bytes --] Oops. Forgot to CC the list... ---------- Forwarded message ---------- From: Jonathan Bryant <watersofmemory@gmail.com> Date: Jan 15, 2008 7:10 PM Subject: Re: [Caml-list] Re: On module distribution To: Sylvain Le Gall <sylvain@le-gall.net> On Jan 15, 2008 10:07 AM, Sylvain Le Gall <sylvain@le-gall.net> wrote: > > Unfortunately, a decentralized system has also several drawbacks: > [...] > * you need to provide a backup foreach node of your system. Otherwise, > every node will become a point of failure. This is critical: lets > consider you have a package A that build depends on package B, C and > D. With a centralized system you "download" point of failure is the > central location, either it is up or down. With a decentralized > approach your "download" point of failure will be the location of A, > B, C and D. You have to find a way to circumvent this problem... > > [...] Why not take a Bittorrent style approach to decentralization? Given that a package format is agreed upon, you can download a small file that has basic info such as an MD5 sum. Every person has a P2P-style client that caches any packages they've downloaded, and when you download a new package, pulls from everybody who has a copy with the same MD5 sum, and after it is downloaded it is offered for redistribution. Updates could simply search for all users who are offering the old version and alert them that there is a new version. Any dependencies will be offered at least as much as the packages that depend on them. That eliminates the single point of failure at least. --Jonathan [-- Attachment #2: Type: text/html, Size: 2376 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Fwd: [Caml-list] Re: On module distribution [not found] ` <b256a4c50801151610o54b86a6dv1e3b54616b6bd9f0@mail.gmail.com> 2008-01-16 0:11 ` Fwd: [Caml-list] " Jonathan Bryant @ 2008-01-16 5:26 ` Jonathan Bryant 1 sibling, 0 replies; 12+ messages in thread From: Jonathan Bryant @ 2008-01-16 5:26 UTC (permalink / raw) To: caml-list [-- Attachment #1: Type: text/plain, Size: 1663 bytes --] I forgot to CC the list, and then I sent it from the wrong email address. Sorry for multiple posts... ---------- Forwarded message ---------- From: Jonathan Bryant <watersofmemory@gmail.com> Date: Jan 15, 2008 7:10 PM Subject: Re: [Caml-list] Re: On module distribution To: Sylvain Le Gall <sylvain@le-gall.net> On Jan 15, 2008 10:07 AM, Sylvain Le Gall <sylvain@le-gall.net> wrote: > > Unfortunately, a decentralized system has also several drawbacks: > [...] > * you need to provide a backup foreach node of your system. Otherwise, > every node will become a point of failure. This is critical: lets > consider you have a package A that build depends on package B, C and > D. With a centralized system you "download" point of failure is the > central location, either it is up or down. With a decentralized > approach your "download" point of failure will be the location of A, > B, C and D. You have to find a way to circumvent this problem... > > [...] Why not take a Bittorrent style approach to decentralization? Given that a package format is agreed upon, you can download a small file that has basic info such as an MD5 sum. Every person has a P2P-style client that caches any packages they've downloaded, and when you download a new package, pulls from everybody who has a copy with the same MD5 sum, and after it is downloaded it is offered for redistribution. Updates could simply search for all users who are offering the old version and alert them that there is a new version. Any dependencies will be offered at least as much as the packages that depend on them. That eliminates the single point of failure at least. --Jonathan [-- Attachment #2: Type: text/html, Size: 2447 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Caml-list] On module distribution 2008-01-15 11:20 On module distribution Bünzli Daniel 2008-01-15 13:38 ` [Caml-list] " Berke Durak 2008-01-15 15:07 ` Sylvain Le Gall @ 2008-01-15 18:46 ` David Thomas 2 siblings, 0 replies; 12+ messages in thread From: David Thomas @ 2008-01-15 18:46 UTC (permalink / raw) To: caml-list One thing that might well be worth consideration is hooks between whatever module system we devise and various platform specific package management systems. I've no idea what form these should take, but it seems to me there's a bit too much SEP in this space. ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2008-01-16 10:17 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-01-15 11:20 On module distribution Bünzli Daniel 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
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).