From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thompson, David" Subject: =?UTF-8?B?UmU6IOKAnEd1aXggUHJvZmlsZXMgaW4gUHJhY3RpY2XigJ0=?= Date: Fri, 25 Oct 2019 12:36:01 -0400 Message-ID: References: <87r231rulr.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <87r231rulr.fsf@gnu.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix Cc: guix-devel List-Id: guix-devel.gnu.org On Fri, Oct 25, 2019 at 6:57 AM Ludovic Court=C3=A8s wrote: > > Hello Guix! > > Here=E2=80=99s a new blog post by Pierre Neidhardt entitled =E2=80=9CGuix= Profiles in > Practice=E2=80=9D: > > https://guix.gnu.org/blog/2019/guix-profiles-in-practice/ > > A great discussion on the benefits of manifests and on ways to manage > several profiles! Great article! I spotted a typo in the first paragraph: "on a same system" should be "on the same system." The section below reminds me about some unfinished work from back when I wrote 'guix environment': Eventually, we set to work on that project again, so we run guix environment -m manifest.scm. But now we have to wait for Guix to build and install stuff! This is indeed a frustration. It takes a bunch of extra switches to have 'guix environment' create a profile and even I don't bother with it, just opting to build a new profile if I've upgraded guix since the last time I worked on the project. This gets me into trouble when I upgrade guix and decide that I want to work on the project while I'm somewhere with no network connection or too slow of a connection to download everything in a reasonable time. It has happened to me multiple times while commuting by train. 'guix environment' is a very composable command, and it's not clear to me how I would add the stuff I want onto it and it's even less clear if it's a good idea. Probably not. So, I wonder if maybe a new subcommand, say 'guix develop', could address this common development use-case while allowing 'guix environment' to continue being the swiss army knife that it is. Some simple naming conventions could make this tool "just work." Running 'guix develop' would check for a profile symlink with some canonical name, for example '.guix-develop-profile'. If it exists, it applies the environment variables and spawns a subshell. If it doesn't exist, it looks for a 'develop.scm' file (canonical name TBD), builds the profile, symlinks it to '.guix-develop-profile', and then does the prior steps. The tool would provide a mechanism to update, etc. and it could even be expanded later to spawn services like databases. - Dave