Thank you for considering a contribution. Issues and pull requests are both welcome, whether they fix a bug, improve the documentation or add a plot.
Reporting a problem or suggesting a feature
Please open an issue at https://github.com/pablobernabeu/depictr/issues. A small reproducible example (reprex) helps a great deal, and for a plotting bug a screenshot of the result is useful too.
Setting up for development
# install.packages("pak")
pak::pak("pablobernabeu/depictr")
pak::pak(c("devtools", "roxygen2", "testthat", "spelling"))
devtools::document() # regenerate man/ and NAMESPACE after editing roxygen
devtools::test() # run the test suite
devtools::check() # a full R CMD checkConventions
Every plotting function returns a ggplot2 object (or a patchwork for composite panels), so a plot can be extended with the usual + syntax. New or changed plots should keep the shared theme (theme_depictr) and the colourblind-safe palette, and where a specialist package computes a quantity well, depictr delegates to it and redraws the result, leaving the computation where it is. The prose follows British spelling, and spelling::spell_check_package() keeps the word list tidy.
The bundled datasets are generated by data-raw/generate_datasets.R, and the fitted objects in inst/extdata/ by the cluster scripts in dev/hpc/. Both directories are excluded from the build but are the only record of how those files were produced, so keep them in step when the artefacts are regenerated.
Automated maintenance
Scheduled workflows watch for breakage from upstream: a dependency canary rebuilds the package against current and development dependency versions, and a link check verifies the URLs in the sources. Both file a single issue on failure, using the templates in .github/issue-templates/, and comment on it on each subsequent failure. The issue can be closed by hand once the check passes again.
Submitting a pull request
Base your work on main, keep the change focused, and add or update tests and documentation alongside the code. Running devtools::document(), devtools::test() and devtools::check() before opening the pull request saves a round trip.
By contributing you agree that your contribution is licensed under the same MIT licence as the package, and that you will follow the Code of Conduct.
