revdepcheck
revdepcheck copied to clipboard
revdep_check() installs some but not all Suggests:ed packages
Issue
I would expect it do to so, but revdepcheck::revdep_check() installs some but not all Suggests:ed packages. This is not a new observation - I've had this "problem" since the very beginning (2 years?). After running:
library(revdepcheck)
revdep_check(bioc = TRUE, num_workers = 4L, quiet = FALSE)
revdep_report(all = TRUE)
the generated revdep/problems.md reports on NOTEs such as:
checking package dependencies ... NOTE
Package suggested but not available for checking: ‘DesignLibrary’
Comment: Some of the missing Suggests:ed packages reported are on non-mainstream repositories, so that's not surprising, but some of them are on CRAN and Bioconductor.
Specifically, for CRAN package DeclareDesign and Bioconductor package methyvim, I get the above NOTEs. The missing packages were CRAN package DesignLibrary and Bioconductor package minfiData.
I force a cached installation of these by calling
crancache::install_packages(c("DesignLibrary", "minfiData"))
What I recall, I think neither of these were in the binary cache; they installed from source.
I now rerun revdepcheck:
library(revdepcheck)
revdep_add(packages = c("DeclareDesign", "methyvim"))
revdep_check(bioc = TRUE, num_workers = 4L, quiet = FALSE)
revdep_report(all = TRUE)
those NOTEs for those two rechecked packages disappear:
diff --git a/revdep/problems.md b/revdep/problems.md
index a598055..5095aae 100644
--- a/revdep/problems.md
+++ b/revdep/problems.md
@@ -343,11 +343,6 @@ Run `revdep_details(,"DeclareDesign")` for more info
## In both
-* checking package dependencies ... NOTE
- ```
- Package suggested but not available for checking: ‘DesignLibrary’
- ```
-
* checking whether package ‘DeclareDesign’ can be installed ... NOTE
```
Found the following notes/warnings:
@@ -986,11 +981,6 @@ Run `revdep_details(,"methyvim")` for more info
## In both
-* checking package dependencies ... NOTE
- ```
- Package suggested but not available for checking: ‘minfiData’
- ```
-
* checking whether package ‘methyvim’ can be installed ... NOTE
```
Found the following notes/warnings:
Session information
$ R --quiet --vanilla
> library(revdepcheck)
sesessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS
Matrix products: default
BLAS: /home/hb/shared/software/CBI/R-3.6.0/lib/R/lib/libRblas.so
LAPACK: /home/hb/shared/software/CBI/R-3.6.0/lib/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] revdepcheck_1.0.0.9001
loaded via a namespace (and not attached):
[1] Rcpp_1.0.1 compiler_3.6.0 remotes_2.0.4
[4] prettyunits_1.0.2 base64enc_0.1-3 tools_3.6.0
[7] progress_1.2.0 digest_0.6.18 pkgbuild_1.0.3
[10] bit_1.1-14 jsonlite_1.6 RSQLite_2.1.1
[13] memoise_1.1.0 debugme_1.1.0 pkgconfig_2.0.2
[16] rlang_0.3.4.9003 whoami_1.3.0 DBI_1.0.0
[19] cli_1.1.0 yaml_2.2.0 curl_3.3
[22] xfun_0.6 xopen_1.0.0 gmailr_0.7.1
[25] withr_2.1.2 httr_1.4.0 knitr_1.22
[28] desc_1.2.0 rappdirs_0.3.1 hms_0.4.2
[31] rprojroot_1.3-2 bit64_0.9-7 glue_1.3.1
[34] crancache_0.0.0.9000 parsedate_1.1.3 R6_2.4.0
[37] processx_3.3.0 rcmdcheck_1.3.3 sessioninfo_1.1.1
[40] callr_3.2.0 blob_1.1.1 magrittr_1.5
[43] backports_1.1.4 ps_1.3.0 clisymbols_1.2.0
[46] assertthat_0.2.1 cranlike_1.0.2 crayon_1.3.4
I observed the same with my pROC package. After a fresh install of revdepcheck 1.0.0.9001 a few days ago with source("https://install-github.me/r-lib/revdepcheck") and then running 'revdepcheck::revdep_check(num_workers = 4)', several checks failed in both new and old version.
This happens not only with Suggest:ed packages, but also with full-on Dependencies:
$ grep "Package required but not available" checks/*/*/*.Rcheck/00check.log
checks/biomod2/new/biomod2.Rcheck/00check.log:Package required but not available: ‘earth’
checks/biomod2/old/biomod2.Rcheck/00check.log:Package required but not available: ‘earth’
checks/blkbox/new/blkbox.Rcheck/00check.log:Package required but not available: ‘bartMachine’
checks/blkbox/old/blkbox.Rcheck/00check.log:Package required but not available: ‘bartMachine’
checks/CalibratR/new/CalibratR.Rcheck/00check.log:Package required but not available: ‘fitdistrplus’
checks/CalibratR/old/CalibratR.Rcheck/00check.log:Package required but not available: ‘fitdistrplus’
checks/ebmc/new/ebmc.Rcheck/00check.log:Package required but not available: ‘C50’
checks/ebmc/old/ebmc.Rcheck/00check.log:Package required but not available: ‘C50’
checks/finalfit/new/finalfit.Rcheck/00check.log:Package required but not available: ‘survminer’
checks/finalfit/old/finalfit.Rcheck/00check.log:Package required but not available: ‘survminer’
checks/GmAMisc/new/GmAMisc.Rcheck/00check.log:Package required but not available: ‘InPosition’
checks/GmAMisc/old/GmAMisc.Rcheck/00check.log:Package required but not available: ‘InPosition’
checks/kernDeepStackNet/new/kernDeepStackNet.Rcheck/00check.log:Package required but not available: ‘DiceOptim’
checks/kernDeepStackNet/old/kernDeepStackNet.Rcheck/00check.log:Package required but not available: ‘DiceOptim’
checks/LEGIT/new/LEGIT.Rcheck/00check.log:Package required but not available: ‘formula.tools’
checks/LEGIT/old/LEGIT.Rcheck/00check.log:Package required but not available: ‘formula.tools’
checks/lilikoi/new/lilikoi.Rcheck/00check.log:Package required but not available: ‘devtools’
checks/lilikoi/old/lilikoi.Rcheck/00check.log:Package required but not available: ‘devtools’
checks/mlDNA/new/mlDNA.Rcheck/00check.log:Package required but not available: ‘rsgcc’
checks/mlDNA/old/mlDNA.Rcheck/00check.log:Package required but not available: ‘rsgcc’
checks/mldr/new/mldr.Rcheck/00check.log:Package required but not available: ‘circlize’
checks/mldr/old/mldr.Rcheck/00check.log:Package required but not available: ‘circlize’
checks/nonet/new/nonet.Rcheck/00check.log:Package required but not available: ‘tidyverse’
checks/nonet/old/nonet.Rcheck/00check.log:Package required but not available: ‘tidyverse’
checks/r4lineups/new/r4lineups.Rcheck/00check.log:Package required but not available: ‘magick’
checks/r4lineups/old/r4lineups.Rcheck/00check.log:Package required but not available: ‘magick’
checks/SIAMCAT/new/SIAMCAT.Rcheck/00check.log:Package required but not available: ‘mlr’
checks/SIAMCAT/old/SIAMCAT.Rcheck/00check.log:Package required but not available: ‘mlr’
I also see a few missing Suggest:ed ones causing failures:
$ grep "there is no package called" */*/*.Rcheck/00check.log
aplore3/new/aplore3.Rcheck/00check.log:Error in library(vcdExtra) : there is no package called ‘vcdExtra’
aplore3/old/aplore3.Rcheck/00check.log:Error in library(vcdExtra) : there is no package called ‘vcdExtra’
caret/new/caret.Rcheck/00check.log:Error in library(earth) : there is no package called ‘earth’
caret/old/caret.Rcheck/00check.log:Error in library(earth) : there is no package called ‘earth’
eclust/new/eclust.Rcheck/00check.log:Error in loadNamespace(name) : there is no package called ‘factoextra’
eclust/old/eclust.Rcheck/00check.log:Error in loadNamespace(name) : there is no package called ‘factoextra’
riskRegression/new/riskRegression.Rcheck/00check.log:Error in library(pec) : there is no package called ‘pec’
riskRegression/old/riskRegression.Rcheck/00check.log:Error in library(pec) : there is no package called ‘pec’
And more Suggest:ed ones, some of them not causing failures
$ grep "Package suggested but not available for checking" */*/*.Rcheck/00check.log
aplore3/new/aplore3.Rcheck/00check.log:Package suggested but not available for checking: ‘vcdExtra’
aplore3/old/aplore3.Rcheck/00check.log:Package suggested but not available for checking: ‘vcdExtra’
blkbox/new/blkbox.Rcheck/00check.log:Package suggested but not available for checking: ‘bigrf’
blkbox/old/blkbox.Rcheck/00check.log:Package suggested but not available for checking: ‘bigrf’
bst/new/bst.Rcheck/00check.log:Package suggested but not available for checking: ‘hdi’
bst/old/bst.Rcheck/00check.log:Package suggested but not available for checking: ‘hdi’
caretEnsemble/new/caretEnsemble.Rcheck/00check.log:Package suggested but not available for checking: ‘lintr’
caretEnsemble/old/caretEnsemble.Rcheck/00check.log:Package suggested but not available for checking: ‘lintr’
doppelgangR/new/doppelgangR.Rcheck/00check.log:Package suggested but not available for checking: ‘simulatorZ’
doppelgangR/old/doppelgangR.Rcheck/00check.log:Package suggested but not available for checking: ‘simulatorZ’
finalfit/new/finalfit.Rcheck/00check.log:Package suggested but not available for checking: ‘covr’
finalfit/old/finalfit.Rcheck/00check.log:Package suggested but not available for checking: ‘covr’
mlDNA/new/mlDNA.Rcheck/00check.log:Package suggested but not available for checking: ‘cairoDevice’
mlDNA/old/mlDNA.Rcheck/00check.log:Package suggested but not available for checking: ‘cairoDevice’
nonet/new/nonet.Rcheck/00check.log:Package suggested but not available for checking: ‘ClusterR’
nonet/old/nonet.Rcheck/00check.log:Package suggested but not available for checking: ‘ClusterR’
RIVER/new/RIVER.Rcheck/00check.log:Package suggested but not available for checking: ‘devtools’
RIVER/old/RIVER.Rcheck/00check.log:Package suggested but not available for checking: ‘devtools’
I started this run on a machine with R 3.6.0, and no pre-existing CRAN cache.
@xrobin revdepcheck tries to install all of them, but probably fails. Is this Linux? Then it probably fails because of the missing system requirements.
@gaborcsardi It is Linux indeed.
I am trying to install them manually though, and at least some can be installed successfully, without any system requirement issue:
> crancache::install_packages("devtools")
Installing package into ‘/scicore/home/schwede/zohixe92/R/library’
(as ‘lib’ is unspecified)
also installing the dependencies ‘ini’, ‘gh’, ‘usethis’
* installing *binary* package ‘ini’ ...
* DONE (ini)
* installing *binary* package ‘gh’ ...
* DONE (gh)
* installing *binary* package ‘usethis’ ...
* DONE (usethis)
* installing *source* package ‘devtools’ ...
** package ‘devtools’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (devtools)
The downloaded source packages are in
‘/scratch/RtmpdQwzfR/downloaded_packages’
Adding ‘devtools_2.0.2_R_x86_64-pc-linux-gnu.tar.gz’ to the cache
Actually most packages installed just fine with crancache::install_packages. Only the following 7 failed: bigrf, simulatorZ, RGtk2, magick, cairoDevice, gWidgetsRGtk2 and rsgcc.
Does crancache::install_packages() use some kind of mutex or similar to avoid clashes when checking/installing multiple packages in parallel? If not, could that explain the sporadic failure I'm seeing?
I've hacked together a revdep_precache_installs(pkg) function that call crancache::install_packages(..., lib = tempdir()) all on reverse package dependencies and their dependencies. This way I can populate the crancache file cache prior to launching revdep_check(). (It's not very clever right now; there are probably quite a few reinstalls of the same packages. One could identify an optimal installation order by inspection the complete dependency pkg DAG.) @gaborcsardi, does this approach make sense to you?
bump: @HenrikBengtsson , can you please point me to your hacked function?
@bbolker, it's your lucky day; it used to be an evergrowing messy R script, but I recently wrapped it all up in an R package: https://github.com/HenrikBengtsson/revdepcheck.extras
Bug #375 may be the same issue. Failing to install dependencies of a reverse dependency. This was reported so 5 years ago. Are people using something else for revdep checks?