[R-pkg-devel] Do you run R on Fedora or Debian?

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Sun Dec 11 12:45:02 CET 2022


On Sat, 10 Dec 2022 14:00:22 -0800
Roy Mendelssohn - NOAA Federal via R-package-devel
<r-package-devel using r-project.org> wrote:

> CRAN has sent me a notice about the following:
> 
> https://www.stats.ox.ac.uk/pub/bdr/donttest/rerddapXtracto.out
> 
> I can not reproduce it.  I test on my Mac,  the cache space is
> properly handled  (by a package outside mine).  Same with Debian on
> r-hub.  I installed Fedora on a virtual machine, no problem  (it is
> assigned a space in /tmp).

I've trace()d rerddap:::gen_key to notify me when a file with the cache
key of 4f8f83808465a7f7619285e9871747af is being downloaded. Since
digest::digest defaults to serialize = TRUE, this should only work with
R-to-be-4.3.0 (I compiled R-devel r83400, same as in the failed check):

library(rerddapXtracto)
trace(
 rerddap:::gen_key,
 quote({
  if(digest::digest(ky) == '4f8f83808465a7f7619285e9871747af') {
   cat('\n\nFound a match\n\n')
   str(url); str(args); print(ky); str(digest::digest(ky))
   message('\n\nFound a match\n\n')
  }
 }),
 at = 3
)
example(rxtracto)
example(rxtracto_3D)
example(rxtractogon)

Surprisingly, there were no hits. I also tried copying and pasting all
code from the vignette and even uncommenting the code marked as
\dontrun{}, also with no results.

The code that actually creates these files lives in the rerddap
package. The page at
<https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-gcc>
says that packages are checked in parallel. What if an unlucky reverse
dependency of rerddap was being checked at the same time as your
package, making rerddapXtracto get its NOTE?

I cleaned ~/.cache/R, put the rerddap source package in a directory and
ran:

(res <- tools::check_packages_in_dir(
 '.', check_args = '--run-donttest', reverse = list(recursive = TRUE),
 check_env = c(
  "_R_CHECK_DONTTEST_EXAMPLES_=true",
  "_R_CHECK_THINGS_IN_OTHER_DIRS_=true"
 )
))

I got a NOTE for plotdap!

* checking for new files in some other directories ... NOTE
Found the following files/directories:
  ‘~/.cache/R’ ‘~/.cache/R/rerddap’
  ‘~/.cache/R/rerddap/1b43b4335f06b318b914ba2cc2f88872.nc’
  ‘~/.cache/R/rerddap/4f8f83808465a7f7619285e9871747af.nc’
  ‘~/.cache/R/rerddap/8cb244e059b86865b7933a3d9b72fe16.csv’

Looking at the examples for plotdap::add_griddap and
plotdap::add_tabledap, I think that they may be responsible for the
NOTE, because there's no pre-example cache setup and teardown. I also
finally got a match from my tracing code by running
example(add_griddap).

There's more than one way to do it right; my favourite would be to wrap
the pre-example code and post-example code in \dontshow{}, changing the
cache settings in the first block and restoring them in the second one.
Everywhere else I would use on.exit(), but examples are special in
their relationship with autoprinting and crashing there being
disallowed, making this approach feasible.

-- 
Best regards,
Ivan



More information about the R-package-devel mailing list