guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ’guix package --export-manifest’ using ’@version’?


From: Ludovic Courtès
Subject: Re: ’guix package --export-manifest’ using ’@version’?
Date: Thu, 07 Jul 2022 17:13:43 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux)

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

> On Thu, 07 Jul 2022 at 09:57, Ludovic Courtès <ludo@gnu.org> wrote:

[...]

>> It is a departure from traditional package managers, and admittedly
>> surprising to newcomers.  However, my take on this is that we should be
>> very upfront about symbolic vs. exact reproducibility.  We would muddy
>> the waters if we gave version strings the same importance as in other
>> tools, when we know that a version string means very little.
>
> I miss about what you disagree because «We would muddy the waters if we
> gave version strings the same importance as in other tools, when we know
> that a version string means very little.» is the exact root of my
> comment.
>
> By returning,
>
>         (specifications->manifest
>         (list "python" "python-numpy"))
>
> or
>
>         (specifications->manifest
>         (list "python@3.8" "python-numpy@1.17"))
>
> depending on the current Guix is just doing that: «muddy the waters».
>
> Instead, I think ’--export-manifest’ should *always* return:
>
>         (specifications->manifest
>         (list "python" "python-numpy"))
>
> without ’@x.y.z’.  Other said, be in agreement with the comment:

Oh sorry, I had misunderstood your comment.

The “@X.Y” bit is added only when necessary to disambiguate the package
spec.  So with today’s Guix, we have:

--8<---------------cut here---------------start------------->8---
$ guix shell guile --export-manifest
;; What follows is a "manifest" equivalent to the command line you gave.
;; You can store it in a file that you may then pass to any 'guix' command
;; that accepts a '--manifest' (or '-m') option.

(specifications->manifest (list "guile"))
$ guix shell guile@2.2 --export-manifest
guix shell: warning: ambiguous package specification `guile@2.2'
guix shell: warning: choosing guile@2.2.7 from gnu/packages/guile.scm:250:2
guix shell: warning: ambiguous package specification `guile@2.2'
guix shell: warning: choosing guile@2.2.7 from gnu/packages/guile.scm:250:2
;; What follows is a "manifest" equivalent to the command line you gave.
;; You can store it in a file that you may then pass to any 'guix' command
;; that accepts a '--manifest' (or '-m') option.

(specifications->manifest (list "guile@2.2.7"))
$ guix shell guile@2.0 --export-manifest
;; What follows is a "manifest" equivalent to the command line you gave.
;; You can store it in a file that you may then pass to any 'guix' command
;; that accepts a '--manifest' (or '-m') option.

(specifications->manifest (list "guile@2.0"))
--8<---------------cut here---------------end--------------->8---

In these cases, we cannot omit the “@X.Y” bit because the manifest would
then designate something different.

Does that make sense?

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]