poor information when updating using “guix time -machine”
(address . bug-guix@gnu.org)
Hi,
Tangential of bug#65787 [1], the annoyance is the order of the updates.
It leads to poor messages. Let exemplify at the extreme case.
Toggle snippet (18 lines)
$ guix describe
Generation 28 sept. 06 2023 14:54:50 (current)
guix 6113e05
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5
$ rm -fr ~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq
$ guix time-machine -q --commit=6113e05 -- describe
receiving objects 2% ???
…some time flies…
indexing objects 21% ???????????????????????? ?
…some time flies…
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
…instant…
Computing Guix derivation for 'x86_64-linux'... \
The reason is because the logic:
(when (procedure? validate-channels)
(validate-channels channels))
(run-with-store store
(mlet* %store-monad ((instances
-> (latest-channel-instances store channels
#:authenticate?
authenticate?))
where ’validate-channels’ (validate-guix-channel) reads,
(checkout commit relation (update-cached-checkout
(channel-url guix-channel)
#:ref reference
#:starting-commit
%oldest-possible-commit)))
and ’latest-channel-instances’ which is the ones that displays,
(format (current-error-port)
(G_ "Updating channel '~a' from Git repository at '~a'...~%")
(channel-name channel)
(channel-url channel))
this ’latest-channel-instances’ reads under the hood,
((checkout commit relation)
(update-cached-checkout (channel-url channel)
#:ref (channel-reference channel)
#:starting-commit starting-commit)))
Why not move this ’validate-guix-channel’ to internals. Somehow, it is
in guix/scripts/ because it captures ’ref’. However, this capture is
redundant and is normally managed by ’channel-list’. Therefore, I would
be tempted to have this validation for the reachable commit close to the
“Updating” message.
WDYT?
Cheers,
simon