unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: zimoun <zimon.toutoune@gmail.com>
To: Olivier Dion <olivier.dion@polymtl.ca>,
	"Thompson, David" <dthompson2@worcester.edu>,
	guix-devel <guix-devel@gnu.org>
Subject: Re: Emacs integration for 'guix shell'
Date: Tue, 27 Sep 2022 16:39:29 +0200	[thread overview]
Message-ID: <86ill8vq3i.fsf@gmail.com> (raw)
In-Reply-To: <878rm5m37b.fsf@laura>

Hi,

On Tue, 27 Sep 2022 at 08:06, Olivier Dion via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> wrote:

> --8<---------------cut here---------------start------------->8---
> #!/bin/sh
>  guix time-machine -C channels.scm    \
>      -- shell --pure                  \
>      --development $(basename $(pwd)) \
>       -- $@
> --8<---------------cut here---------------end--------------->8---
>
> Of course you need to A) have a channels.scm in your project and B) have
> your project directory named after the package's name in your
> channel.

Personally, I prefer the ’-m manifest.scm’ approach.  Or maybe the ’-f
guix.scm’ approach.

Because I use ’guixify’ for more than just “developing“.  I mean
sometimes the manifest is just a list of packages, sometimes it contains
some development dependencies, sometimes some extra package definition,
etc.

Then this file manifest.scm or guix.scm is part of the project, i.e.,
included in the Git tree of the project.  I can re-use it for ‘guix pack
-f docker -m mnifest.scm’ and generate a Docker pack for colleagues.  I
can use it for ‘guix weather’ and know if the substitutes are there
before upgrading.  Etc.



> I was using channel too before!  It felt good to pin dependencies to a
> version so it does not break while you're developing.  Howeverff, I felt
> that the time-machine was taking enormous time everytime a push was made
> to a channel.

It is because you are not using a pinned channel and instead following
the HEAD of some channels.

Because if you store:

    guix describe -f channels.scm > channels.scm

then the first time you can ‘guix time-machine -C channels.scm’ I agree
it can take some time (because a compute derivation).  But then, each
new invocation should be faster because it is cached.

However, indeed it is possible that ‘guix gc’ cleans up the temporary
profile; depending on how often you are working inside this project
environment.

To avoid this issue, sometime I create a profile inside the project
directory,

    guix time-machine -C channels.scm \
         -- package -m manifest.scm   \
         -p profile

then sometime I run ‘guix package --search-paths -p profile’; using some
options of search-paths as prefix, suffix or exact.

Well, the point with this profile is to protect against garbage
collection; although it is not a bullet-proof protection.  I have never
really used ‘guix shell --root’ but it is probably what is needed.

All that to say that I am not totally happy with my workflow because I
do not know what interface I want. :-)


Cheers,
simon






  reply	other threads:[~2022-09-27 18:32 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-26 17:48 Emacs integration for 'guix shell' Thompson, David
2022-09-26 18:30 ` Olivier Dion via Development of GNU Guix and the GNU System distribution.
2022-09-27  2:44   ` Maxim Cournoyer
2022-09-27 11:13     ` Thompson, David
2022-09-28 14:11       ` Maxim Cournoyer
2022-09-27  9:15   ` zimoun
2022-09-27 12:06     ` Olivier Dion via Development of GNU Guix and the GNU System distribution.
2022-09-27 14:39       ` zimoun [this message]
2022-09-26 18:58 ` pinoaffe
2022-09-28  7:36 ` Efraim Flashner
2022-09-28 12:42   ` Efraim Flashner
2022-10-01  4:47 ` James Thomas
2022-10-01  8:22 ` Philip Kaludercic
2022-10-01 11:58   ` Thompson, David
2022-10-01 14:38     ` Philip Kaludercic
2022-12-06 14:59       ` [EXT] " Thompson, David

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86ill8vq3i.fsf@gmail.com \
    --to=zimon.toutoune@gmail.com \
    --cc=dthompson2@worcester.edu \
    --cc=guix-devel@gnu.org \
    --cc=olivier.dion@polymtl.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).