I encountered a few CRAN packages that do surprising things in their R/ files, that perhaps R could warn against. WRE states "Ideally, the R code files should only directly assign R objects and definitely should not call functions with side effects such as require and options. One example of a package that does exactly these things: https://github.com/cran/HDBRR/blob/master/R/HDBRR.R#L1-L15 . Interestingly, it calls require(bigparallelr) and then a function from bigparallelr, without even declaring this dependency in the DESCRIPTION, which goes unnoticed in CMD check. I suspect the author wants this to run this on package-load time, while in fact this happens during install time. Hence it does not have the intended effect and leads to strange behavior on build-servers.
>>>>> Jeroen Ooms writes:Thanks. Let me try to (find the time to) take a closer look (including reminding myself of how the package dependency check code works ...) Best -k> I encountered a few CRAN packages that do surprising things in their > R/ files, that perhaps R could warn against.> WRE states "Ideally, the R code files should only directly assign R > objects and definitely should not call functions with side effects > such as require and options. One example of a package that does > exactly these things: > https://github.com/cran/HDBRR/blob/master/R/HDBRR.R#L1-L15 . > Interestingly, it calls require(bigparallelr) and then a function from > bigparallelr, without even declaring this dependency in the > DESCRIPTION, which goes unnoticed in CMD check.> I suspect the author wants this to run this on package-load time, > while in fact this happens during install time. Hence it does not have > the intended effect and leads to strange behavior on build-servers.> ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel