| Title: | Commit and Contributor Statistics for Major Open Source Projects |
|---|---|
| Description: | Over 30 years of daily commit activity and contributor growth for FreeBSD, OpenBSD, NetBSD, and PostgreSQL. Built from cloned git repositories for complete coverage -- not limited by API quotas. Includes daily commits, daily new committers, weekly aggregates, and Phabricator signup data. Designed for time series analysis, growth modeling, and cross-project comparison. Contains no personal data. |
| Authors: | Christos Longros [aut, cre] |
| Maintainer: | Christos Longros <[email protected]> |
| License: | CC0 |
| Version: | 0.1.0 |
| Built: | 2026-06-06 06:39:35 UTC |
| Source: | https://github.com/chrislongros/osscontribs |
Every commit from FreeBSD, OpenBSD, NetBSD, and PostgreSQL with full timestamps and anonymized author IDs. Extracted from cloned git repositories.
data(oss_commits)data(oss_commits)
A data frame with 2068717 rows and 3 variables:
character, project name
POSIXct, commit timestamp in UTC
character, anonymized 12-character author hash
Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres
data(oss_commits) fb <- oss_commits[oss_commits$project == "freebsd", ] hours <- as.integer(format(fb$timestamp, "%H")) hist(hours, breaks = 0:24, main = "FreeBSD Commits by Hour of Day", xlab = "Hour (UTC)", col = "steelblue")data(oss_commits) fb <- oss_commits[oss_commits$project == "freebsd", ] hours <- as.integer(format(fb$timestamp, "%H")) hist(hours, breaks = 0:24, main = "FreeBSD Commits by Hour of Day", xlab = "Hour (UTC)", col = "steelblue")
Monthly new contributor signup counts for open source projects. No personal information included.
FreeBSD data represents Phabricator account registrations. Other projects approximate signup date as the date of each author's first commit on GitHub (top 100 contributors).
Note: signups and commit activity are different metrics.
data(oss_contributors)data(oss_contributors)
A data frame with 447 rows and 5 variables:
character, project name
character, data source (phabricator or github)
Date, first day of each month
integer, new contributors that month
integer, running total for that project
FreeBSD: https://reviews.freebsd.org
GitHub: https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres
data(oss_contributors) projects <- split(oss_contributors, oss_contributors$project) plot(NULL, xlim = range(oss_contributors$month), ylim = c(0, max(oss_contributors$cumulative)), xlab = "Date", ylab = "Total Contributors", main = "Open Source Contributor Signups") cols <- c(freebsd = "red", openbsd = "orange", netbsd = "blue", postgresql = "purple") for (p in names(projects)) { d <- projects[[p]] lines(d$month, d$cumulative, col = cols[p], lwd = 2) } legend("topleft", names(cols), col = cols, lwd = 2)data(oss_contributors) projects <- split(oss_contributors, oss_contributors$project) plot(NULL, xlim = range(oss_contributors$month), ylim = c(0, max(oss_contributors$cumulative)), xlab = "Date", ylab = "Total Contributors", main = "Open Source Contributor Signups") cols <- c(freebsd = "red", openbsd = "orange", netbsd = "blue", postgresql = "purple") for (p in names(projects)) { d <- projects[[p]] lines(d$month, d$cumulative, col = cols[p], lwd = 2) } legend("topleft", names(cols), col = cols, lwd = 2)
Daily signup counts for the FreeBSD Phabricator code review platform. Represents account registrations, not commit activity. Suitable for time series analysis. No personal information included.
data(oss_contributors_daily)data(oss_contributors_daily)
A data frame with 2531 rows and 5 variables:
character, always "freebsd"
character, always "phabricator"
Date, the signup date
integer, new signups that day
integer, running total
Aggregated from public Phabricator user data at https://reviews.freebsd.org
data(oss_contributors_daily) plot(oss_contributors_daily$date, oss_contributors_daily$new_contributors, type = "h", xlab = "Date", ylab = "New Signups", main = "FreeBSD Daily Phabricator Signups")data(oss_contributors_daily) plot(oss_contributors_daily$date, oss_contributors_daily$new_contributors, type = "h", xlab = "Date", ylab = "New Signups", main = "FreeBSD Daily Phabricator Signups")
Daily counts of authors making their first commit to each project. Extracted from cloned git repositories. Includes all authors.
data(oss_daily_authors)data(oss_daily_authors)
A data frame with 2932 rows and 4 variables:
character, project name
Date, date of first commit
integer, new committers that day
integer, running total of unique committers
Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres
data(oss_daily_authors) projects <- split(oss_daily_authors, oss_daily_authors$project) plot(NULL, xlim = range(oss_daily_authors$date), ylim = c(0, max(oss_daily_authors$cumulative_authors)), xlab = "Date", ylab = "Total Unique Committers", main = "Cumulative Committers Over Time") cols <- c(freebsd = "red", openbsd = "orange", netbsd = "blue", postgresql = "purple") for (p in names(projects)) { lines(projects[[p]]$date, projects[[p]]$cumulative_authors, col = cols[p], lwd = 2) } legend("topleft", names(cols), col = cols, lwd = 2)data(oss_daily_authors) projects <- split(oss_daily_authors, oss_daily_authors$project) plot(NULL, xlim = range(oss_daily_authors$date), ylim = c(0, max(oss_daily_authors$cumulative_authors)), xlab = "Date", ylab = "Total Unique Committers", main = "Cumulative Committers Over Time") cols <- c(freebsd = "red", openbsd = "orange", netbsd = "blue", postgresql = "purple") for (p in names(projects)) { lines(projects[[p]]$date, projects[[p]]$cumulative_authors, col = cols[p], lwd = 2) } legend("topleft", names(cols), col = cols, lwd = 2)
Daily commit counts for FreeBSD, OpenBSD, NetBSD, and PostgreSQL, extracted directly from cloned git repositories. Includes all commits from all authors.
data(oss_daily_commits)data(oss_daily_commits)
A data frame with 44939 rows and 4 variables:
character, project name
Date, commit date
integer, commits that day
integer, running total
Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres
data(oss_daily_commits) fb <- oss_daily_commits[oss_daily_commits$project == "freebsd", ] plot(fb$date, fb$cumulative_commits, type = "l", xlab = "Date", ylab = "Total Commits", main = "FreeBSD Cumulative Commits")data(oss_daily_commits) fb <- oss_daily_commits[oss_daily_commits$project == "freebsd", ] plot(fb$date, fb$cumulative_commits, type = "l", xlab = "Date", ylab = "Total Commits", main = "FreeBSD Cumulative Commits")
Weekly commit counts for major open source projects from GitHub. Measures actual code activity (not signups). Counts are aggregated across the top 100 contributors per project (GitHub API limitation). No personal information included.
data(oss_weekly_commits)data(oss_weekly_commits)
A data frame with 6307 rows and 5 variables:
character, project name
character, always "github"
Date, start of the week (Sunday)
integer, commits that week
integer, running total of commits
GitHub: https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres
data(oss_weekly_commits) fb <- oss_weekly_commits[oss_weekly_commits$project == "freebsd", ] plot(fb$date, fb$commits, type = "l", xlab = "Date", ylab = "Commits per Week", main = "FreeBSD Weekly Commit Activity (top 100 authors)")data(oss_weekly_commits) fb <- oss_weekly_commits[oss_weekly_commits$project == "freebsd", ] plot(fb$date, fb$commits, type = "l", xlab = "Date", ylab = "Commits per Week", main = "FreeBSD Weekly Commit Activity (top 100 authors)")