Subject: Re: [bug#49993] [PATCH 00/18] Remove Python 2 packages possibly added for Python 2 MediaGoblin.

From: zimoun <[email-masked]>
Date: Tue, 31 Aug 2021 08:10:53 +0200

Hi,

On Tue, 31 Aug 2021 at 11:08, Ben Sturmfels via Guix-patches via <[email-masked]> wrote:

> Now that I think about it, I'm not sure that this ad-hoc approach to
> removing Python 2 deps is all that useful. Maybe a systemic approach is
> needed eg. drop all broken Python 2 packages and announce a future date
> to drop all non-broken Python 2 packages.

This is more or less the plan.  Although there is no fixed future date
to drop all the non-broken Python 2 packages. :-)

For instance #49272 remove 10 Python 2 packages and to find them:

--8<---------------cut here---------------start------------->8---
guix weather --display-missing \
     --substitute-urls="https://ci.guix.gnu.org" \
     | grep 'python2-'
--8<---------------cut here---------------end--------------->8---

then I pick only the leaf packages using “guix refresh -l”.  The
dependency graph needs some care because sometimes the graph is
rewritten.  For example,

        $ guix refresh -l python2-plastid
        No dependents other than itself: [email-masked]

Then, let try to locally build it in case something wrong happened on
the CI.  Note that the missing is checked on Berlin but the build uses
both (Berlin and Bordeaux):

        $ guix build python2-plastid --no-grafts

Or in some cases, it is a leaf package broken because another ’python2-’
package is broken.  Here, ’python2-pandas’.  In this case, it
depends. ;-)  Try to fix ’python2-pandas’ because:

        $ guix refresh -l python2-pandas
        Building the following 7 packages would ensure 12 dependent packages are rebuilt: [email-masked] [email-masked] [email-masked] [email-masked] [email-masked] [email-masked] [email-masked]

or simply remove all the dependants in the same patch set.  Be careful,
the removal needs the correct order. :-)

Personally, I tend to remove leaf package brokens becaus they do not
build themselves and not because of broken dependencies.  For instance,
in this list (from Guix a9eb969):

--8<---------------cut here---------------start------------->8---
python2-biom-format-2.1.7   
python2-pybedtools-0.8.2    
python2-plastid-0.4.8       
python2-warpedlmm-0.21      
python2-scikit-learn-0.20.4 
python2-fastlmm-0.2.21      
python2-pandas-0.24.2       
python2-seaborn-0.9.1       
python2-pysnptools-0.4.11   
ptpython2-3.0.17            
python2-statsmodels-0.11.1  
--8<---------------cut here---------------end--------------->8---

I would remove only the package ’ptpython2’.  All the others depend on
’python2-pandas’ and remove ’python2-pandas’ means also remove ’fio’,
’poretools’ or ’ribodiff’.  And I am not enough qualified to have an
opinion if it is worth to fix them.  Therefore, I queue these packages
in my TODO list and then I revisit months later: if there are still
broken and no issue is open, it means they do not worth and can be
removed.

HTH.

All the best,
simon