Package 'osscontribs'

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

Help Index


Individual Commit Timestamps (from git repositories)

Description

Every commit from FreeBSD, OpenBSD, NetBSD, and PostgreSQL with full timestamps and anonymized author IDs. Extracted from cloned git repositories.

Usage

data(oss_commits)

Format

A data frame with 2068717 rows and 3 variables:

project

character, project name

timestamp

POSIXct, commit timestamp in UTC

author_id

character, anonymized 12-character author hash

Source

Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres

Examples

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")

Open Source Project Contributor Signups (Monthly)

Description

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.

Usage

data(oss_contributors)

Format

A data frame with 447 rows and 5 variables:

project

character, project name

source

character, data source (phabricator or github)

month

Date, first day of each month

new_contributors

integer, new contributors that month

cumulative

integer, running total for that project

Source

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

Examples

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)

Open Source Project Contributor Signups (Daily, FreeBSD only)

Description

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.

Usage

data(oss_contributors_daily)

Format

A data frame with 2531 rows and 5 variables:

project

character, always "freebsd"

source

character, always "phabricator"

date

Date, the signup date

new_contributors

integer, new signups that day

cumulative

integer, running total

Source

Aggregated from public Phabricator user data at https://reviews.freebsd.org

Examples

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 New Committers (from git repositories)

Description

Daily counts of authors making their first commit to each project. Extracted from cloned git repositories. Includes all authors.

Usage

data(oss_daily_authors)

Format

A data frame with 2932 rows and 4 variables:

project

character, project name

date

Date, date of first commit

new_authors

integer, new committers that day

cumulative_authors

integer, running total of unique committers

Source

Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres

Examples

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 Activity (from git repositories)

Description

Daily commit counts for FreeBSD, OpenBSD, NetBSD, and PostgreSQL, extracted directly from cloned git repositories. Includes all commits from all authors.

Usage

data(oss_daily_commits)

Format

A data frame with 44939 rows and 4 variables:

project

character, project name

date

Date, commit date

commits

integer, commits that day

cumulative_commits

integer, running total

Source

Cloned from https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres

Examples

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")

Open Source Project Commit Activity (Weekly)

Description

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.

Usage

data(oss_weekly_commits)

Format

A data frame with 6307 rows and 5 variables:

project

character, project name

source

character, always "github"

date

Date, start of the week (Sunday)

commits

integer, commits that week

cumulative_commits

integer, running total of commits

Source

GitHub: https://github.com/freebsd/freebsd-src, https://github.com/openbsd/src, https://github.com/NetBSD/src, https://github.com/postgres/postgres

Examples

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)")