r-lib / revdepcheck

R package reverse dependency checking
https://revdepcheck.r-lib.org
Other
99 stars 31 forks source link

Cloud reverse dependency checks #247

Closed jimhester closed 4 years ago

romainfrancois commented 4 years ago

I've successfully (I think) ran one for dplyr, but then:

revdepcheck:::cloud_results("2907acaf-f4e1-48c2-a9c3-ea10d7c6ab94")
ℹ Downloading from AWS
ℹ Extracting results
Error in revdepcheck:::cloud_results("2907acaf-f4e1-48c2-a9c3-ea10d7c6ab94") :
  length(old_checks) == length(new_checks) is not TRUE
lionel- commented 4 years ago

I've had this problem yesterday, Jim helped me find the solution. It's because of the github rate limit when checking packages with a Remotes. The solution is to give the URL to the package source:

Remotes:
    url::https://github.com/r-lib/vctrs/archive/master.tar.gz 
romainfrancois commented 4 years ago

I've started a cloud_check() for dplyr again with the tar.gz remote, but I'm still getting :

[master*] 174.9 MiB ❯ cloud_job()
[1] "2477b888-1204-461a-88d3-ebbacf11de1a"
[master*] 174.9 MiB ❯ cloud_status()
[0/2/2359/2 - 2363] 03:27:00 | ETA: 10.5s
[master*] 174.9 MiB ❯ cloud_report()
ℹ Downloading from AWS
ℹ Extracting results
Error in cloud_results(job_id, pkg) :
  length(old_checks) == length(new_checks) is not TRUE
lionel- commented 4 years ago

Should cloud_broken() include install failures by default?

Otherwise when checking the broken packages again, install failures disappear from the report.

lionel- commented 4 years ago

Should cloud_broken() remove NA values?

job <- "53d51480-af14-48d9-9a47-44bb4dd263f6"
cloud_broken(job, install_failures = TRUE)
#> + ℹ Syncing results to revdep/cloud.noindex/53d51480-af14-48d9-9a47-44bb4dd263f6
#> ℹ Extracting results
#> ℹ Comparing results
#> [1] "fabletools" "feasts"     "haven"      NA           "sf"         "slider"
#> [7] NA

This prevents it from being composed with cloud_check():

cloud_check(revdep_packages = c(NA, "sf"))
#> Error: Cloud error (502): Bad Gateway
#> Message: Internal server error

Or perhaps cloud_check() should strip the NAs?

jimhester commented 4 years ago

I think the only way you can get NAs from cloud_failures is if Bioconductor packages have somehow been included in your initial revdep results. @hadley and @romainfrancois both ran into this as well, I think it has to do with a stale pkgcache, since we are explicitly requesting only CRAN revdeps in the cloud code (https://github.com/r-lib/revdepcheck/pull/247/files#diff-28bbbd15b65ddf99f9415261c4902052R154)

Hadley was able to resolve it by cleaning the cache I believe.

lionel- commented 4 years ago

How do you delete the pkgcache? It doesn't seem to be documented. I have tried pkgcache::pkg_cache_delete_files() but still get the NA. Oh now I see pkgcache::meta_cache_cleanup(TRUE), I'll try that. I'll do crancache::crancache_clean(TRUE) as well just in case.

jimhester commented 4 years ago

So that particular run will always return the NA values, as the Bioconductor packages were submitted to the job initially. But your cleaning calls should fix the issue for any subsequent jobs.

lionel- commented 4 years ago

yup I got a clean run after running the expressions above.

jimhester commented 4 years ago

Great! I wish we could hammer down why this happens initially, but glad the workaround worked.