We maintain many YaST modules and it's quite difficult to keep all of them in good shape.
So we eeed to know which modules are used and are important for the users so we could spend more time with them. On the other hand, the modules which are used rarely can live with less intensive maintenance.
The obvious problem is how to get this usage statistics. YaST does not contain any usage tracking system (that's actually good!), the only feedback we receive is via bugzilla. Naturally, bugzilla provides only negative feedback (what does not work), we miss some positive feedback and we miss usage data.
There is one simple but probably still good enough metrics: check the changelog and find how many bugs or features we have implemented in each YaST package.
- bugs-2015-01-01.txt
- Contains the number of fixed bugs in each YaST package since Jan 1 2015 (roughly for the last ~5 years)
- bugs-2019-01-01.txt
- Contains the number of fixed bugs in each YaST package since Jan 1 2019 (roughly for the last year)
- features-2015-01-01.txt
- Contains the number of implemented features in each YaST package since Jan 1 2015 (roughly for the last ~5 years)
- features-2019-01-01.txt
- Contains the number of implemented features in each YaST package since Jan 1 2019 (roughly for the last year)
The bugs are identified by a bsc#
, bnc#
or boo#
mark. Features are
identified by the fate#
or jsc#
mark. The duplicates were not removed.
Here is the script I wrote for extracting the data, you can adapt it and get different statistics from the changes. You need a complete YaST Git checkout locally.
Because the YaST code is very old (some parts more than 20 years!) it's very likely that there some dead unused code.
The problem is how to find it. We could enable the code coverage also during installation and in running system. But that would only cover the executed code, you would need to enter every possible dialog and use all features.
But there is still some code which is hardware or architecture dependant. More over most of the error handling code would be still not covered, there would be lots of false positives which would need manual verification...