-
Hi all, I'm really liking having R-universe as an alternative to CRAN for distributing my packages, but I ran into a problem with one of mine: https://github.com/r-universe/rdinnager/actions/runs/1327222576 It failed to build because a system dependency wasn't installed. This is possibly because I didn't specify it correctly in the SystemRequirements: entry of DESCRIPTION (I note that system dependencies were installed correctly for the R package dependencies of my package, e.g. sf, imager, etc.). Note that the system dependency I need is somewhat non-standard. In fact, I added it myself to rtools-packages (r-windows/rtools-packages#223) in order to make my package easier to install on Windows. The required package is also available on MacOS via brew. So I guess my question is: "How can I make sure that R-universe knows what system dependencies to install, and where to get them?" Apologies if there is a document out there already with information on this that I have missed, and thanks for all your work on this. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
I'd really like some document about this too. https://github.com/r-universe/ggseg/runs/3909538684?check_suite_focus=true#step:3:1583 |
Beta Was this translation helpful? Give feedback.
-
Our build environment is very similar to the CRAN environment. For Linux that means that most system libraries that are needed by R packages are preinstalled on the build image. We also try to query rstudio's r-system-requirements on linux for any additional libraries. On Windows and MacOS our build image is also very similar to CRAN. A few libraries are preinstalled, but most packages that need additional libraries will download a suitable version at install time. I have implemented this for @rdinnager rbbf in rdinnager/rbff#3. The reason why we don't provide some hook to let package authors install arbitrary things on our build server (as you may do in your own CI) is that we want the R package that are published on r-universe, to also work the same way on user's machines, and not depend on some external component or library that most users may not have. Therefore we do not support e.g. homebrew. @Athanasiamo if orca is only needed to render the vignette, have you considered pre-computing the vignette as explained on e.g. https://ropensci.org/blog/2019/12/08/precompute-vignettes/ ? This way you could get the package published also on CRAN (I'm quite sure they also don't have orca). |
Beta Was this translation helpful? Give feedback.
Our build environment is very similar to the CRAN environment. For Linux that means that most system libraries that are needed by R packages are preinstalled on the build image. We also try to query rstudio's r-system-requirements on linux for any additional libraries.
On Windows and MacOS our build image is also very similar to CRAN. A few libraries are preinstalled, but most packages that need additional libraries will download a suitable version at install time. I have implemented this for @rdinnager rbbf in rdinnager/rbff#3.
The reason why we don't provide some hook to let package authors install arbitrary things on our build server (as you may do in your own CI) is that we want the R…