unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#22017: Pinning a Guix version
@ 2015-11-26 13:30 Ludovic Courtès
  2015-11-26 14:04 ` Ludovic Courtès
  2019-11-27 17:06 ` bug#22017: Bug #22017 Hunting: " zimoun
  0 siblings, 2 replies; 5+ messages in thread
From: Ludovic Courtès @ 2015-11-26 13:30 UTC (permalink / raw)
  To: 22017

Hello!

In some cases, it’s useful to be able to pin a particular Guix version
and to use that version (see the RepPar paper for some examples.)

A naive way to do that is:

  git clone …/guix.git my-pinned-guix
  (cd my-pinned-guix; git checkout deadbeef)
  guix package -L my-pinned-guix --manifest=my-manifest.scm

However, this is currently broken for several reasons:

  1. ‘fold-packages’ recursively traverses ‘my-pinned-guix’ for .scm
     files, and on its way it finds build-aux/build-self.scm,
     tests/*.scm, and emacs/*.scm, which breaks it all.  These
     directories have to be explicitly removed before we can do
     something.

     Internally, ‘%package-module-path’ can have entries that are pairs
     and where the cdr restricts the search of .scm files to a
     sub-directory.  We should expose that facility to -L and
     ‘GUIX_PACKAGE_PATH’ using some special syntax.

     That way, one could do (say):

       guix package -L my-pinned-guix,gnu/packages

     meaning that only the ‘gnu/packages’ sub-directory is searched.

     OTOH, it may be advisable to use the (guix …) modules from
     ‘my-pinned-guix’ and not just the (gnu packages …) modules, because
     the former obviously contribute to the final result.

  2. The ‘gnu/packages/patches’ sub-directory is not automatically added
     to the search path, so in fact one has to run:

       guix package -L my-pinned-guix \
         -L my-pinned-guix/gnu/packages/patches …
  
     so that patches are found.  Not convenient.

  3. When doing so, we get loads of:

     ;;; note: source file /tmp/guix/guix/build/perl-build-system.scm
     ;;;       newer than compiled /home/ludo/src/guix/guix/build/perl-build-system.go

     We should silence Guile.

  4. Related to #1: since everything is evaluated, this is ~10 times
     slower than the normal thing.

I think ‘guix pull’ would be a good place to add support for tagging
Guixes and similar, but it would be good if the naive approach above
would work just as well.

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#22017: Pinning a Guix version
  2015-11-26 13:30 bug#22017: Pinning a Guix version Ludovic Courtès
@ 2015-11-26 14:04 ` Ludovic Courtès
  2019-11-27 17:06 ` bug#22017: Bug #22017 Hunting: " zimoun
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2015-11-26 14:04 UTC (permalink / raw)
  To: 22017

See <http://permalink.gmane.org/gmane.linux.distributions.nixos/18703>
for a good source of inspiration!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#22017: Bug #22017 Hunting: Pinning a Guix version
  2015-11-26 13:30 bug#22017: Pinning a Guix version Ludovic Courtès
  2015-11-26 14:04 ` Ludovic Courtès
@ 2019-11-27 17:06 ` zimoun
  2019-11-28  8:34   ` Ludovic Courtès
  1 sibling, 1 reply; 5+ messages in thread
From: zimoun @ 2019-11-27 17:06 UTC (permalink / raw)
  To: 22017, Ludovic Courtès

Hi Ludo,

The bug [1] describes a wishlist about pinning Guix version. I think
it is almost done.

[1] http://issues.guix.gnu.org/issue/22017


You wrote:

--8<---------------cut here---------------start------------->8---
  git clone …/guix.git my-pinned-guix
  (cd my-pinned-guix; git checkout deadbeef)
  guix package -L my-pinned-guix --manifest=my-manifest.scm
--8<---------------cut here---------------end--------------->8---

which is now possible with

  guix pull --commit=deadbeef
  guix package -m my-manifest.scm

Moreover, "guix time-machine" also handles such use case. If I understand well.


However, you wrote:

--8<---------------cut here---------------start------------->8---
I think ‘guix pull’ would be a good place to add support for tagging
Guixes and similar, but it would be good if the naive approach above
would work just as well.
--8<---------------cut here---------------end--------------->8---

and it is not currently supported, AFAIK.

Recently, a lot of new features have been discussed on guix-devel.
This one has not been raised: add local tags to ease the navigation
through different versions of Guix. It is not clear to me if it should
be under "guix pull", e.g., "guix pull --tag=add foo" or another
command "guix tag add foo".

Because it is an really old bug, I am not sure that this whishlist
will efficiently work as a reminder, so I am inclined to close it or
maybe change the title or raise this very tagging feature to
guix-devel.


What do you think?


Cheers,
simon

--

As source of inspiration, you provided this link:

--8<---------------cut here---------------start------------->8---
See <http://permalink.gmane.org/gmane.linux.distributions.nixos/18703>
for a good source of inspiration!
--8<---------------cut here---------------end--------------->8---

which is now broken. )-:



Cheers,
simon

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#22017: Bug #22017 Hunting: Pinning a Guix version
  2019-11-27 17:06 ` bug#22017: Bug #22017 Hunting: " zimoun
@ 2019-11-28  8:34   ` Ludovic Courtès
  2019-11-28 10:53     ` zimoun
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2019-11-28  8:34 UTC (permalink / raw)
  To: zimoun; +Cc: 22017

Hello!

zimoun <zimon.toutoune@gmail.com> skribis:

> You wrote:
>
>   git clone …/guix.git my-pinned-guix
>   (cd my-pinned-guix; git checkout deadbeef)
>   guix package -L my-pinned-guix --manifest=my-manifest.scm
>
>
> which is now possible with
>
>   guix pull --commit=deadbeef
>   guix package -m my-manifest.scm
>
> Moreover, "guix time-machine" also handles such use case. If I understand well.

Yes, pinning is definitely implemented, and much more nicely than what I
was suggesting back in 2015!

> Recently, a lot of new features have been discussed on guix-devel.
> This one has not been raised: add local tags to ease the navigation
> through different versions of Guix. It is not clear to me if it should
> be under "guix pull", e.g., "guix pull --tag=add foo" or another
> command "guix tag add foo".
>
> Because it is an really old bug, I am not sure that this whishlist
> will efficiently work as a reminder, so I am inclined to close it or
> maybe change the title or raise this very tagging feature to
> guix-devel.

Yes, I think we should close this issue and create a new one about
tagging Guix revisions/channel instances.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#22017: Bug #22017 Hunting: Pinning a Guix version
  2019-11-28  8:34   ` Ludovic Courtès
@ 2019-11-28 10:53     ` zimoun
  0 siblings, 0 replies; 5+ messages in thread
From: zimoun @ 2019-11-28 10:53 UTC (permalink / raw)
  To: 22017-done

On Thu, 28 Nov 2019 at 09:34, Ludovic Courtès <ludo@gnu.org> wrote:

> Yes, I think we should close this issue and create a new one about
> tagging Guix revisions/channel instances.

done. :-)

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-11-28 10:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-26 13:30 bug#22017: Pinning a Guix version Ludovic Courtès
2015-11-26 14:04 ` Ludovic Courtès
2019-11-27 17:06 ` bug#22017: Bug #22017 Hunting: " zimoun
2019-11-28  8:34   ` Ludovic Courtès
2019-11-28 10:53     ` zimoun

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).