Open Source projects follow a life cycle model that determines the maturity and readiness of a release. During the different stages of the life cycle (Proposal → Incubation → Mature → Core → Archive) the project experiences a high and low activity in each individual repository participating in a release in question. It is important to monitor the activity and need for project’s repositories at every stage of the project to ease further planning, maintain focus and save project costs in both collaboration efforts and CI resources.
To learn more about a project’s life cycle, please visit our LF blog post.
During my time working in several Open Source communities, I have found many ways to gauge the activity of the project’s repositories:
- One of them is by collecting the information that is presented during community and release management meetings. In these meetings, it is easy to identify the repos with the most activity and the repos that are constantly discussing issues and solutions.
- Another way to monitor activity is by looking at the project’s CI. As a release engineer, I spend a good amount of time looking and monitoring a project’s CI/CD and IT services queue related to projects who need attention. With some of our projects having 100+ repositories, this information can come a little bit overwhelming by just looking at what is being processed since some repos could have more than 1 associated jobs.
- One more way to monitor activity is by looking at the project’s source control. Whether it is Gerrit, Github, Mercurial, etc, it is useful to look at open change requests and look at who is actively reviewing and commenting on code.
One new way to monitor a project’s repositories activity is by using LFX Insights!
Insights has a “Repositories that Need Attention” metric under a Project’s Analytics metrics which provides a list of repositories that could have become idle after some time. This is considering a project’s active collaborators or open change requests and issues.
This information can be filtered for a specific time range and can be ordered by contributor activity, issues, change request or time resolution lead time for either issues or changes.
LFX Insights provides an easy first look at the repository’s activity in a project and is presented to users in such a way that is easy to navigate and makes it easy to identify an initial list of suspected idle repos. This information can be combined with the information provided by what we are able to see in Gerrit and Jenkins to justify if a repo should be archived or should use more resources or not.
Let’s use the following ONAP example:
Looking at the “Repositories that Need Attention” table for the last past year, we are going to focus on the last page (with the use of the navigation buttons). We are also filtering this information by Active Contributors.
That last page looks like this:
Those three repos in question do not have any open active changes. Also, looking at the “Ave Merge Lead Time”, we can confirm that there were no changes that could have been opened and probably resolved recently in the past year. This information can be confirmed by looking at ONAP’s SCM:
Now, if we look in ONAP’s CI/CD, we can also corroborate the fact that these repos have been pretty inactive:
One of them does not even have jobs running at all:
This information tells us that at least these three repos in the example could be considered inactive and should be archived in order to direct the focus and resources to those repositories that actually do need attention.
This is just one more example on how LFX Insights metrics can help us study the development of a project’s development and can tell us where the focus is placed to make sure it matches the project’s goals and the current project lifecycle.
How do you track and monitor repositories that need attention on projects important to you?
Reply below!