On 15/12/2022 10:25 a.m., Spencer Graves wrote:

          The "sos" package includes a function "CRAN", which is used for that
purpose.  The examples section in "findfn.Rd" includes the following:


# Skip these tests on CRAN,
# because they take more than 5 seconds
if(!CRAN()){
...
}


          I know that some on this list do not like this construct, but it has
helped me manage this problem for several years.  NOTE:  This CRAN
function is NOT maintained by anyone on CRAN, so it is NOT guaranteed to
work.  However, the "sos" package is currently on CRAN, and I have not
seen an email asking me to avoid it ;-)

I've been reminded today why this is such a bad idea. I'm preparing an update of the rgl package. As I attempt to be a good citizen, I'm doing comparison checks of all of the 300 packages that use it, to see if my updates break anything. I am not CRAN, so if any of those packages follow Spencer's scheme, I'll have to wait even longer for the run to finish. (Currently it's about 15 hours predicted time on my slow laptop.)

It's more considerate to have a function that defaults to not running slow tests unless you specifically ask for them to be run. The testthat package does this using the NOTCRAN environment variable: it assumes everyone is CRAN unless they specifically declare themselves not to be. Strange choice of name, but it achieves what I'm suggesting. The tinytest package has an "at_home" argument to some functions; when testing a whole package, it defaults to FALSE, which is also the considerate choice.

Duncan Murdoch

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to