Contributing to birdweatheR
Thank you for your interest in contributing to birdweatheR! This document outlines how to report bugs, request features, and contribute code.
Reporting bugs
Please use the bug report issue template and include:
- A minimal reproducible example (use
reprex::reprex()if possible) - The output of
sessionInfo() - The full error message or unexpected output
Requesting features
Use the feature request template to suggest new functions, additional API filters, or improvements to existing behavior.
Contributing code
- Fork the repository and create a branch from
main - Make your changes, following the code style guidelines below
- Run
devtools::check()and resolve any errors or warnings - Submit a pull request with a clear description of what changed and why
Code style
- Follow the tidyverse style guide for general R conventions (naming, spacing)
- This package uses
data.tablethroughout — new contributions should follow the same pattern rather than introducingdplyror other data manipulation dependencies - Use
lintr::lint_package()to check for style issues before submitting - All new functions must have roxygen2 documentation (
@param,@return,@examples) - Examples that require an API connection must be wrapped in
\dontrun{}
Adding new API functions
If you are wrapping a new BirdWeather API endpoint:
- Follow the existing pattern in
R/get_detections.Rfor pagination and retry logic - Use
fetch_page_with_retry()for any paginated GraphQL queries - Return a flat
data.table— no nested lists in the output - Add the function to
NAMESPACEvia@exportand re-rundevtools::document()
Questions
For general questions about the package or the BirdWeather API, please open an issue rather than emailing the maintainers directly — this keeps answers visible to the community.
For questions about the BirdWeather platform itself, see the BirdWeather documentation or contact the BirdWeather team.