I've been thinking about a way to monitor how projects are consuming Orbit builds. This would be useful for a number of reasons :
- Show which projects are referring to an orbit repo that no longer exists (ie. build failure), or could be removed at any moment according to retention policy (old I or S build when a release, R build already exists)
- Encourage consistent usage (projects can quickly see how other projects use the repo)
- See which orbit repo can be deleted/archived in the event that their last last successful build was years ago.
- Knowing how projects use Orbit may give a better idea of where our time is best spent, or maybe even what might be worth dropping (eg. do we really need N-builds ? Not used at all by HIPP/JIPPs)
In the past I considered using p2 stats to get a view of this, but obviously this would not give information about the origin of the request, and we definitely want to limit our query to just eclipse projects at Eclipse. Using the CI (Jenkins/Hudson) API seemed like a good start so I took this approach. Basically this would just go through all jobs (from a HIPP/JIPP) and look through the last successful build log for references to Orbit repos.
Currently, this is a ~100 LOC shell script (as it's likely to end up running in a JIPP itself) and generates information about which Orbit repo is used by each HIPP/JIPP job, as well as aggregated totals per repo. More is certainly possible but this seems like a good start.
Is there already a way of doing this ? Is there some other approach that others have used in the past to get similar results ? In the past I have tried variations of "find all p2 repos" under downloads to query for certain orbit builds to determine which bundles are actually in use (rather than searching the CQ database) but querying the HIPP/JIPP build logs directly seems more standardized.
Cheers,