phenoscape / rphenoscape

R package to make phenotypic traits from the Phenoscape Knowledgebase available from within R.
https://rphenoscape.phenoscape.org/
Other
5 stars 5 forks source link

Fix failing R4 tests #268

Closed johnbradley closed 2 years ago

johnbradley commented 2 years ago

The tests in the master branch for R 4 recently started failing: https://app.circleci.com/pipelines/github/phenoscape/rphenoscape/53

Here is the error message:

> devtools::install_deps(dep = TRUE)
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/local/lib/R/site-library/stringi/libs/stringi.so':
  libicui18n.so.66: cannot open shared object file: No such file or directory
Calls: loadNamespace ... namespaceImport -> loadNamespace -> library.dynam -> dyn.load
Execution halted
johnbradley commented 2 years ago

The R4 failing test was using the rocker/verse:4 container: (rocker/verse@sha256:b8bb73f75e130e5767d64850327971d8cade933171e0a68460e1444b1c106471). Switching back to rocker/verse:4.2.1 caused tests to pass. I was unable to reproduce the failure when running Docker on my laptop. I checked and the b8bb73... container has libicui18n.so.70 instead of libicui18n.so.66.


I think the core problem is a caching issue in CircleCI. Changing the cache-{{ .Environment.CIRCLE_JOB }} to rcache-{{ .Environment.CIRCLE_JOB }} caused the tests to pass. There seems to be no way to clear the cache or run without the cache with CircleCI. Here is an article with some work arounds: https://support.circleci.com/hc/en-us/articles/115015426888-Clear-Project-Dependency-Cache. I'm going to implement the CACHE_VERSION project environment variable fix.

hlapp commented 2 years ago

Here is an article with some work arounds: https://support.circleci.com/hc/en-us/articles/115015426888-Clear-Project-Dependency-Cache. I'm going to implement the CACHE_VERSION project environment variable fix.

Yeah I saw that article. At first I wasn't sure it would apply to our issue, but upon rereading I agree, this seems what we should do.