rstudio / cloudml

R interface to Google Cloud Machine Learning Engine
https://tensorflow.rstudio.com/tools/cloudml/
65 stars 24 forks source link

BiocGenerics fails to install (curl 404) #181

Open ck37 opened 6 years ago

ck37 commented 6 years ago

Hello,

Running a quick demo it appears that Bioconductor is not currently supported - are there any tips to get it working? This is currently in R 3.4.

Here is the failure output I'm getting around BiocGenerics when running cloudml_train():

INFO    2018-11-26 18:26:30 -0800       master-replica-0                Installing BiocGenerics (0.24.0) ...
INFO    2018-11-26 18:26:30 -0800       master-replica-0                curl: (22) The requested URL returned error: 404 Not Found
INFO    2018-11-26 18:26:30 -0800       master-replica-0                curl: (22) The requested URL returned error: 404 Not Found
INFO    2018-11-26 18:26:30 -0800       master-replica-0                curl: (22) The requested URL returned error: 404 Not Found
INFO    2018-11-26 18:26:30 -0800       master-replica-0                curl: (22) The requested URL returned error: 404 Not Found
INFO    2018-11-26 18:26:30 -0800       master-replica-0                curl: (22) The requested URL returned error: 404 Not Found
INFO    2018-11-26 18:26:30 -0800       master-replica-0                FAILED
INFO    2018-11-26 18:26:30 -0800       master-replica-0                Error in getSourceForPkgRecord(pkgRecord, srcDir(project), availablePackagesSource(repos = repos),  :
INFO    2018-11-26 18:26:30 -0800       master-replica-0                  Failed to retrieve package sources for BiocGenerics 0.24.0 from CRAN (internet connectivity issue?)
INFO    2018-11-26 18:26:30 -0800       master-replica-0                Calls: retrieve_packrat_packages ... restoreImpl -> playActions -> installPkg -> getSourceForPkgRecord
INFO    2018-11-26 18:26:30 -0800       master-replica-0                Execution halted
INFO    2018-11-26 18:26:30 -0800       master-replica-0                Command ['Rscript', '/root/.local/lib/python2.7/site-packages/cloudml-model/cloudml/deploy.R'] failed: exit code 1

I had the EBImage package as a dependency, which is why Bioconductor was required. However we've refactored the code to no longer require Bioconductor, so I don't have a reprex unfortunately - but I want to at least note the bug here for future users.

And thanks for the awesome package, I am really enjoying the smooth interface!

Thanks, Chris

kevinushey commented 6 years ago

Presumedly this would be because the Bioconductor repositories aren't being reflected in the bundle sent up to cloudml. I think ensuring those are added to the Packrat lockfile would help here.

ck37 commented 6 years ago

Appreciate the comment - I'm not currently using packrat on my end for this project, although I did see that the cloudml deployment system seems to use packrat. So you are suggesting that I actively setup packrat on my end?

I'm also running into an issue where magick is not able to install automatically (due to a missing OS-level package) so I'm wondering if I need to manually set that up in packrat too. Although my impression is that packrat wouldn't handle OS-level package requirements and I couldn't find anything in the cloudml documentation.

kevinushey commented 6 years ago

Sorry, I meant to suggest that this means something needs to change in Packrat (or in how Packrat is being used by cloudml) to better handle installation of Bioconductor packages.

Z-ingdotnet commented 4 years ago

@ck37 sorry im running into similar issue with other common packages. Just wondering if there are solutions to this? also @kevinushey, you mentioned "repositories aren't being reflected in the bundle sent up to cloudml" im just wondering cloudml documentation said it only uploads stuff within the working directory containing the training script. regarding your comment it seems it is also uploading things other than files in the working directory. Just wondering is there a guide where i can follow e.g. "ensuring packages the training scripts need are added to the Packrat lockfile"?

many thanks

kevinushey commented 4 years ago

I'm guessing the workaround here would be something like:

options(repos = BiocManager::repositories())

so that Packrat treats the Bioconductor repositories as though they were just regular old package repositories.

Z-ingdotnet commented 4 years ago

I'm guessing the workaround here would be something like:

options(repos = BiocManager::repositories())

so that Packrat treats the Bioconductor repositories as though they were just regular old package repositories.

Hi @kevinushey thanks a lot of your reply. Could you please elaborate a bit more, I'm not very familiar with Packrat package. May I email you please? With thanks