GNU bug report logs - #47618
"guix upgrade" and "guix package -u ." inconsistency

Previous Next

Package: guix;

Reported by: Brendan Tildesley <btild <at> mailbox.org>

Date: Tue, 6 Apr 2021 14:52:02 UTC

Severity: normal

To reply to this bug, email your comments to 47618 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#47618; Package guix. (Tue, 06 Apr 2021 14:52:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Brendan Tildesley <btild <at> mailbox.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 06 Apr 2021 14:52:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Brendan Tildesley <btild <at> mailbox.org>
To: "bug-guix <at> gnu.org" <bug-guix <at> gnu.org>
Subject: "guix upgrade" and "guix package -u ." inconsistency
Date: Tue, 6 Apr 2021 13:20:01 +0200 (CEST)
[Message part 1 (text/plain, inline)]
Below, --do-not-upgrade appears to be behaving like "--only-upgrade". I realised
this comes about because I didn't use '='. guix upgrade takes all other
arguments to be upgrade regex's, but it still seems. _wrong_.  Some long
arguments in guix require and = sign after them, and the cli help indicates as
much, but --do-not-upgrade seems to break that pattern and takes all arguments
after it to be regexes's to match and not upgrade.  flags that have this
behaviour of acting on all arguments after them should indicate clearly they do
that. and indicated if the '=' is optional using some intuitive notation.
The line:

--do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP

suggest it must take either no argument or only '=something'.

guix upgrade --help says that it is an alias for 'guix package -u .'. My
understanding is that the meaning of alias is something that can be substituted
and it will behave the same, like Bash aliases.  We should change 'guix
upgrade''s behaviour to be like 'guix package -u', taking all arguments after
--do-not-upgrade as regex's to not upgrade.


b <at> jiu ~/code/guix [env]$ guix upgrade --do-not-upgrade '^[a-n]'
The following packages will be upgraded:
audacity          (dependencies or package changed)
cool-retro-term   (dependencies or package changed)
deluge            (dependencies or package changed)
diffoscope        170 → 171
emacs             (dependencies or package changed)
eog               (dependencies or package changed)
evince            (dependencies or package changed)
ffmpeg            (dependencies or package changed)
git               2.31.0 → 2.31.1
git:send-email    2.31.0 → 2.31.1
gnome-font-viewer (dependencies or package changed)
gnome-tweaks      (dependencies or package changed)
godot             (dependencies or package changed)
ibus              (dependencies or package changed)
ibus-anthy        (dependencies or package changed)
icecat            (dependencies or package changed)
keepassxc         (dependencies or package changed)
lm-sensors        (dependencies or package changed)
lollypop          (dependencies or package changed)
mpv               (dependencies or package changed)
mumble            (dependencies or package changed)

62.6 MB will be downloaded
^C
b <at> jiu ~/code/guix [env]$ guix package -u . --do-not-upgrade '^[a-n]'
The following packages will be upgraded:
obs                (dependencies or package changed)
piper              (dependencies or package changed)
playonlinux        (dependencies or package changed)
rhythmbox          (dependencies or package changed)
stellarium         (dependencies or package changed)
syncthing-gtk      (dependencies or package changed)
tinc               (dependencies or package changed)
transmission:gui   (dependencies or package changed)
ungoogled-chromium (dependencies or package changed)
vlc                (dependencies or package changed)
youtube-dl         (dependencies or package changed)
zrythm             (dependencies or package changed)

The following derivation will be built:
/gnu/store/6ldzv7ilcsg4ah8vyig9vyh9y79yz6m1-tinc-1.1pre17.drv

[Message part 2 (text/html, inline)]

This bug report was last modified 3 years and 14 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.