Subject: bug#70858: closed ([PATCH 00/32] python-team: Remove native inputs)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 27 Jul 2025 13:40:02 +0000

Your bug report

#70858: [PATCH 00/32] python-team: Remove native inputs

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
70858: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70858
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: [PATCH 00/32] python-team: Remove native inputs
From: Sharlatan Hellseher <[email-masked]>
To: [email-masked]
Date: Sun, 27 Jul 2025 14:38:54 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Closing this issue the proposal was split into actions:
- On the way to pyproject-build-system everywhere
  <https://codeberg.org/guix/guix/milestone/20775>
- Discussing package development-inputs
  <https://codeberg.org/guix/guix/issues/1075>

--
Oleg

Subject: [PATCH 00/32] python-team: Remove native inputs
From: Nicolas Graves <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Fri, 10 May 2024 09:26:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

This is a full rewrite of patch series 70735 which I couldn't fully
submit because debbugs doesn't seem to like when more than 100 patches
are sent in 2h. It is therefore much more concise.
Here's an adapted copy of the original cover-letter message:

How did I proceed ?

1) Identify packages we often don't need as native-inputs.
2) Systematically remove these packages when they are in native-inputs.
3) Iterate : try to rebuild needed packages, and fixes along the way (these can be updates, packages
rewrites, inputs additions...). Said fixes have been sent in patch series 70855. Back up from the native-input removal when it's not trivial, except for some specific cases (these are present as their own patches).
4) Stop when everything rebuilds properly, except for some specific cases.

   The packages that need rebuilding are identified from :
   guix graph --type=reverse-package -M 1 python-codecov python-coverage python-black python-isort
python-pycodestyle python-pep8 python-pyflakes python-flake8 python-pylint python-mypy
python-coveralls python-twine python-pytest-isort python-pytest-flake8 python-pytest-cov
python-pytest-black python-pytest-pep8 python-pytest-mypy pre-commit | grep label | cut -d\" -f4 |
cut -d@ -f1 | sort | uniq

   Some are removed from this list where the package was propagated rather than native, or when the
package is left unchanged (e.g. open-adventure), or for those specific cases :
   - "chirp"  ; needs to rebuild webkitgtk, no thanks
   - "cpplint"  ; has been updated on master + requires pytest-runner==5.6
   - "python-modin"  ; this is broken by pandas upgrade, will fix this independently
   - "python-libcst"  ; broken upstream but unchanged
   - "python-schema-salad"  ; broken upstream but unchanged
   - "python-dolfin-adjoint"  ; timeout, but probably works.
   - "reprotest"  ; needs to rebuild the whole openjdk, no thanks.

This patch series is built upon python-team's branch, with Vinicius' patch series 69980 and my patch
series 70855 on top.

Now, what about results in package node graph reduction?

Here's a summary of number of packages under guix refresh -l :

| package              | master | python-team+patch series |
|----------------------+--------+--------------------------|
| python-codecov       |      6 |                        1 |
| python-coverage      |   2359 |                      497 |
| python-black         |    332 |                       37 |
| python-isort         |    275 |                      153 |
| python-pycodestyle   |    392 |                      184 |
| python-pep8          |    219 |                      215 |
| python-pyflakes      |    392 |                      190 |
| python-flake8        |    377 |                      158 |
| python-pylint        |    235 |                        8 |
| python-mypy          |    347 |                      310 |
| python-coveralls     |     23 |                        1 |
| python-twine         |     28 |                      137 |
| python-pytest-isort  |    180 |                      145 |
| python-pytest-flake8 |    303 |                        8 |
| python-pytest-cov    |   2309 |                      286 |
| python-pytest-black  |    278 |                        7 |
| python-pytest-pep8   |     31 |                       31 |
| python-pytest-mypy   |    280 |                      307 |
| pre-commit           |    128 |                        1 |
| python-tox           |    166 |                        5 |

This means e.g. that an update of python-pylint will trigger 8 packages rebuilds rather than 235.

Nicolas Graves (32):
  guix: import: pypi: Ignore pypi-ignored-inputs.
  build-system/pyproject: Ignore unwanted pytest flags.
  build-system/pyproject: Remove python-black input.
  build-system/pyproject: Remove python-pylint native-input.
  build-system/pyproject: Remove python-flake8 inputs.
  build-system/pyproject: Remove python-coverage input.
  gnu: python-cram: Remove python-coverage native-input.
  gnu: u-boot-tools: Remove python-coverage native-input.
  gnu: python-aiosqlite: Remove python-coverage native-input.
  gnu: python-openid: Remove python-coverage native-input.
  build-system/pyproject: Remove python-coveralls native-input.
  build-system/pyproject: Remove python-pycodestyle native-input.
  gnu: python-versioneer: Remove python-pycodestyle native-input.
  gnu: python-versioneer: Remove python-pyflakes native-input.
  gnu: python-re-assert: Remove python-covdefaults native-input.
  build-system/pyproject: Remove python-codecov native-input.
  build-system/pyproject: Remove python-tox native-input.
  build-system/pyproject: Remove python-mypy native-input.
  gnu: python-immutables: Remove python-mypy native-input.
  build-system/pyproject: Remove python-isort native-input.
  build-system/pyproject: Remove python-twine native-input.
  build-system/pyproject: Remove python-pytest-cov native-input.
  gnu: python-tinycss2: Remove python-pytest-cov native-input.
  gnu: python-django-contact-form: Remove python-pytest-cov
    native-input.
  gnu: python-dateutil: Remove python-pytest-cov native-input.
  build-system/pyproject: Remove python-pytest-isort native-input.
  build-system/pyproject: Remove python-pytest-black native-input.
  build-system/pyproject: Remove python-pytest-flake8 native-input.
  build-system/pyproject: Remove python-pytest-mypy inputs.
  build-system/pyproject: Stop hiding options.
  gnu: python-linear-operator: Remove python-flake8-print native-input
  gnu: abjad-ext-ipython: Remove uneeded inputs.

 gnu/packages/android.scm              |   6 +-
 gnu/packages/astronomy.scm            |  33 +-
 gnu/packages/audio.scm                |   2 +-
 gnu/packages/backup.scm               |   2 +-
 gnu/packages/bioinformatics.scm       |  31 +-
 gnu/packages/bootloaders.scm          |  17 +-
 gnu/packages/build-tools.scm          |   1 -
 gnu/packages/check.scm                |  21 +-
 gnu/packages/cpp.scm                  |   4 +-
 gnu/packages/databases.scm            |  17 +-
 gnu/packages/dav.scm                  |   4 -
 gnu/packages/diffoscope.scm           |   2 -
 gnu/packages/django.scm               |  12 +-
 gnu/packages/ebook.scm                |   1 -
 gnu/packages/embedded.scm             |   1 -
 gnu/packages/engineering.scm          |   7 +-
 gnu/packages/finance.scm              |   6 +-
 gnu/packages/fontutils.scm            |   1 -
 gnu/packages/geo.scm                  |   9 +-
 gnu/packages/gettext.scm              |   4 -
 gnu/packages/gpodder.scm              |   3 +-
 gnu/packages/graph.scm                |   6 +-
 gnu/packages/graphviz.scm             |   5 -
 gnu/packages/jupyter.scm              |   8 +-
 gnu/packages/logging.scm              |   2 +-
 gnu/packages/machine-learning.scm     |  65 +---
 gnu/packages/mail.scm                 |   3 +-
 gnu/packages/mastodon.scm             |   1 -
 gnu/packages/messaging.scm            |   6 +-
 gnu/packages/music.scm                |  24 +-
 gnu/packages/package-management.scm   |   7 +-
 gnu/packages/patchutils.scm           |   2 +-
 gnu/packages/pdf.scm                  |   6 +-
 gnu/packages/potassco.scm             |   3 +-
 gnu/packages/protobuf.scm             |   4 +-
 gnu/packages/python-check.scm         |  33 +-
 gnu/packages/python-compression.scm   |  21 +-
 gnu/packages/python-crypto.scm        |   4 +-
 gnu/packages/python-science.scm       |  21 +-
 gnu/packages/python-web.scm           | 173 +++--------
 gnu/packages/python-xyz.scm           | 415 +++++++-------------------
 gnu/packages/radio.scm                |   3 +-
 gnu/packages/serialization.scm        |   1 -
 gnu/packages/simulation.scm           |   2 -
 gnu/packages/sphinx.scm               |   7 -
 gnu/packages/statistics.scm           |  14 +-
 gnu/packages/syndication.scm          |   8 +-
 gnu/packages/task-management.scm      |   1 -
 gnu/packages/telegram.scm             |   3 +-
 gnu/packages/terminals.scm            |   9 +-
 gnu/packages/textutils.scm            |   3 -
 gnu/packages/time.scm                 |  22 +-
 gnu/packages/version-control.scm      |   1 -
 gnu/packages/virtualization.scm       |   4 +-
 gnu/packages/vpn.scm                  |   2 -
 gnu/packages/web.scm                  |   6 +-
 gnu/packages/wm.scm                   |   2 -
 gnu/packages/xml.scm                  |   2 +-
 guix/build/pyproject-build-system.scm |  99 +++++-
 guix/import/pypi.scm                  |  21 +-
 guix/lint.scm                         |  12 +-
 tests/pypi.scm                        |   3 +-
 62 files changed, 413 insertions(+), 805 deletions(-)

-- 
2.41.0