Closed jeffreyhanson closed 3 years ago
I believe CRAN uses some special-case code to build Windows binaries for rgl, so I'm not sure your suggested change would work. But if you want to put together a PR and it tests okay for you I'll consider it.
Note that currently there are some problems with the builds on Solaris (see https://cloud.r-project.org/web/checks/check_results_rgl.html), so I won't merge changes that affect non-Windows systems yet.
Ok - sounds good - thank you. I'll put together the PR and report back later today sometime. I also noticed that the configure.win
file doesn't seem to contain any code. So another possible fix might involve simply deleting this file, but this might cause issues with the special-case code on CRAN? What do you think? If it would be helpful, I could test this possible fix too?
If you can simplify things I think CRAN will be happy to remove the special-casing. They'll only be unhappy if your change means rgl still needs special-casing, but different than what it has now. I don't remember if their current method is described online anywhere.
Ok - I'll give that potential fix a go too. To verify that these changes won't mess anything up for CRAN, would it be sufficient to test the PRs on WinBuilder (I can temporarily change the email address in the DESCRIPTION when testing so it doesn't spam your inbox)? Or is there a better way to do this?
To see if the biarch
branch fixes this issue, I reverted the R package installation commands in my GitHub Actions workflow YAML file so that it does not explicitly force installation of rgl on both x64 and i385 (in other words, it now follows the default installation commands from r-lib; see https://github.com/jeffreyhanson/raptr/commit/5a6b0a4f3df4603400ae0073529526f672f3ae3c). I expected the continuous integration GitHub Actions checks to fail as before (i.e. https://github.com/jeffreyhanson/raptr/actions/runs/567168766). However, the continuous integration checks on GitHub Actions passed when installing rgl from CRAN (see https://github.com/jeffreyhanson/raptr/actions/runs/579337468). After looking through the log file (see attached file at end of post), it seems that the Windows binaries for rgl are now available on CRAN --- and this might explain why the checks passed:
> # skipping some lines here #
> Installing 138 packages: digest, utf8, vctrs, pkgconfig, pillar, magrittr, lifecycle, ellipsis, crayon, assertthat, tibble, rlang, rematch2, glue, fansi, diffobj, cli, R6, ps, processx, rappdirs, fs, stringi, BH, Rcpp, jquerylib, sass, callr, cachem, bslib, commonmark, withr, fastmap, promises, later, sourcetools, xtable, mime, httpuv, xfun, stringr, markdown, highr, evaluate, yaml, jsonlite, webshot, base64enc, knitr, htmlwidgets, htmltools, miniUI, shiny, lazyeval, purrr, prettyunits, rstudioapi, rprojroot, pkgbuild, desc, colorspace, viridisLite, RColorBrewer, munsell, labeling, farver, waldo, praise, pkgload, brio, testthat, misc3d, sp, hms, rcdd, plot3D, mvtnorm, multicool, mclust, kernlab, FNN, abind, RcppProgress, linprog, lpSolve, magic, manipulateWidget, crosstalk, iterators, filehash, progress, pixmap, CircStats, adehabitatMA, ade4, gtable, permute, tidyselect, generics, tinytex, xml2, brew, scales, isoband, RcppArmadillo, rgeos, data.table, hitandrun, e1071, fastcluster, pdist, ks, geometry, maps, raster, rgl, foreach, RandomFieldsUtils, png, adehabitatLT, deldir, gridExtra, gurobi, vegan, dplyr, rmarkdown, roxygen2, RcppEigen, ggplot2, hypervolume, rgdal, doParallel, plyr, RandomFields, RgoogleMaps, adehabitatHR, shape, PBSmapping
> # skipping some lines here #
> 2021-02-18T20:24:44.2926311Z trying URL 'https://cloud.r-project.org/bin/windows/contrib/4.1/rgl_0.105.13.zip'
> 2021-02-18T20:24:44.3526835Z Content type 'application/zip' length 4944023 bytes (4.7 MB)
> 2021-02-18T20:24:44.6010908Z ==================================================
> 2021-02-18T20:24:44.6011878Z downloaded 4.7 MB
> # skipping more lines here #
> 2021-02-18T20:25:05.5941002Z package 'rgl' successfully unpacked and MD5 sums checked
> # skipping lines till end log #
Therefore it would seem that one potential fix for this issue is simply for maintainers of R packages that depend on rgl to wait for Windows binaries to appear on CRAN? Does that sound right to you? Or maybe I'm missing something?
Assuming that simply waiting for Windows binaries to become available on CRAN fixes this issue, would you still be interested in a PR that fixes this issue (e.g. for the few days when only the source version is available on CRAN)? I completely understand if you'd rather keep things as they are to avoid any potential issues with the special-case code for rgl on CRAN?
GitHub Actions log file: github-actions-log.txt
Thank you so much for all your work on developing the rgl package (and other packages too!). In case you're not already aware, I wanted to let you know that installing the latest version of the rgl package on CRAN onto a Windows system does not install rgl for both the x86 and i386 versions of R (apologies I am probably using incorrect terminology). To reproduce this, we can see that running
install.packages('rgl')
on a Windows system throws the following warning message (for full log, please see end of post):Now, this issue on its own isn't really that big of a deal. In an interactive setting, one could easily address this by manually installing rgl under x86 and i386 separately. However, this causes some problems when using continuous integration services (e.g. GitHub Actions) to test packages that depend on rgl. This is because when (default configuration files for) these services try to install rgl, they will only install rgl for x86 not i386 R versions. Since (default configuration files for) these services run package checks for both x86 and i386 R versions, this -- in turn -- causes the continuous integration checks to fail because rgl is missing for i386 R version.
May I ask if you would consider adding
Biarch: true
to the rgl package's DESCRIPTION to ensure that rgl is always installed for both x86 and i386? This would make it easier to maintain R packages that depend on rgl package. For reference, I found another package dealing with a similar issue that was resolved with such a change (https://github.com/jonclayden/ore/issues/6). I would be happy to submit a PR if that would be helpful?If such a change is not possible, I thought it might be useful to mention for the benefit of others that one can update the (current) GitHub Actions default configuration file (from r-lib) to address this issue by replacing this line in the YAML file:
with this line instead:
For a complete example of a GitHub Actions YAML file that addresses this issue, please see this YAML file .
Full log: