Hi, > > Thanks, that's exactly how I am thinking. If developers are not quick > > to fix or disable failing jobs, they will develop "alert fatigue" and > > stop caring when the CI is red. The longer it remains red, the less > > likely it is to ever turn green again. > > Do you think this is perhaps a bit too strong? "alert fatigue" might > affect some people, but not everyone is the same. And it could apply to > bug reports as well: do large numbers of open bug reports indicate poor > quality and that the package should be kept out of testing longer?
Alert fatigue is a well known phenomenon. The purpose of a CI system is to be 99% green. In the 1% of cases where it fails, it should cause development to stop so developers can research why, and fix a regression before it goes into production or before new feature development continues. The number of bugs is not a testing system by itself nor does tracking bug counts directly prevent regressions from propagating. > making problems, like failing tests, visible is also a good thing - > fixing failing tests should be a good way to get new contributions. My point is specifically that the main|master|debian/* branch must be kept "green", and in particular the very commit that gets tagged and uploaded to Debian should have had the Salsa CI pass first (if CI is being used). Otherwise the point of the CI is moot. Look for example at https://salsa.debian.org/pkg-voip-team/rtpengine/-/commits/master - the CI in all recent uploads failed and the developer ignored it, and the autopkgtest failure went into Debian. If the CI had been passing earlier the regression would have been obvious. Now it wasn't because "keeping it green" wasn't the practice in this example. Sure, fixing failing tests is a good way to get new contributors. But those same contributors might prefer working on packages where the mainline is green and the work to fix or develop something is a separate thing you enable/add separately. The package's CI should not serve as a reminder that something is broken. Bug reports seem like a much better place for that. Bug reports also have other benefits like ownership and history trail that make them much better suited at tracking work items than broken tests on the package mainline branch. I strongly recommend everyone keep the CI green, and use bug reports or other systems to record issues or TODO items. We can see that Salsa CI usage is increasing at https://trends.debian.net/#continuous-integration-on-salsa but the stats from vcswatch are a bit worrying, telling that out of the 25 thousand packages or so that use Salsa CI about 5 thousand were uploaded to Debian *despite* failing CI: udd=> WITH latest AS ( SELECT source, ci_status FROM vcswatch ORDER BY last_scan DESC NULLS LAST LIMIT 1000000 ) SELECT COUNT(*) AS total_packages, COUNT(DISTINCT source) AS unique_packages, COUNT(*) FILTER (WHERE ci_status = 'success') AS passing_ci, COUNT(*) FILTER (WHERE ci_status <> 'success' AND ci_status IS NOT NULL) AS failing_ci, COUNT(*) FILTER (WHERE ci_status IS NULL) AS no_ci_status FROM latest; total_packages | unique_packages | passing_ci | failing_ci | no_ci_status ----------------+-----------------+------------+------------+-------------- 40405 | 40405 | 19222 | 5318 | 15865 This seems wasteful and counterproductive as I wrote in the three points in my original message. I wish people would consider turning off the CI if they don't care about looking at the results. That would basically increase the CI capacity by 25% for packages where CI is maintained and properly used to catch regressions.

