-
Notifications
You must be signed in to change notification settings - Fork 2
Description
It's a living issue. Goals / metrics can be changed at any time.
Relates to #23
Goal
To track releases / activity / find new maintainers in / for the collections, revoke privileges from inactive maintainers.
Issue
at the moment, we have 80+ collections under ansible-collections. Before the splitting, rarely but surely, users got merged fixes / new features shipped. Now, we should monitor the collections and prevent the situations when it has merged stuff but not released or it has stuff to merge but no active committers maintainers.
Several possible scenarios
-
A collection gets things merged regularly and releases them regularly - so, everything is OK, the collection is fully maintained ("fully" means that there are active committers and they release the collection).
What we should do: keep tracking the activity there -
A collection gets things merged regularly but there have been no releases for a long time.
What we should do:
a) check if there's a release policy in the collection
b) ask the committers why they don't release the collection - no time or they need to be trained
c) release the collection ourselves / train the committers how to conduct releases -
A collection doesn't get things merged, no releases, but there are new PRs submitted since the latest release (at least, it's
1.0.0).
What we should do:
a) conduct a PR day
b) release ourselves
c) find maintainers from the community (first of all, from active contributors)
d) revoke privileges from inactive maintainers -
A collection doesn't get things merged, no releases, no PRs submitted.
What we should do:
a) if there are maintainers, ask them if the content of the collection is still relevant for users
b) we could also use a number of monthly open issues as a measure ^
c) if relevant, maybe the collection is new and nobody knows about it. Should we announce it using possible ways?
d) if irrelevant (e.g. the underlying service is dead), should we do nothing?
What would be helpful to see
Dashboard(s) with:
- Graph per collection: x - timeline (months), y - number of:
- PRs open per month
- PRs merged per month (or commits which can be fetched from GH API)
- tags / releases per month
- number of open issues per month
- Table containing commit / PR authors to identify new potential maintainers:
- name
- counter
- last commit timestamp
- Table containing commit / PR committers to see current committers / most active committers
- name
- counter
- last commit timestamp
What would help see problem spots
- Alerts in the dashboard like red banners when a collection reaches some threshold like a time delta between last release / tag and now, etc.
- Email notifications when the thresholds are reached.
What METRICS to collect / calculate
(with fields described above and all per month)
- PRs open
- PRs / commits merged
- Issue number open
- Tags / releases
- PR / commit authors
- PR / commit committers
- time delta between last release / tag and commit
- time delta between last release / tag and now
- number of commits merged between last release / tag and now
- number of open issues / PRs between last release / tag and now
- something else