Subject: Re: bug#63571: [PATCH 00/14] 'guix refresh -u' updates input fields

From: Ludovic Courtès <[email-masked]>
Date: Mon, 29 May 2023 16:44:08 +0200

Hi!

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

> Until now, ‘guix refresh -u’ would tell you what inputs need to
> be changed in your packages, for the ‘cran’, ‘pypi’, and ‘stackage’
> updaters.  With this change it changes them right away.
>
> Furthermore, ‘guix refresh -u’ will now also update inputs when the
> ‘cpan’ and ‘elpa’ updaters are used.  Doing that for other updaters
> is left as an exercise to the reader.  :-)

One thing discussed with Ricardo on #guix-hpc is the need for
exceptions for cases where the importer gets inputs wrong.  Examples:

  • The CRAN updater might suggest adding ‘r-knitr’ as an input to a
    dependency of ‘r-knitr’.

  • There are other more complicated cases such as ‘r-dt’, which depends
    on JavaScript code.

  • The PyPI updater doesn’t know about the ‘openmpi’ input of
    ‘python-mpi4py’ so it would remove it.

This is addressed in v2 of this patch series, along with other
improvements (changes since v1):

  • honors ‘updater-extra-inputs’ and ‘updater-ignored-inputs’ package
    properties (and similarly for native and propagated inputs);

  • add those properties to a few packages;

  • ‘cran’ updater keeps inputs alphabetically sorted;

  • ‘gem’ updater now updates inputs as well.

Surely this will reveal limitations of updaters/importers but I’d like
to see it as an opportunity to improve them; more importantly, we have
to reduce the maintenance cost of all these imported packages, and this
is a step in that direction.

If there are no objections, I’d like to apply this series within a few
days.

Feedback welcome!

Ludo’.