-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Problem
Many fpr functions use global variables as default arguments:
fpr_kable <- function(dat, font = font_set, ...) {This works in RStudio (persistent global env) but fails in scripted/CI contexts like GitHub Actions builds where environment scoping is stricter.
Error example:
Error in `fpr::fpr_kable()`:
! object 'font_set' not found
Proposed Solution
Replace global variable defaults with getOption() pattern:
fpr_kable <- function(dat, font = getOption("fpr.font_set", 11), ...) {Implementation
- Audit functions for global variable dependencies
- Create options list with defaults:
# In zzz.R or similar
.onLoad <- function(libname, pkgname) {
options(
fpr.font_set = 11,
fpr.photo_width = "100%"
# ... other defaults
)
}- Update function signatures to use
getOption() - Document available options in package docs
Benefits
- Works in interactive AND scripted contexts
- Users can override via
options(fpr.font_set = 14) - Enables GitHub Actions builds for bookdown reports
- Cleaner, more explicit design
Known Global Variables to Audit
font_setphoto_width- (need full audit)
Related
- Blocks NewGraphEnvironment/mybookdown-template#75 (GitHub Actions builds)
- Part of https://github.com/NewGraphEnvironment/sred-2025-2026/issues/3
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels