Removed automatic package installation from all package code to comply with CRAN policy that prohibits writing to user filespace during checks.
Pre-build package validation: Builds now check for all required packages (build engines, remote destinations) BEFORE starting the build process. If packages are missing, you get a clear error with a copy-paste installation command for all missing packages at once.
Improved error messages: When running interactively and a package is needed but not installed, projr provides clear, actionable error messages with exact installation commands. No automatic installation occurs to ensure CRAN compliance.
.dep_install_only() and .renv_lockfile_read() no longer automatically install missing packages. Instead, they throw clear, informative errors with installation instructions when required packages are missing.
Users must now manually install required optional dependencies before using features that depend on them. The error messages provide exact installation commands.
This change affects functions that previously auto-installed packages like:
gh package)gert package)usethis package)roxygen2 package)For renv projects: Use renv::install() to install dependencies
For non-renv projects: Use install.packages() or remotes::install_github() as shown in error messages
Improved debug output: All piggyback operations (download, upload, delete, list) now provide detailed debug messages when PROJR_OUTPUT_LEVEL="debug" is set
suppressWarnings/suppressMessages)Better error handling for manifest.csv and VERSION file operations:
tryCatch blocks to handle download failures gracefullyEnhanced reliability:
piggyback package are no longer silently suppressedTo enable detailed debug output for piggyback operations:
# Set environment variable before running builds
Sys.setenv(PROJR_OUTPUT_LEVEL = "debug")
projr_build_patch()
# Or pass directly to build functions
projr_build_patch(output_level = "debug")
This will show detailed information about all GitHub release operations, making it much easier to diagnose issues with manifest.csv, VERSION file downloads, or release asset uploads.
NEWS.md file to track changes to the package.