Dear all, tl;dr: several CRAN packages can modify the user filespace without explicitly requiring the user to specify the path, but I was required to change the default behavior of some functions in my package because they would modify the user's filespace. This seems inconsistent to me (and therefore it's a bit frustrating), is there a way to clarify it in the policies?
Longer version: A couple of weeks ago, I submitted a package, flir [0], that provides several functions that write to the user directory (it is now on CRAN). For instance, `setup_flir()` creates a folder "flir" in the working directory, and `fix()` parses all R files in the working directory and potentially modifies them following a list of predefined rules. The behavior of those functions was clearly documented. Those functions had an argument `path = "."` by default. During the submission process, I got a comment indicating that I had to remove this default value and force users to specify a value for `path` instead (or interactively handle it if it is missing), which is a bit annoying simply because it forces extra typing. This comment was referring to the following paragraph from CRAN policies: "Packages should not write in the user’s home filespace (including clipboards), nor anywhere else on the file system apart from the R session’s temporary directory (or during installation in the location pointed to by TMPDIR: and such usage should be cleaned up). Installing into the system’s R installation (e.g., scripts to its bin directory) is not allowed. Limited exceptions may be allowed in interactive sessions if the package obtains confirmation from the user." I understand the willingness to minimize automatic changes to the user's file system, but it seems to me that this rule is not consistently applied. There are plenty of functions from external packages that directly write to the user's file system without specifying a path and without obtaining confirmation from the user, such as `altdoc::setup_docs(), `pkgdown::build_site()`, `Rcpp::Rcpp.package.skeleton()`, `roxygen2::roxygenize()`, most of `usethis` functions, etc. Therefore, it's quite unclear to me why removing the default `path = "."` was required in this case. Does this depend on who reviews the submissions? Is there a way to clarify it in the policies? Best, Etienne [0]: https://cran.r-project.org/web/packages/flir/ ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel