Sunday 1 January 2023

New +1 maintenance tool: find-proposed-cluster

Happy New Year!

One of my wishes for +1 Maintenance has been to have automated tooling to
answer the question for developers, "what is the next thing in -proposed
that it's a priority for me to work on?"

We're pretty far from this goal, but one small piece of it is to identify
clusters of packages in -proposed that all have to migrate together
("transitions") where relatively small amounts of work make a big difference
for unsticking -proposed.

As this is a very awkward question to answer by reading update_excuses.html,
I've (finally) written a helper tool, find-proposed-cluster, that analyzes
update_excuses.yaml for this, and have committed the tool to
lp:ubuntu-archive-tools.

Examples:

$ find-proposed-cluster
python3-defaults 261
qtbase-opensource-src 80
qt6-base 24
gnat 22
bctoolbox 10
$

$ find-proposed-cluster --limit 20
python3-defaults 261
qtbase-opensource-src 80
qt6-base 24
gnat 22
bctoolbox 10
fenics-dolfinx 8
rust-parking-lot 7
rust-cargo 6
rust-darling 5
rust-git2 5
deal.ii 4
dolfin 4
r-cran-spatstat 4
r-cran-sf 4
rust-html2pango 4
rust-bat 4
qt6-quick3dphysics 3
nvidia-cuda-toolkit 3
starjava-topcat 3
qtcharts-opensource-src 3
$

It's certainly not perfect; although I try to do deduplication, there are
still some duplicates as you can see above (e.g. qt6-quick3dphysics is part
of the qtbase-opensource-src transition). But it's a lot better than trying
to read update_excuses.html directly.

The number after the source package name is the number of additional
source packages identified as part of the cluster. It will never be less
than 3 - if you only have 3 packages in a group that have to migrate
together, it's not significant and it's better to focus on packages in
chronological order instead.

I've been using find-proposed-cluster in anger for about a month now, and
it's given me quicker insight into what's happening in -proposed that needs
attention.

Please kick the tires. Suggestions for improvement welcome.

Enjoy,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org