krlmlr/r-appveyor

PKGTYPE: both does not work

rabutler-usbr opened this issue · 5 comments

In the current builds for R 3.5.0, builds are failing because the feather package is not available in binary form. Setting PKGTYPE: source fixes this, however then builds take much longer since it builds all packages from source.

I would like to replicate the behavior of install.packages(c("feather", "tidyr"), type = "both") since that builds feather, but installs tidyr from binary.

I thought setting PKGTYPE: source would do the trick, but it doesn't. I believe this is because when I run install.packages(c("feather", "tidyr"), type = "both") in RStudio it requires user input in the form of a popup window, confirming I want to build feather.

Is there a way to correctly set PKGTYPE or another parameter I'm missing?

install.packages(..., type = "both") will prompt for UI if a package needs to be built from source by default. This is because the default option for install.packages.compile.from.source is "interactive".

If install.packages.compile.from.source is set to "always", it will not prompt for UI and will only install from source if the binary is not available.

However, I do not think using type = "both" actually works, since R-appveyor relies on remotes::install_deps(), and install_deps() automatically replaces type = "both" with "binary".

So, I think the AppVeyor yaml, PKGTYPE: both and PKGTYPE: binary are equivalent.

But, as soon as the next version of remotes is available, it should work as expected. See r-lib/remotes@d3a6766

Thanks. Is this still a problem?

I think it should be fixed based on the 2.x release of remotes.

I removed the explicit calls to build feather from source that I added to my appveryor build script, and the latest build passed (https://ci.appveyor.com/project/BoulderCodeHub/RWDataPlyr). However, that doesn't fully test it, as there is now a feather binary available.

I'm not sure of any packages that only have the source available currently to completely test this.

Thanks, closing for now. Should PKGTYPE be set to "binary" by default (#149)?