Subject: Re: bug#42595: conflicts in propagated imports must be resolved manually

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 13 Jul 2022 23:09:40 -0400

Hi,

Ludovic Courtès <[email-masked]> writes:

> Hi Arne & Efraim,
>
> efraim Flashner <[email-masked]> skribis:
>
>> On Wed, Jul 29, 2020 at 09:54:07AM +0200, Dr. Arne Babenhauserheide wrote:
>>> Hi,
>>> 
>>> When I get conflicts in propagated imports, I must follow a mechanical
>>> multi-step process to resolve them manually.
>
> [...]
>
>>> LANG=C guix package -i guile-gi python-pycairo dbus-glib cairo guile-charting libsoup poppler pango
>>> The following packages will be upgraded:
>>>    python-pycairo (dependencies or package changed)
>>>    dbus-glib      (dependencies or package changed)
>>>    cairo          (dependencies or package changed)
>>>    guile-charting (dependencies or package changed)
>>>    libsoup        (dependencies or package changed)
>>>    poppler        (dependencies or package changed)
>>>    pango          (dependencies or package changed)
>>> 
>>> The following package will be installed:
>>>    guile-gi 0.3.0
>>> 
>>> guix package: error: profile contains conflicting entries for glib
>>> guix package: error: first entry: [email-masked]
>>> /gnu/store/xr6zfqxklmr7skalljn5i071xmgqxbrm-glib-2.62.6
>>> guix package: error:    ... propagated from [email-masked]
>>> guix package: error:    ... propagated from [email-masked]
>>> guix package: error: second entry: [email-masked]
>>> /gnu/store/q4100sjqcsdi6b232ndr93vxfzv9bzij-glib-2.62.6
>>> guix package: error:    ... propagated from [email-masked]
>>> 
>>> 
>>> This should be automated, so there would be just one step to add all
>>> updates I need.

[...]

> Also, Arne, it seems to me that Guix alone cannot decide how to solve
> that conflict; it’s up to the user.  Thoughts?

I guess it could compute all the conflicts and then fail and show the
results, so that the user wouldn't need to slowly iterate on its
per-package findings; perhaps recommend to simply upgrade wholesale when
the conflicts are too numerous?

Perhaps it could even *already* make such a recommendation when
encountering conflicts, e.g.

--8<---------------cut here---------------start------------->8---
hint: To avoid conflicts, you can upgrade all of your package collection
at once with 'guix upgrade'.
--8<---------------cut here---------------end--------------->8---

Is this worth it?

Maxim