* 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
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 external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.