diff mbox series

[bug#49993] gnu: Remove python2-translitcodec.

Message ID 20210831000946.11489-2-ben@sturm.com.au
State New
Headers show
Series [bug#49993] gnu: Remove python2-translitcodec. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Ben Sturmfels Aug. 31, 2021, 12:09 a.m. UTC
Remove Python 2 leaf package possibly added for Python 2 MediaGoblin.

* gnu/packages/python-xyz.scm (python2-translitcodec): Remove variable.
---
 gnu/packages/python-xyz.scm | 3 ---
 1 file changed, 3 deletions(-)

Comments

Ben Sturmfels Aug. 31, 2021, 1:08 a.m. UTC | #1
Upon investigation, the following were added by cwebber or dthompson, so likely related to MediaGoblin:

    python2-exif-read
    python2-pyld
    python2-jsonschema
    python2-unidecode
    python2-itsdangerous
    python2-feedgenerator
    python2-waitress
    python2-oauthlib
    python2-wtforms
    python2-pastescript
    python2-celery

The following were added by others, so probably had uses other than MediaGoblin:

    python2-markdown
    python2-configobj
    python2-email-validator
    python2-py-bcrypt
    python2-openid-teams
    python2-openid-cla
    python2-openid
    python2-celery

Of all the above only python2-jsonschema is failing to build.

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.

Regards,
Ben
Simon Tournier Aug. 31, 2021, 6:10 a.m. UTC | #2
Hi,

On Tue, 31 Aug 2021 at 11:08, Ben Sturmfels via Guix-patches via <guix-patches@gnu.org> 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: python2-plastid@0.4.8

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: fio@3.27 python2-pybedtools@0.8.2 python2-plastid@0.4.8 python2-biom-format@2.1.7 python2-warpedlmm@0.21 poretools@0.6.0-1.e426b1f ribodiff@0.2.2

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
Ben Sturmfels Sept. 1, 2021, 3:43 p.m. UTC | #3
On Tue, 31 Aug 2021, zimoun wrote:

> 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: python2-plastid@0.4.8

Whoops! Thanks Simon, I had been mistakenly just grepping the sources to
find dependencies, so my earlier claims of packages being unused were
wrong.

Only the following have no dependencies (according to `guix refresh
-l`):

  python2-exif-read
  python2-pyld
  python2-itsdangerous
  python2-feedgenerator
  python2-wtforms
  python2-pastescript
  python2-celery
  python2-configobj
  python2-email-validator
  python2-openid-teams
  python2-openid-cla
  python2-openid
  python2-celery
  python2-translitcodec

These DO have dependencies, so should NOT be removed:

  python2-markdown
  python2-py-bcrypt
  python2-waitress
  python2-oauthlib

Regards,
Ben
diff mbox series

Patch

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 316d8c9b64..16fe38b31d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13220,9 +13220,6 @@  best-effort representations using smaller coded character sets (ASCII,
 ISO 8859, etc.).")
     (license license:expat)))
 
-(define-public python2-translitcodec
-  (package-with-python2 python-translitcodec))
-
 (define-public python-anyqt
   (package
     (name "python-anyqt")