{
  "_id": "6ad87d6669e274306bae958e",
  "Package": "reproducr",
  "Title": "Behavioural Reproducibility Auditing for R Projects",
  "Version": "0.2.1.9000",
  "Authors@R": "person(\"Ndoh\", \"Penn\", email = \"ndohpenn9@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0009-0003-9054-465X\"))",
  "Description": "Audits R scripts for behavioural reproducibility risk.\nScans scripts for qualified package::function calls and checks\nthem against a curated database of known silent breaking\nchanges across popular CRAN packages. Flags stochastic calls\nlacking set.seed() and detects locale-sensitive operations that\nmay produce different results across systems. Supports baseline\ncertification of analytical outputs so that silent numerical\ndrift can be detected across package upgrades or platform\nchanges. Generates human-readable audit reports suitable for\nacademic submission or pharmaceutical QC workflows. For more\ndetails see <https://github.com/repro-stats/reproducr>.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/repro-stats/reproducr",
  "BugReports": "https://github.com/repro-stats/reproducr/issues",
  "Repository": "https://repro-stats.r-universe.dev",
  "Date/Publication": "2026-06-23 14:06:22 UTC",
  "RemoteUrl": "https://github.com/repro-stats/reproducr",
  "RemoteRef": "HEAD",
  "RemoteSha": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-21 08:50:05 UTC",
    "User": "root"
  },
  "Author": "Ndoh Penn [aut, cre] (ORCID: <https://orcid.org/0009-0003-9054-465X>)",
  "Maintainer": "Ndoh Penn <ndohpenn9@gmail.com>",
  "_user": "repro-stats",
  "_type": "src",
  "_file": "reproducr_0.2.1.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/85efff3d46592059798bd69f5dbd66c6e4141d77032d48097b22d2237b9e81ab",
  "_filesize": 285292,
  "_sha256": "85efff3d46592059798bd69f5dbd66c6e4141d77032d48097b22d2237b9e81ab",
  "_expires": "2027-01-29T08:52:52.000Z",
  "_created": "2026-10-21T08:50:05.000Z",
  "_published": "2026-10-21T08:52:54.056Z",
  "_buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 119129244475,
      "time": 131,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12332598677"
    },
    {
      "job": 119129244858,
      "time": 108,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12332483898"
    },
    {
      "job": 119129244704,
      "time": 113,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12332532946"
    },
    {
      "job": 119129244517,
      "time": 103,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12331514590"
    },
    {
      "job": 119127822320,
      "time": 202,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12332418024"
    },
    {
      "job": 119129244567,
      "time": 87,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12332392916"
    },
    {
      "job": 119129244685,
      "time": 58,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12332796875"
    },
    {
      "job": 119129244681,
      "time": 74,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12332826453"
    },
    {
      "job": 119129244804,
      "time": 87,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12332861450"
    }
  ],
  "_upstream": "https://github.com/repro-stats/reproducr",
  "_commit": {
    "id": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
    "author": "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
    "committer": "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>",
    "message": "chore: sync breaking_changes_db.R from reproducr-db [skip ci]\n",
    "time": 1782223582
  },
  "_maintainer": {
    "name": "Ndoh Penn",
    "email": "ndohpenn9@gmail.com",
    "login": "ndohpenngit",
    "linkedin": "in/ndohpenn",
    "orcid": "0009-0003-9054-465X",
    "description": "Statistician | Open-source enthusiast",
    "uuid": 55984177
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "digest",
      "version": ">= 0.6.0",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "commonmark",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "repro-stats",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-22",
      "n": 37
    },
    {
      "week": "2026-23",
      "n": 77
    },
    {
      "week": "2026-24",
      "n": 12
    },
    {
      "week": "2026-25",
      "n": 10
    },
    {
      "week": "2026-26",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.1.1",
      "date": "2026-06-02"
    },
    {
      "name": "v0.1.2",
      "date": "2026-06-06"
    },
    {
      "name": "v0.2.0",
      "date": "2026-06-10"
    },
    {
      "name": "v0.2.1",
      "date": "2026-06-16"
    }
  ],
  "_topics": [
    "audit",
    "ci-cd",
    "renv",
    "reproducibility",
    "reproducible-workflows"
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "ndohpenngit",
      "count": 126,
      "uuid": 55984177
    }
  ],
  "_userbio": {
    "uuid": 290093114,
    "type": "organization",
    "name": "reprostats",
    "followers": 1,
    "description": "Open-source R tools for reproducibility and audit logging"
  },
  "_downloads": {
    "count": 259,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/reproducr"
  },
  "_devurl": "https://github.com/repro-stats/reproducr",
  "_searchresults": 15,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/reproducr.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/repro-stats/reproducr",
  "_realowner": "repro-stats",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-06-20"
    }
  ],
  "_exports": [
    "audit_script",
    "certify",
    "check_db_staleness",
    "check_drift",
    "list_certs",
    "repro_badge",
    "repro_report",
    "risk_score"
  ],
  "_help": [
    {
      "page": "reproducr-package",
      "title": "reproducr: Behavioural Reproducibility Auditing for R Projects",
      "topics": [
        "reproducr-package",
        "reproducr"
      ]
    },
    {
      "page": "audit_script",
      "title": "Audit an R script for reproducibility risks",
      "topics": [
        "audit_script",
        "print.audit_report",
        "summary.audit_report"
      ]
    },
    {
      "page": "certify",
      "title": "Certify analytical outputs as a reproducibility baseline",
      "topics": [
        "certify"
      ]
    },
    {
      "page": "check_db_staleness",
      "title": "Check whether breaking-changes database entries are stale",
      "topics": [
        "check_db_staleness",
        "print.staleness_report"
      ]
    },
    {
      "page": "check_drift",
      "title": "Check analytical outputs for drift against a certified baseline",
      "topics": [
        "check_drift"
      ]
    },
    {
      "page": "list_certs",
      "title": "List all certifications stored in a certification file",
      "topics": [
        "list_certs"
      ]
    },
    {
      "page": "repro_badge",
      "title": "Generate a reproducibility status badge",
      "topics": [
        "repro_badge"
      ]
    },
    {
      "page": "repro_report",
      "title": "Generate a human-readable reproducibility report",
      "topics": [
        "repro_report"
      ]
    },
    {
      "page": "risk_score",
      "title": "Score function calls for reproducibility risk",
      "topics": [
        "as.data.frame.risk_report",
        "print.risk_report",
        "risk_score",
        "[.risk_report"
      ]
    }
  ],
  "_pkglogo": "https://github.com/repro-stats/reproducr/raw/HEAD/man/figures/logo.svg",
  "_readme": "https://github.com/repro-stats/reproducr/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "audit-and-risk.Rmd",
      "filename": "audit-and-risk.html",
      "title": "Auditing scripts and scoring risk",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How audit_script() detects calls",
        "What gets skipped",
        "Single-file vs directory scan",
        "Version resolution",
        "The audit_report object",
        "How risk_score() works",
        "Check 1: \"changelog\" — the breaking-changes database",
        "Check 2: \"seed_check\" — missing set.seed()",
        "Check 3: \"locale_check\" — locale-sensitive operations",
        "Combining checks and filtering",
        "Working with the results",
        "Practical interpretation"
      ],
      "created": "2026-05-30 22:49:06",
      "modified": "2026-06-10 20:42:40",
      "commits": 5
    },
    {
      "source": "certify-and-drift.Rmd",
      "filename": "certify-and-drift.html",
      "title": "Certifying outputs and detecting drift",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem they solve — a real scenario",
        "Scenario — The revision drift problem",
        "certify() — creating a baseline",
        "What gets hashed",
        "Choosing what to certify",
        "Tags and the certification store",
        "list_certs() — inspecting the store",
        "check_drift() — comparing against a baseline",
        "Basic usage",
        "The four statuses",
        "Using \"latest\"",
        "Using drift results programmatically",
        "Recommended workflow",
        "At submission",
        "After reviewer comments",
        "Version control"
      ],
      "created": "2026-05-30 22:49:06",
      "modified": "2026-06-10 20:42:40",
      "commits": 4
    },
    {
      "source": "contributing-to-the-database.Rmd",
      "filename": "contributing-to-the-database.html",
      "title": "Contributing to the breaking-changes database",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What belongs in the database",
        "Examples of things that belong",
        "Examples of things that do not belong",
        "The database schema",
        "The version window",
        "Rules for setting to_version",
        "Quick reference",
        "Risk levels",
        "Finding candidates",
        "From NEWS.md files",
        "From your own experience",
        "Writing an entry",
        "Testing your entry",
        "Submitting a pull request",
        "Minimum test for a new entry",
        "Keeping the database current"
      ],
      "created": "2026-05-30 22:49:06",
      "modified": "2026-06-01 12:24:49",
      "commits": 3
    },
    {
      "source": "reports-and-badges.Rmd",
      "filename": "reports-and-badges.html",
      "title": "Generating reports and badges",
      "engine": "knitr::rmarkdown",
      "headings": [
        "repro_report() — generating reports",
        "The verdict",
        "Style: \"minimal\"",
        "Style: \"academic\"",
        "Style: \"pharma\"",
        "Format: \"md\" and \"html\"",
        "All nine combinations",
        "repro_badge() — status badges",
        "Badge colours",
        "Inserting into README.md",
        "Removing a badge",
        "Full CI pipeline"
      ],
      "created": "2026-05-30 22:49:06",
      "modified": "2026-06-10 20:42:40",
      "commits": 4
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started with reproducr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is reproducr?",
        "Why this matters — real failure modes",
        "Scenario 1 — The collaborator upgrade problem",
        "Scenario 2 — The server deployment problem",
        "Scenario 3 — The renv false sense of security",
        "Tier 1: Scan and score",
        "Auditing a script",
        "Scoring for risk",
        "Tier 2: Baseline and drift detection",
        "Certifying outputs",
        "Checking for drift",
        "Tier 3: Report and export",
        "The full pipeline"
      ],
      "created": "2026-05-30 22:49:06",
      "modified": "2026-06-10 20:42:40",
      "commits": 5
    }
  ],
  "_score": 5.273001272063738,
  "_indexed": true,
  "_nocasepkg": "reproducr",
  "_universes": [
    "repro-stats",
    "ndohpenngit"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:52:18.000Z",
      "distro": "resolute",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/ad5192f1ee5009f1600d3583739b1c86329113229dae7faadc8b44d0719b9e3a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:55.000Z",
      "distro": "resolute",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/53b0c96285c84a756eb45d48013a44822130f97ccee7f63b75738eff223b77f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:52:01.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/14eeb8ab5c2c25d39b4664a1baeed2367d4762e61b206a5e15af4c255d8409c6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:53.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/ec12600245a66915d3a74cc09cd4a512ac82a292f60f98373231c277484a11d6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:51.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/fd8cde92bf0475f1b4b565f2806e0a8ac5824d53d439814f02e4a67a14132f70",
      "status": "success",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:03.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/2f668debccabd90e9daf9cd931949cb7dcc403af57db5b063287b3958969ad7c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:12.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/cf8bcf20ff1abb0871ba7001031293aea9e8c3322055887f2e668f424cfb2a1a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.1.9000",
      "date": "2026-10-21T08:51:20.000Z",
      "commit": "ee38c1efbc7c09b2294088a2ba2dc50aa11252c9",
      "fileid": "https://r2.ropensci.org/192dc1218e65d33714cbea78f97482c600b6cfc4e6d39a94f6fbb8452e7250e1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/repro-stats/actions/runs/39571841331"
    }
  ]
}