GNU bug report logs - #50473
'guix package' processes command-line %actions in reverse

Previous Next

Package: guix;

Reported by: zimoun <zimon.toutoune <at> gmail.com>

Date: Wed, 8 Sep 2021 12:44:01 UTC

Severity: normal

Full log


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

From: zimoun <zimon.toutoune <at> gmail.com>
To: bug-guix <at> gnu.org 
Subject: Unordered ’%actions’ process from
 ’guix package’
Date: Wed, 08 Sep 2021 14:43:12 +0200
Hi,

Let consider:

    $ guix package -S 17 -d 18

but 

    $ guix package -d 18 -S 17

does not the same thing.  The '%actions' (roll-back, delete-generation,
switch-generation) are processed in reversed order as they appear on the
command-line -- because 'for-each' and 'assoc-ref'.

However, the transaction plan is always the same:

   step0 process %actions
   step1 remove
   step2 install
   step3 manifest

Therefore, I propose to split the 'for-each' on '%actions' (step0) into
fixed steps, such as the transaction always happens using this plan:

 1. roll-back
 2. switch-generation
 3. delete-generation
 4. remove
 5. install
 6. manifest

whatever the order in the command line.

On one hand, it reduces the "power" of combining '-S', '-d' and
'--roll-back'.  On the other hand, it enforces commutativity which is
somehow what we want a transaction to be.

WDYT?  I can come up with a patch.  This initial issue had been reported
by bug#40549 [1].

(Note that an issue about short-name with optional argument can also
happen and tracked by bug#50472 [2].)

All the best,
simon

1: <http://issues.guix.gnu.org/40549>
2: <http://issues.guix.gnu.org/50472>




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

Previous Next


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