[R-pkg-devel] checking windows timing?

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Wed Oct 14 11:59:32 CEST 2020


>>>>> Ben Bolker 
>>>>>     on Tue, 13 Oct 2020 12:46:11 -0400 writes:

    >    Following up on my questions from yesterday:

    >    I've been advised to (drastically) reduce the checking
    > time of my package on CRAN's Windows platform (currently
    > at 23 min). I've gone through and added a lot of
    > conditionals to skip tests on CRAN.  I could reduce it
    > farther but I'm starting to encounter seriously
    > diminishing returns, e.g.


    >   * do I condition out some particular test that takes 6
    > seconds? (e.g., a little slow, but not egregious) * do I
    > put \dontrun{} around an example that takes 6 seconds [I'm
    > a bit confused about this, but as I understand it CRAN
    > checks with --run-donttest ? \dontrun{} also sometimes
    > provokes complaints from CRAN, because "you should only
    > use \dontrun{} for code that cannot be run by users" ...]

Really don't use \dontrun{}.  You'll stop running those examples
even for the users of  your package who  do

     example(<some>)

Rather do use an environment variable - based setup (as Uwe
mentioned).

In several packages of mine, I use

if(<pkg>:::doExtras()) { 
  ...  ## longer running examples / tests
}

sometimes also using withAutoprint({ .... })  which is important
when the longer running code is producing output that I'd want
to continue showing.


In my 'robustbase' package, I have somewhere in robustbase/R/<foo>.R

## Not exported, and only used because CRAN checks must be faster
doExtras <- function() {
    interactive() || nzchar(Sys.getenv("R_robustbase_check_extra")) ||
        identical("true", unname(Sys.getenv("R_PKG_CHECKING_doExtras")))
}

so doExtras()  is true for me,  *either* if I set the

package-specific        R_robustbase_check_extra  variable to non-empty
*or* the more global    R_PKG_CHECKING_doExtras   variable to non-empty.

That way, I can have all these check running in my own checks
(say by default, but can turn them off by unsetting the env.var.)

and yes, I use  doExtras  extensively in the tests, but very
much on purpose also in examples, there sometimes  combined with

 if(interactive()) { ... }

which keeps help page examples running interactively, but not in
'R CMD check' ..

Martin

    >    I don't want to spend forever tweaking things, and I
    > don't want to comment/condition out all of my tests, but I
    > would really prefer to avoid bouncing from CRAN again. I
    > don't know a *reliable* way to test whether CRAN-checking
    > on Windows will take <10 mins or not ...

    >    I don't have a local Windows test platform.

    >    win-builder gives timings for long-running components,
    > but not for the whole run.

    >    r-hub gives a time for the entire build (19 min in my
    > case) - but this includes the time to set up the virtual
    > machine, install all packages, etc..

    >    I can approximately predict that most examples and
    > tests will take twice as long on CRAN's windows machines
    > (and four times as long since tests, at least, are checked
    > on both i386 and x86_64 architectures).

    >    Testing is currently taking 6 minutes on my local
    > machine (newish Ubuntu 18.04 laptop), so I guess have more
    > work to do, but I wonder if anyone has suggestions ...

    >    cheers Ben Bolker



More information about the R-package-devel mailing list