#980520 britney: excuses: reduce verbosity of autopkgtest results

#980520#5
Date:
2021-01-20 05:26:10 UTC
From:
To:
The excuses page is often very verbose because of the autopkgtest
results, especially for packages with lots of reverse dependencies.

For packages where all the results are Pass, those packages could be
left out of the excuses altogether, since they don't prevent migration,
or perhaps grep-excuses should gain an option to hide them instead?

For packages where all the results are the same for every arch, the
excuses could collapse all of those packages into one line.

  • autopkgtest Regression for foo bar baz
  • autopkgtest Ignored failure for foo bar baz
  • autopkgtest Pass for foo bar baz

For packages with multiple arches you could group arches by the status
rather than printing the status for each architecture, since the
architecture names are shorter than the status texts.

  • autopkgtest for foo/1.2-3: Regression: amd64 arm64 armhf, Ignored failure: ppc64el: Ignored failure, Pass: i386

The combination of these ideas would result in less verbose excuses.

Here is an example of a long version of the excuses:

   $ grep-excuses -w pytest
   Excuse for pytest

     • Migration status for pytest (4.6.11-1 to 6.0.2-2): BLOCKED: Rejected/violates migration policy/introduces a regression
     • Issues preventing migration:
     • autopkgtest for dask.distributed/2.10.0+ds.1-3: amd64: Ignored failure, arm64: Ignored failure, armhf: Ignored failure, i386: Ignored failure, ppc64el: Ignored failure
     • autopkgtest for docopt/0.6.2-2.2: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el
       : Regression ♻ (reference ♻)
     • autopkgtest for git-big-picture/0.10.1-1: armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for html5lib/1.1-2: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el:
       Regression ♻ (reference ♻)
     • autopkgtest for ipykernel/5.4.2-1: ppc64el: Pass
     • autopkgtest for jupyter-client/6.1.6-1: ppc64el: Pass
     • autopkgtest for jupyter-notebook/6.1.6-2: armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for nbformat/5.0.8-1: armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for pytest-doctestplus/0.7.0-2: armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for pytest-mpi/0.4-2: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el
       : Regression ♻ (reference ♻)
     • autopkgtest for python-dugong/3.7.4+dfsg-2: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻
       ), ppc64el: Regression ♻ (reference ♻)
     • autopkgtest for python-llfuse/1.3.6+dfsg-2: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻
       ), ppc64el: Regression ♻ (reference ♻)
     • autopkgtest for python-mechanicalsoup/0.10.0-3: armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el: Regression ♻ (reference ♻)
     • autopkgtest for python-pymeasure/0.5-1: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻),
       ppc64el: Regression ♻ (reference ♻)
     • autopkgtest for reprotest/0.7.15: amd64: Pass, arm64: Ignored failure, armhf: Ignored failure, i386: Ignored failure, ppc64el: Pass
     • autopkgtest for sphinx-argparse/0.2.2-3: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻),
       ppc64el: Regression ♻ (reference ♻)
     • autopkgtest for sqlparse/0.3.1-1: amd64: Regression ♻ (reference ♻), arm64: Regression ♻ (reference ♻), armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el
       : Regression ♻ (reference ♻)
     • autopkgtest for statsmodels/0.12.1-1: amd64: Pass, armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for sunpy/2.0.5-1: armhf: Pass, i386: Pass, ppc64el: Pass
     • autopkgtest for xonsh/0.9.24+dfsg-2: armhf: Regression ♻ (reference ♻), i386: Regression ♻ (reference ♻), ppc64el: Regression ♻ (reference ♻)
     • Implicit dependency: pytest python-pytest-asyncio
     • Additional info:
     • Updating pytest fixes old bugs: #978289
     • Piuparts tested OK - https://piuparts.debian.org/sid/source/p/pytest.html
     • 17 days old (needed 5 days)
     • Depends: pytest python-pytest-asyncio

   Excuses generated Wed Jan 20 04:11:43 2021

#980520#10
Date:
2021-01-20 18:26:17 UTC
From:
To:
Hi Paul

We already did that, because good excuses were way too long, package
that pass *for the current version in testing* are already hidden.
Passing packages that are still shown are those where an update happened
since the successful run, so they are more or less "pending". I realize
that probably nobody realizes this.

I don't know how grep-excuses works.

Sure, except we don't show the passing results.

This requires changes in the logic that writes the excuses, because
currently we just process the items and write the text as we go. So, can
do, but ...

I think we had other ideas on how to improve readability but IIRC, those
had to wait until jessie became EOL, as our ideas weren't compatible
with grep-excuses in jessie. This now happened so we could pick that up.

Paul

#980520#15
Date:
2021-01-21 01:23:32 UTC
From:
To:
It is very non-obvious from the output, I'd suggest putting Pending
instead of Pass for the packages in that scenario.

Good to hear, is there a bug about those ideas?

#980520#20
Date:
2021-01-21 08:09:06 UTC
From:
To:
Hi,

But, it the results don't come in by the time the age is reached, the
"Pending" isn't blocking like the regular "Pending", so it would be
confusing in another way. I guess we need a new state/wording for this
case if we fix this properly.

Don't think so, just (ancient) discussions on IRC IIRC.

Paul