From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tobias Geerinckx-Rice Subject: Re: A registry for distributed sources and binaries Date: Sun, 24 Jul 2016 07:10:44 +0200 Message-ID: <2eb889dd-8abc-70a2-cabb-a81ac5b1b60b@tobias.gr> References: <579027b7.VHXjhpPxQC3AAmeY%pjotr.public12@email> <8760rznoh1.fsf@gnu.org> <20160722004130.GA10340@thebird.nl> <874m7hk6dz.fsf_-_@gnu.org> <20160724033027.GA20236@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41598) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRBhO-0002LN-US for guix-devel@gnu.org; Sun, 24 Jul 2016 01:11:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bRBhJ-00067d-Qa for guix-devel@gnu.org; Sun, 24 Jul 2016 01:11:33 -0400 In-Reply-To: <20160724033027.GA20236@thebird.nl> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Pjotr Prins , =?UTF-8?Q?Ludovic_Court=c3=a8s?= Cc: guix-devel@gnu.org Pjotr, On 24/07/2016 5:30, Pjotr Prins wrote: > After some thought I am coming to the following: my primary goals are > to lower the barrier to entry, scale out development of Guix packages > and have people collaborate on each others packages without some > centralized 'opinion'. I've also been thinking about this a lot, which I hope will become a less frustrating affair the more I become familiar with Guix internals. > The main problems with the current GUIX_PACKAGE_PATH approach are > [...]you need a Guix source tree[...] Oh. Really? That seems like something that shouldn't be. > My immediate idea was to have a separate project, i.e. a fast and lossy > tree next to the current 'strict' tree. With a distribution server > 'guix publish' that could work for those who are inclined to use a > lossy server (call it experimental or agile package definitions). > > After some thought I decided there is still a major downside - it will > depend on central people to manage this second tree - even if it is > only for merging packages and git trees. That competes with the main > effort too which is inefficient. > > Now I think we may better solve this with something akin to a plugin > system that we have with Rubygems, Python pip etc. A plugin system > that is truly distributed from source (you just need to provide a > registry). One example I worked on before is http://biogems.info/ for > Ruby packages in bioinformatics. I have no experience with those languages. What do you see a ‘registry’ for Guix being, exactly? A long time ago — at least it seems like it[1] — I did run Exherbo, a source-based distribution based in part on Gentoo. Unlike Gentoo, it had no concept of a centralised package repository. Instead, there were a few repositories maintained by core developers (something akin to ‘core’, ‘net’, ‘x11’...) and some others maintained by random developers/userst (‘alice’, ‘bob’, ...). It didn't really matter, though: they were distributed and managed in the same way. It reminds me of Guix's (gnu package ...) collections, actually. Package repositories were simply git/svn/... trees hosted wherever. The only difference between the core repository and the others was that it was configured/trusted by default. You could remove it just like any other, if you liked fixing your system. I was able to run the equivalent of, in Guix pseudocode: ~# guix package --install footools guix package: error: footools: unknown package [maybe it even suggested a list of repositories with packages named ‘footools’, I don't remember] ~# guix repository --add my-cool-repository [what is currently gnu/packages would be just another repository] ~# guix pull [fetches all repositories from their own URI, no central point] ~# guix package --install footools [footools is now installed] ~# guix package --install bar guix package: error: ‘bar’ requires ‘(input "blah")’ which isn't in any of your trusted repositories, try adding one of the following: ... It was an almost perfect system, IMO. Anyway, I'm definitely rambling. > Personally I think this will be very exciting. We can have a > metaregistry that lists all these packages so everyone can track them. Definitely count me as excited, too. :-) Though if it's a fork, I'll cry. Kind regards, T G-R [1]: Some details may be wrong. My brain has an eager garbage collector.