Subject: bug#48166: Dont stop the upgrade process - Better guix handling when Package failed to build

From: bo0od <[email-masked]>
Date: Sun, 2 May 2021 20:29:31 +0000

Hi There,

Guix distro is a rolling distro, Packages almost hourly/daily get upgraded.

This is nice but it wont go through without errors due to many factors.

Current situation when there is an error and package failed to build 
guix will stop upgrading all the upgrade process e.g:

If you have package x and y in your system

guix upgrade (or guix upgrade x y)

and there is error in x

guix will stop the upgrade process for y as well, even though y package 
has no problems with its upgrade.

Current (manual) solution is:

guix package --upgrade . --do-not-upgrade x

Why this is not useful:

- Straight forward bad usability for end user

- Average/New user want guix upgrade to work at 100% percent whenever 
possible, Since there is an error possibility then it should work at 90% 
or so (depending on how many packages having errors). Current situation 
by default either all build fine then upgrade or one error then no 
upgrade, Which is below good expectation.

- If user just kept waiting for an upstream/package maintainer fixation 
(without reporting the issue or communicate with the support, and i 
would expect that from average users) which will take several days if 
not more y package will be kept on an outdated stage and this give 
security issues as well (because upgrades are not just new features or 
fixing bugs many of the upgrades contain fixes for critical security 
issues)

Real Example:

https://issues.guix.gnu.org/48140

Caused to stop the upgrade process for all of guix users (at least who 
had icedove installed) and no automatic solutions except the manual one.

Solution:

guix upgrade x y

x contain error cant be upgraded

skip building it due to meow error message

upgrading y from 1.0 to 2.0

upgrade successful without x package couldnt be built due to meow error 
message

This will insure all the packages on the distro going to be upgraded 
except the one which contain error/couldnt successfully upgraded.

------------------

Faster(?) workaround for current situation:

Note: This is just faster to implement but not better than the previous 
solution.

Current error message is:

https://issues.guix.gnu.org/issue/48140/attachment/0/1

Better as well to add something like:

Use guix package --upgrade . --do-not-upgrade PackageNameWithError to 
build other packages seccessfully.

(Or any better wording message).

ThX!