function sparkbar(max) {
const colourScale = d3.scaleSequential(d3.interpolateCool)
.domain([0, max]);
return (x) => htl.html`<div style="
background: ${colourScale(x)};
color: black;
width: ${100 * x / max}%;
float: right;
padding-right: 3px;
box-sizing: border-box;
overflow: visible;
display: flex;
justify-content: end;">${x.toFixed(2).toLocaleString("en-US")}`
}
function tooltip(title, expl) {
const th = document.createElement("th");
th.title = expl
th.style.background = "#f0f8ff";
th.textContent = title;
th.addEventListener("mouseover", () => th.style.background = "#d0e8ff");
th.addEventListener("mouseout", () => th.style.background = "#f0f8ff");
return th;
}
function pkgfmt(pkg) {
const th = document.createElement("th");
th.title = "hover"
th.style.background = "#f0f8ff";
th.textContent = pkg;
th.addEventListener("mouseover", () => th.style.background = "#d0e8ff");
th.addEventListener("mouseout", () => th.style.background = "#f0f8ff");
th.addEventListener("click", () => {
localStorage.setItem("orgmetricsRepo", pkg);
th.style.background="#a0f8ff";
window.location.href="/repometrics-demo/repo.html";
});
return th;
}
function ctbfmt(ctb) {
const th = document.createElement("th");
th.title = "hover"
th.style.background = "#f0f8ff";
th.textContent = ctb;
th.addEventListener("mouseover", () => th.style.background = "#d0e8ff");
th.addEventListener("mouseout", () => th.style.background = "#f0f8ff");
th.addEventListener("click", () => {
console.log("----setting localStorage maintainer to: " + ctb);
localStorage.setItem('orgmetricsMaintainer', ctb);
th.style.background="#a0f8ff";
window.location.href="/repometrics-demo/maintainer.html";
});
return th;
}
Organization
This page provides an organization-level overview of all repositories in both the reconhub
and epiverse-trace
GitHub organizations. Statistics here are assessed for each repository, and aggregated across the organizations into four distinct categories:
- Development: Metrics of both code development and maintainer continuity and diversity. High scores reflect repositories with high levels of code development from a diverse community of maintainers.
- GitHub: Metrics derived from GitHub issues and pull requests. High scores reflect repositories with active use of issues, pull requests, code reviews, and rapid responses from core maintainers to issues or pull requests opened by wider community members.
- Popularity: Metrics of repository popularity, derived from CRAN download numbers (where applicable), GitHub stars and forks, and issue comments from user communities beyond core maintainers.
- Dependencies and Releases: High scores reflect repositories with fewer dependencies and frequent releases.
The Overall column is an average of all metrics across all of these four categorical groupings, and provides an overall metric of repository health.
Aggregate metrics
This chart shows the recent development of metrics aggregated into each of the four groups, plus the “Overall” metric averaged across all four groups.
And table shows metrics for each package, for the latest time period only aggregated into each of the four groups. Clicking on the “package” values will lead to the repository maintenance page with further details of the selected package or repository.
Maintenance deficit
This next graph shows the maintenance deficit over time, as the difference between community engagement and developer responsiveness. Repositories with high community engagement yet low developer responsiveness have a high maintenance deficit, and vice-versa. The “Deficit” scores are scaled to fix within the same range as the metrics of community engagement and developer responsiveness.
And these are maintenance deficit values for individual repositories (packages), for the latest time period only.
Additional metrics and indicators
The following show several more distinct indicators of maintenance need, all of which are assessed over the most recent period of repository activity:
- Ctb. Absence: A measure of “contributor absence” for each repository, indicating maintenance deficit arising through absence of primary contributors.
- Resp. Time: The average time for a core maintainer to respond to a new issue or pull request
- Issue Labels: The proportion of issues with labels
- Prop. Bugs: The proportion of new issues opened that were bug reports
Contributor Absence
Finally, this table shows a metric of main contributor absence. Values are only and whose absence is equivalent to comp. A contributor who has been entirely absent during the most recent period, and was responsible for 100% of the commits within a single repository, would have a contributor absence score of one. A contributor absence of one could also reflect somebody contributing exactly 50% of the code to two repositories, and being entirely absent during the recent period. Any contributions by that contributor during the recent period would reduce the absence factor. In general, high absence factors describe recently absent contributors who have previously been major contributors to numerous repositories.