Thank you for your interest in contributing to reproducr. There are two main ways to contribute:
- Contributing to the package — bug fixes, new features, tests, documentation
- Contributing breaking-change entries — the most impactful contribution for most users. See reproducr-db
Contributing to the package
Before you start
- Check the issue tracker to see if the bug or feature has already been reported
- For significant changes, open an issue first to discuss the approach before writing code
- Small bug fixes and documentation improvements can go straight to a PR
Development setup
# Clone the repo
# git clone https://github.com/repro-stats/reproducr.git
# Install development dependencies
install.packages("devtools")
devtools::install_deps(dependencies = TRUE)
# Load the package
devtools::load_all()
# Run tests
devtools::test()
# Check the package
devtools::check()Code style
- Follow the existing code style — base R, no tidyverse imports in the package itself
- All exported functions must have roxygen2 documentation
- All new functionality must have tests in
tests/testthat/ - Use
--for em dashes in comments and documentation (no non-ASCII characters) - Internal helpers should be prefixed with
.and documented with#' @noRd
Adding a new risk check
risk_score() supports three check methods: "changelog", "seed_check", "locale_check". To add a new check method:
- Add the check logic as a new internal function
.check_<name>(calls, ...)inR/risk_score.R - Register it in the
methodsargument ofrisk_score() - Add tests in
tests/testthat/test-risk_score.R - Document it in the
@param methodssection ofrisk_score()
Contributing breaking-change entries
The breaking-changes database that powers risk_score() is maintained in a separate repository:
This is the most impactful contribution for most users. If you have hit a silent breaking change in a CRAN package — one that changed function behaviour without an error or warning — please contribute an entry.
See the reproducr-db contributing guide for the entry format and submission process.
Reporting bugs
Please include:
- A minimal reproducible example
- Your R version (
R.version.string) - Your platform (
Sys.info()[["sysname"]]) - Whether you are using
renvand if so yourrenv.lockR and package versions - The full error message or unexpected output
Open a bug report at: https://github.com/repro-stats/reproducr/issues/new
Code of conduct
Please be respectful and constructive in all interactions. This project follows the Contributor Covenant code of conduct.