From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Hinsen Subject: Re: Profiles/manifests-related command line interface enhancements Date: Sun, 17 Nov 2019 12:30:11 +0100 Message-ID: References: <87mudrxvs8.fsf@ambrevar.xyz> <87mudd59ho.fsf@gnu.org> <877e4glyc3.fsf@ambrevar.xyz> <87v9rxx8ri.fsf@gnu.org> <87r227qxf7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:40113) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iWIkx-00046K-R9 for guix-devel@gnu.org; Sun, 17 Nov 2019 06:30:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iWIkw-0002Hb-Dt for guix-devel@gnu.org; Sun, 17 Nov 2019 06:30:15 -0500 In-Reply-To: <87r227qxf7.fsf@gnu.org> 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: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org Ludovic Court=C3=A8s writes: > To me it=E2=80=99s not entirely clear that a unified command would be eas= ier to > use for newcomers. For example, I=E2=80=99m not fond of =E2=80=9Cguix pr= ofile=E2=80=9D as a Indeed. It's also not clear to me if a single command line package for beginners and power users is the best way to go. Maybe we should have two levels of commands, with tutorials using only the simpler one. > So I definitely agree we need to homogenize what =E2=80=98guix environmen= t=E2=80=99 and > =E2=80=98guix package=E2=80=99 currently provide, but I=E2=80=99m not sur= e where to go from > there. Perhaps we need to discuss on concrete CLI proposals to have a > better idea? Dunno! If enough people are willing to work on this (beginners included!), we could run a "CLI working group" that plays with alternatives to the current CLI, implemented as a separate Guile package so it won't perturb business as usual. That requires a few people working on implementation, and a much larger group willing to test-drive the design(s) and provide feedback. > I have an actionable wishlist though: :-) > > 1. Arrange so that =E2=80=98--ad-hoc=E2=80=99 becomes the default in = =E2=80=98guix > environment=E2=80=99, and add a =E2=80=98--devel=E2=80=99 (?) option= for what=E2=80=99s currently > the default. That sounds good to me, with > 2. Add that same =E2=80=98--devel=E2=80=99 option to =E2=80=98guix pack= age=E2=80=99. being the obvious (and less controversial) complement. I'd probably prefer the more descriptive =E2=80=93-inputs-of for the option= name. > Tricky because of compatibility considerations, but would be an That's the eternal question! >> - Better support for adding/managing channels at the user account >> level. Users shouldn't have to edit Guile code (unless they want to). > > You mean like =E2=80=98guix channel add URL=E2=80=99? Are you looking at= this from a UI > perspective? Yes. > Are you also suggesting a =E2=80=9CGuixHub=E2=80=9D (I already hate that = name :-)) that That's not something I personally care about (I am all for the distributed Web), but if there's a demand, why not. >> - Support for creating and managing channels without having to >> descend to the file and repository level. > > Not entirely sure what you mean. Could you give examples of what you=E2= =80=99d > type to create a channel, say? For management, something like git's remotes: guix channel add my-channel URL guix channel remove my-channel guix channel describe my-channel guix channel show-all For channel creation, something like git's init: guix make-channel directory-name That would create the directory name, run "git init", add minimal code making a template (something like the "hello" package), and perhaps a file with a summary of instructions. >> - Support for something one could call super-packages or named >> manifests. Named package groups that live in a channel (or a guix.scm >> distributed with software external to Guix). Perhaps parametrizable >> and/or containing configuration files, so you could put something >> like (nginx #:port 8080) into a manifest file. > > So this thing would be a profile + services? A bit less than a service, because no process would be started or managed. I might want to run that nginx instance manually and/or under my user account. Also on a foreign distribution that doesn't know about Guix services. Think of something like a Jupyter server. Cheers, Konrad.