The duckplyr package aims at providing a fully compatible drop-in replacement for dplyr. To achieve this, only a carefully selected subset of dplyr's operations, R functions, and R data types are implemented. Whenever duckplyr encounters an incompatibility, it falls back to dplyr.
To assist future development, the fallback situations can be logged to the console or to a local file and uploaded for analysis. By default, duckplyr will not log or upload anything. The functions and environment variables on this page control the process.
fallback_sitrep()
prints the current settings for fallback logging and uploading,
the number of reports ready for upload, and the location of the logs.
fallback_review()
prints the available reports for review to the console.
fallback_upload()
uploads the available reports to a central server for analysis.
The server is hosted on AWS and the reports are stored in a private S3 bucket.
Only authorized personnel have access to the reports.
fallback_purge()
deletes some or all available reports.
Usage
fallback_sitrep()
fallback_review(oldest = NULL, newest = NULL, detail = TRUE)
fallback_upload(oldest = NULL, newest = NULL, strict = TRUE)
fallback_purge(oldest = NULL, newest = NULL)
Arguments
- oldest, newest
The number of oldest or newest reports to review. If not specified, all reports are dispayed.
- detail
Print the full content of the reports. Set to
FALSE
to only print the file names.- strict
If
TRUE
, the function aborts if any of the reports fail to upload. WithFALSE
, only a message is printed.
Details
Logging and uploading are both opt-in. By default, for logging, a message is printed to the console for the first time in a session and then once every 8 hours.
The following environment variables control the logging and uploading:
DUCKPLYR_FALLBACK_COLLECT
controls logging, set it to 1 or greater to enable logging. If the value is 0, logging is disabled. Future versions of duckplyr may start logging additional data and thus require a higher value to enable logging. Set to 99 to enable logging for all future versions. Useusethis::edit_r_environ()
to edit the environment file.DUCKPLYR_FALLBACK_VERBOSE
controls printing, set it toTRUE
orFALSE
to enable or disable printing. If the value isTRUE
, a message is printed to the console for each fallback situation. This setting is only relevant if logging is enabled.DUCKPLYR_FALLBACK_AUTOUPLOAD
controls uploading, set it to 1 or greater to enable uploading. If the value is 0, uploading is disabled. Currently, uploading is active if the value is 1 or greater. Future versions of duckplyr may start logging additional data and thus require a higher value to enable uploading. Set to 99 to enable uploading for all future versions. Useusethis::edit_r_environ()
to edit the environment file.DUCKPLYR_FALLBACK_LOG_DIR
controls the location of the logs. It must point to a directory (existing or not) where the logs will be written. By default, logs are written to a directory in the user's cache directory as returned bytools::R_user_dir("duckplyr", "cache")
.
All code related to fallback logging and uploading is in the
fallback.R
and
telemetry.R
files.
Examples
fallback_sitrep()
#> The duckplyr package is configured to fall back to dplyr when it
#> encounters an incompatibility. Fallback events can be collected and
#> uploaded for analysis to guide future development. By default, no data
#> will be collected or uploaded.
#> ℹ Fallback logging is not controlled and therefore disabled. Enable it
#> with `Sys.setenv(DUCKPLYR_FALLBACK_COLLECT = 1)`, disable it with
#> `Sys.setenv(DUCKPLYR_FALLBACK_COLLECT = 0)`.
#> ℹ Fallback uploading is not controlled and therefore disabled. Enable it
#> with `Sys.setenv(DUCKPLYR_FALLBACK_AUTOUPLOAD = 1)`, disable it with
#> `Sys.setenv(DUCKPLYR_FALLBACK_AUTOUPLOAD = 0)`.
#> ℹ See `?duckplyr::fallback()` for details.