[R-pkg-devel] R-CMD-check works locally and on github, but windows automatic checks fail

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Jul 5 01:47:52 CEST 2021


On 04/07/2021 5:26 p.m., Cyril Lagger wrote:
> Hi all,
> 
> I am trying to submit our package scDiffCom (
> https://github.com/CyrilLagger/scDiffCom) to CRAN. However, it does not
> pass the windows automatic checks for some unclear reason to me. Any help
> would be really appreciated!
> 
> Basically, the output from R-CMD-check is fine locally and for the github
> actions I specified, but not for the automatic windows tests. Please see
> below:
> 
> ------------
> 1)
> no ERRORs, no WARNINGs, no NOTEs when running devtools:check() locally
> (windows 10, R 4.1.0)

That's the windows release version, not devel.
> 
> 2)
> no ERRORs, no WARNINGs, no NOTEs when running github-actions
> <https://github.com/CyrilLagger/scDiffCom/blob/master/.github/workflows/check-standard.yaml>
> for windows-latest (release), macOS-latest (release), ubuntu-20.04
> (release), ubuntu-20.04 (devel)

You didn't test windows-devel.


> 
> 3)
> 1 ERROR when running devtools:check_win_devel: *Running the tests in
> 'tests/testthat.R' failed.* However, testthat.Rout.fail is not informative
> to me, it only contains:

That's a Windows devel run.  That's what you haven't done locally.

> 
>> library(testthat)
>> library(scDiffCom)
>>
>> test_check("scDiffCom")
> Loading required package: SeuratObject
> 
> 4)
> 2 ERRORs when running devtools:check_win_release. As follows:
> 
> ** running tests for arch 'i386' ... [5s] ERROR
>    Running 'spelling.R' [0s]
>    Running 'testthat.R' [4s]
> Running the tests in 'tests/testthat.R' failed.
> Complete output:
>    > library(testthat)
>    > library(scDiffCom)
>    >
>    > test_check("scDiffCom")
>    Loading required package: SeuratObject
>    == Failed tests
> ================================================================
>    -- Error (test-everything.R:171:1): (code run outside of
> `test_that()`) --------
>    Error: error in load action .__A__.1 for package RcppAnnoy:
> loadModule(module = "AnnoyAngular", what = TRUE, env = ns, loadNow =
> TRUE): Unable to load module "AnnoyAngular": bad binding access
>    Backtrace:
>         x
>      1. +-base::lapply(...) test-everything.R:171:0
>      2. | \-scDiffCom:::FUN(X[[i]], ...)
>      3. |   \-scDiffCom:::extract_analysis_inputs(...) test-everything.R:174:4
>      4. |     \-scDiffCom:::extract_seurat_inputs(...)
>      5. \-base::loadNamespace(x)
>      6.   +-base::namespaceImportFrom(...)
>      7.   | \-base::asNamespace(ns)
>      8.   \-base::loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()),
> versionCheck = vI[[j]])
>      9.     \-methods::cacheMetaData(ns, TRUE, ns)
>     10.       \-methods:::.doLoadActions(where, attach)
> 
>    [ FAIL 1 | WARN 0 | SKIP 0 | PASS 6 ]
>    Error: Test failures
>    Execution halted
> ** running tests for arch 'x64' ... [5s] ERROR
>    Running 'spelling.R' [0s]
>    Running 'testthat.R' [5s]
> Running the tests in 'tests/testthat.R' failed.
> Complete output:
>    > library(testthat)
>    > library(scDiffCom)
>    >
>    > test_check("scDiffCom")
>    Loading required package: SeuratObject
> 
> -----------
> 
> Since I have no error locally on my machine, I don't know what I could
> change for the automatic tests to work. Also, I don't understand why
> the github-action for windows-latest (release) works but not
> devtools:check_win_release().

You say check_win_devel() above.

> 
> By the way, I installed R devel on my machine in addition to R 4.1.0,
> but it turns out I cannot test our package installation because it has
> Bioconductor dependencies and "Bioconductor does not yet build and
> check packages for R version 4.2" as reported here
> <https://github.com/r-hub/rhub/issues/471>. The exact same error
> actually also occurs when I run devtools:check_rhub(). It does not
> seem to be related to the failure of testthat I reported above, but I
> thought it might be useful to mention it.

Yes, seems related.  If you're depending on a package that won't build, 
your tests will fail.

Perhaps you can reduce your dependence to Suggests, which will give a 
note on the failure to load, but no more.

I don't know if this is under your control, but I believe R-devel will 
not support i386.  (Or is it the last version to do so?  I forget where 
I saw the news.)

Duncan Murdoch



More information about the R-package-devel mailing list