Thank you for your interest in improving krt. Contributions of all kinds are welcome: bug reports, feature requests, documentation, profiles, validators, and code.
Reporting issues
- Search existing issues first.
- Use the bug report or feature request templates.
- For bugs, include a minimal reproducible example (a
reprex) and the output ofsessionInfo().
Development workflow
- Fork and clone the repository.
- Install development dependencies:
devtools::install_dev_deps(). - Make your change on a feature branch.
- Run
devtools::document()to regenerateNAMESPACEandman/. - Run
devtools::test()anddevtools::check(); both must pass cleanly. - Keep the offline-first testing contract: any function that touches the network must have a mock or
resolve = FALSEpath, and its tests mustskip_on_cran()andskip_if_offline(). - Open a pull request describing the change and referencing any related issue.
Coding conventions
- Base R and S3; no tidyverse in package code.
snake_case. - Call dependencies as
pkg::fn(); do not addimportFromdirectives. - Document exported functions with roxygen2 (markdown mode); mark internal helpers
@noRd. - Heavy or optional dependencies belong in
Suggestsand must be gated withrequireNamespace(). - American English spelling. Do not use a dash as a sentence connector.
Adding a profile, validator, resolver, or extractor
krt is extensible through public registries. See vignette("extending-krt") for the plugin contracts and worked examples.
