mbox series

[bug#74268,0/1] teams: Add packages stats script.

Message ID cover.1731100267.git.sharlatanus@gmail.com
Headers show
Series teams: Add packages stats script. | expand

Message

Sharlatan Hellseher Nov. 8, 2024, 9:31 p.m. UTC
Hi Guix!

During working on python-team branch I aimed to fix as much packages as
possible to prepare it for the upcoming merge to master.  I faced with a fact
that there is no (or maybe I do not know about) tooling providing some larger
scale stats for packages within team scope.

Just a simple reasoning: Which N packages may be updated without triggering
larger scale rebuilds?  Which packages need to be update on team branch? Which
affect ratio does this package has? Which type of package modification would
trigger the rebuild of dependent (it was suprise that order of inputs does
trigger...)?

So... 

> ./pre-inst-env etc/teams-package-stats.scm stats python

Will generate a list of all packages for python team (defined for now as any
package which build-system is pyton or pyproject).

- module-file-name
- build-system-name
- package-name
- package-guix-version
- package-upstream-version
- all-inputs-count
- dependents-count
- affect-ratio"

Command `column' may be used to produce JSON for the farther analysys and
preparation.

e.g. some packages which have 0 impact if they are refreshed:
--8<---------------cut here---------------start------------->8---
> column -s, -t 1731089576-python-team | sort -k8 -n  | head -n20
deprecated-package                   pyproject  python-language-server                    1.11.0              nil  23  0     0.0
deprecated-package                   python     beets-next                                1.6.0               nil  31  0     0.0
deprecated-package                   python     python-trytond-purchase                   6.2.3               nil  21  0     0.0
gnu/packages/android.scm             python     fdroidserver                              1.1.9               nil  21  0     0.0
gnu/packages/astronomy.scm           pyproject  ginga-qt5                                 5.1.0               nil  22  0     0.0
gnu/packages/astronomy.scm           pyproject  python-poliastro                          0.17.0              nil  20  0     0.0
gnu/packages/bioinformatics.scm      pyproject  fanc                                      0-1.354401e         nil  29  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-baltica                            1.1.2               nil  27  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-episcanpy                          0.4.0               nil  25  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-fanc                               0.9.25              nil  26  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-hicexplorer                        3.7.4               nil  27  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-liana-py                           1.1.0               nil  25  0     0.0
gnu/packages/bioinformatics.scm      pyproject  python-metacells                          0.9.4               nil  26  0     0.0
gnu/packages/bittorrent.scm          python     deluge                                    2.1.1               nil  21  0     0.0
gnu/packages/bootloaders.scm         pyproject  patman                                    2024.01             nil  20  0     0.0
gnu/packages/databases.scm           pyproject  datasette                                 1.0a7               nil  29  0     0.0
gnu/packages/databases.scm           python     python-pyarrow                            0.16.0              nil  28  0     0.0
gnu/packages/finance.scm             python     electron-cash                             4.4.1               nil  23  0     0.0
gnu/packages/genealogy.scm           python     gramps                                    5.1.4               nil  23  0     0.0
gnu/packages/gnome.scm               python     terminator                                2.1.4               nil  20  0     0.0
--8<---------------cut here---------------end--------------->8---

I'm not confident in my Guile Scheme ;-) any review points are welcome.

CC core team for wider spread within teams.

Sharlatan Hellseher (1):
  etc: Add teams-packages-stats script.

 etc/teams-packages-stats.scm | 218 +++++++++++++++++++++++++++++++++++
 1 file changed, 218 insertions(+)
 create mode 100755 etc/teams-packages-stats.scm


base-commit: 2a6d96425eea57dc6dd48a2bec16743046e32e06