From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Hinsen Subject: Re: Profiles/manifests-related command line interface enhancements Date: Tue, 05 Nov 2019 07:26:38 +0100 Message-ID: References: <87mudrxvs8.fsf@ambrevar.xyz> <87mudd59ho.fsf@gnu.org> <877e4glyc3.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:46644) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRsIf-0000Ih-B3 for guix-devel@gnu.org; Tue, 05 Nov 2019 01:26:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iRsId-0001Id-Tz for guix-devel@gnu.org; Tue, 05 Nov 2019 01:26:45 -0500 In-Reply-To: <877e4glyc3.fsf@ambrevar.xyz> 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: Pierre Neidhardt , Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Pierre Neidhardt writes: > I'm actually surprised you find it surprising! :) > I can think of Simon, maybe Konrad(?) and myself who mentioned it > before. Yes, me too. I could add to Pierre's list of use cases, but I prefer to shift the discussion to a higher level. What we have been discussing here recently is the organization of software one level above packages. The vague idea is "groups of packages that go together". Outside of the Guix universe, this is the realm of (Docker) containers. A quick look at what happens in that universe shows that composing such groups of packages corresponds to a frequent need (see docker compose, Kubernetes, ...). In Guix we have ephemeral (environment) vs. persistent (profile), ad-hoc (package -i, environment from package lists, ...) and declarative (manifests). It's a bit of a mess. Hacks such as "environment -r" show that we ought to think about a better overall design. In addition to the two dimensions I mentioned, this should include shareable/re-usable vs. personal. People publish and share Docker images, so why wouldn't they publish and share Guix super-packages? This third dimension also raises the question of where the information (profiles, manifests, ...) are stored and managed (version control?), and how they are referred to (name, filename, ...). And of course how they are composed - in Guile, at the shell level, or yet something else? Cheers, Konrad.