Here is the problem: I am developing an R package
rtrees, which depends on a data package
megatrees with size around 100 Mb. It is not possible to submit the data package to CRAN given its large size. In addition, CRAN does not allow packages with
Remotes field (i.e., your package cannot depends on a package on GitHub). Therefore, I cannot submit
rtrees to CRAN.
After searching around, I came across the R-universe program by rOpenSci. R-unierse allow us to build binary files for R packages and host it online; basically, we can have our own personal CRAN-like repo to host binaries for R packages without much trouble by following its instruction. Now, my data package is on my r-universe. And in the
DESCRIPTION file of
rtrees, I can replace
Remotes with the following line:
I think this should allow me to submit
rtrees to CRAN in the future. Since R-universe build binaries for the R packages we put there (Mac and Windows), it is now pretty fast to install large packages.
When I deploy the Shiny app of
rtrees, shinyapps.io does not recognize r-universe and returned an error. To deploy it, I need to reinstall the package from GitHub using
remotes::install_github(). This is because when deploying the shinny app, R will use the same way that you have installed the packages locally. If I installed the package from r-universe, R will try to do the same thing when deploying the shinny app; if I installed the package from GitHub, R will also install it from GitHub when deploying the shinny app.