reproducr 0.2.0
risk_score()gains amajor_version_graceparameter (default1L) – when the installed version is one or more major versions ahead of an entry’sfrom_version, the entry is suppressed entirely. This prevents historically wide version windows (e.g. a major package rewrite from several years ago) from generating false-positive flags for users who are already well past the breaking-change transition.check_db_staleness()gains afrom_version_major_thresholdparameter (default1L) – flags database entries where the current CRAN release is one or more major versions ahead offrom_version, indicating the window floor may be too wide and the entry may need itsfrom_versionraised or the entry closed. New status values:"stale_ceiling"(the previous"stale"status, renamed for clarity) and"stale_floor".
reproducr 0.1.5
Fixed remaining relative URI in
README.md–CODE_OF_CONDUCT.mdlink now uses the full absolute GitHub URL. Resolves CRAN pre-check NOTE: “Found the following (possibly) invalid file URI”.Updated
MatchIt::matchitdatabase entry: narrowedfrom_versionfrom3.0.2to4.6.99to reflect that the 3.x -> 4.x rewrite is long complete and active users are on 4.x.
reproducr 0.1.4
- Fixed invalid relative URIs in
README.md–CODE_OF_CONDUCT.mdandCONTRIBUTING.mdlinks now use absolute GitHub URLs. Resolves CRAN pre-check NOTE: “Found the following (possibly) invalid file URI”.
reproducr 0.1.3
Added
CONTRIBUTING.mdwith guidelines for contributing to the package and to the breaking-changes database (reproducr-db).Added
CODE_OF_CONDUCT.md(Contributor Covenant).Added
LICENSEandLICENSE.mdfiles for the MIT licence.Fixed bug in
.resolve_current_versions()where packages appearing in multiple library paths caused a “more elements supplied than there are to replace” error. Now takes only the first match.Improved test coverage from 82% to 86%. Added
tests/testthat/test-utils.Rcovering.parse_renv_lock(),.hash_object(),.renv_lock_exists(),.get_os(),.pad(), and.version_in_window().CONTRIBUTING.md,LICENSE.md,CODE_OF_CONDUCT.md, andcodecov.ymladded to.Rbuildignore– present in the GitHub repository but excluded from the CRAN tarball.Added Codecov integration – coverage badge now shown in README.
Added GitHub issue templates (bug report, feature request, database entry suggestion) and PR template.
reproducr 0.1.2
Breaking-changes database
check_db_staleness()now skips entries markedclosed = TRUE– these are intentionally closed version windows (e.g. historical base R changes) that should not be flagged as stale. Five base R entries (stats::sample,stats::rnorm,stats::runif,stats::rbinom,stats::hclust) are now marked closed inreproducr-db.Updated 19 stale
to_versionceilings inreproducr-dbto cover current CRAN releases (dplyr,ggplot2,tidyr,purrr,readr,stringr,data.table,lme4,broom,caret).Added
caret::trainas a new database entry (version window6.0.99to7.0.9).Added
closedandclosed_reasonfields to thereproducr-dbJSON schema.
Reports and badges
repro_report()HTML output now usescommonmarkfor proper Markdown rendering – tables, headers, and code blocks render correctly in all browsers. Falls back gracefully with a message ifcommonmarkis not installed. AddedcommonmarktoSuggests.Risk register in the
"pharma"report style is now a compact summary table rather than individual cards – more readable in regulated workflows.repro_badge()moved to its own file (R/repro_badge.R).
Bug fixes
- Fixed non-ASCII characters (em dashes) across all R source files –
certify.R,utils.R,check_db_staleness.R,reproducr-package.R,audit_script.R,risk_score.R,repro_report.R. ResolvesR CMD checkWARNING on Windows.
Infrastructure
Migrated all repositories to the
repro-statsGitHub organisation.Added
reproducr-cmcto the gallery – a CMC statistical package covering dissolution f2 (ICH Q1B), stability shelf-life (ICH Q1E), and assay method validation (ICH Q2(R1)). Pharma-style QC report,renvlocked, 20 certified outputs.
reproducr 0.1.1
Fixed
audit_script(renv = TRUE)incorrectly falling back to the installed library when a validrenv.lockwas present. The regex parser was matching the R version field in the lockfile header, causing a length mismatch. Now usesjsonlitewhen available for robust JSON parsing, with a corrected regex fallback.Fixed
audit_script()to skip prose lines in.Rmdand.qmdfiles – only lines inside fenced```{r}code blocks are now parsed. Previously, inline backtick references like`stats::sample()`in prose were incorrectly detected as qualified calls, producing false positives when auditing vignettes.Added
check_db_staleness()– comparesto_versionceilings in the breaking-changes database against current CRAN releases. Returns a tidystaleness_reportdata frame with"ok","stale", or"unknown"status per entry. A weekly GitHub Actions workflow opens an issue inreproducr-dbautomatically when stale entries are detected.Narrowed version windows for base R RNG entries (
stats::rnorm,stats::rbinom,stats::runif,stats::sample) fromto_version = "4.9.9"to"3.6.9". Users on modern R (>= 4.x) were being falsely flagged for a 2019 change they are all on the same side of.Narrowed version window for
stats::hclustfrom"4.9.9"to"4.0.9"for the same reason.Added version window design principles to
R/breaking_changes_db.Rand expandedvignette("contributing-to-the-database")with three rules for settingto_versionand a quick-reference table.Launched
reproducr-db– a companion repository for community-contributed breaking-change entries. All 29 existing entries are available as JSON files with a validation CI workflow on every PR.Added
jsonlitetoSuggeststo support robustrenv.lockparsing.Added spelling wordlist (
inst/WORDLIST) – no spelling errors.
reproducr 0.1.0
audit_script()– parse.R,.Rmd, and.qmdfiles to extract all qualifiedpkg::fncalls with version resolution fromrenv.lockor the installed library.risk_score()– three independent risk checks:"changelog"(curated database of known breaking changes),"seed_check"(flags stochastic functions without a nearbyset.seed()), and"locale_check"(flags locale-sensitive operations).certify()– hash and store analytical outputs as a signed baseline.check_drift()– compare current outputs against a stored baseline; reports"ok","drifted","missing", and"new"statuses.list_certs()– inspect all certifications stored in a project’s.reproducr.rdsfile.repro_report()– render audit reports in three styles ("minimal","academic","pharma") and three formats ("text","md","html").repro_badge()– generate a shields.io reproducibility status badge and optionally insert it intoREADME.md.Initial breaking-changes database covering
dplyr,tidyr,ggplot2,readr,purrr,stringr,lubridate,broom,data.table,lme4, and base R (R 3.6.0 RNG changes, R 4.0.0hclust()tie-breaking).