Thanks for your interest in contributing. kernR welcomes bug reports, ideas, and pull requests.
- Bug reports / feature requests: open an issue using the appropriate template.
- Security disclosures: see SECURITY.md. Do not file a public issue for security findings.
- Code of Conduct: this project follows the Contributor Covenant 2.1.
# 1. Fork and clone the repo, then:
pak::pak("local::.", dependencies = TRUE)
# 2. Iterative development (do NOT R CMD INSTALL while the package is loaded —
# on Box-cloud-synced paths it can corrupt the lazy-load DB):
devtools::load_all()
devtools::test()
# 3. Lint and document before pushing:
lintr::lint_package()
devtools::document()
# 4. Full check on a tarball (CRAN form). On macOS with a broken FLIBS toolchain
# you may need R_MAKEVARS_USER=/dev/null and a temporary strip of $(FLIBS)
# from src/Makevars; restore it before committing.
R CMD build .
R CMD check --as-cran kernR_*.tar.gz- R: snake_case throughout.
data.tableis the default tabular backend; tidyverse is permitted where it improves clarity. Australian/British English. - C++: RcppArmadillo. Keep changes localised; avoid global state.
- Tests:
testthatedition 3, parallel-safe. Add at least one test for every new exported function and every bug fix. - Documentation: roxygen2 with
@returns,@examples(executable, no blanket\dontrun{}),@familyfor grouping.air formatis encouraged but not yet wired into pre-commit. - Lint:
lintr::lint_package()must be clean before merge. Per-location# nolintcomments are acceptable for justified cases (with the linter name and a one-line rationale).
- One PR per logical change. Tests must pass on CI (Ubuntu / macOS / Windows × R release / devel / oldrel).
- Update
NEWS.mdunder the dev-version heading for any user-visible change. - If you change function signatures, regenerate Rd files (
devtools::document()) and include them in the PR. - The repository uses the
mainbranch as the default; please rebase onmainbefore requesting review.
| Layer | Primary | Secondary |
|---|---|---|
| R | Max Moldovan | Dino Sejdinovic |
| C++ / RcppArmadillo | Max Moldovan | (seeking second reviewer) |
| Statistical methodology | Dino Sejdinovic | Max Moldovan |
Numerical correctness is taken seriously. If you find a discrepancy between kernR's output and a reference implementation (the original Python kgformula / DR_distributional_test repos, or another R kernel-test package), please attach a minimal reproducible example and the comparison output.