Skip to contents

suwo 0.2.0

Major changes

  • Refactored all HTTP requests to rely more consistently on httr2, including:
    • Use of req_url_query() instead of manual URL string concatenation.
    • Use of resp_body_json() where applicable.
  • Unified argument order across all query_*() functions for a more consistent user interface.
  • Default media format changed from "sound" to "image" where applicable.
  • Global options are now namespaced with suwo_ to avoid conflicts (e.g. suwo_verbose, suwo_format).
  • Improved pagination and request robustness for GBIF, WikiAves, Xeno-Canto, and iNaturalist queries.
  • Progress reporting refactored to use cli instead of pbapply.
  • Migrated roxygen documentation to Markdown syntax.
  • Reformatted the codebase using air, with a GitHub Actions workflow to enforce formatting.
  • Dropped unused or unnecessary dependencies (methods, viridis), updated minimum R version to ≥ 4.0.0, and moved vignette-only packages to Suggests.
  • Replaced mc.cores option with suwo_cores to allow users to set parallelization consistently across suwo functions within an R session.

API keys & security

  • Xeno-Canto API keys are now read exclusively from environment variables via Sys.getenv("xc_api_key").
  • Removed encouragement of API keys being passed directly in function calls or stored in options.

Validation & robustness

  • Added stricter input validation:
    • Enforced single-species queries where required.
    • Improved error handling for incorrect inputs to remove_duplicates().
  • Metadata records without associated media URLs are now stored as an attribute of the returned data frame instead of global options.
  • Improved handling of duplicated media records and clarified their interpretation in documentation.
  • Replaced usage of methods::is() with inherits().

Documentation & usability

  • Expanded vignette explanations, including clearer alt text for figures.
  • Clarified licensing and responsibility for commercial use of retrieved data.
  • Improved guidance for handling duplicated records.
  • README rendering is now triggered only when README.Rmd changes.

Testing & maintenance

  • Cleaned up test infrastructure and fixed Codecov integration.
  • Removed duplicated .onLoad() definitions.
  • Simplified internal code by removing unnecessary paste() calls and replacing seq_len(length()) with seq_along().

suwo 0.1.0

  • First release