On 2019/01/02 17:08:58, Wes McKinney <w...@gmail.com> wrote:
> hi folks,>
>
> With 0.12 around the corner and significant progress on the R bindings>
> project (sufficient for Spark integration [1]), I am wondering how>
> everyday R users are going to be able to install the software>
> respectively on Linux, macOS, and Windows. Thoughts about the strategy>
> for this?>

The R packaging is a bit different than python. For Windows and macOS,
we can statically link external libs into the R package, to ship a
standalone binary R package without any runtime dependencies. On
Linux, R requires the system package manager (apt/yum) to provide
external libs. The R package manager doesn't work well with libs from
Conda.

The easiest way to build R packages on macOS is using binaries from
Homebrew. Because arrow is already in homebrew this should be
straightforward:
https://github.com/Homebrew/homebrew-core/blob/master/Formula/apache-arrow.rb

For Windows, we need to build  libarrow using the R mingw-w64
toolchain (called Rtools). We are currently working to automate this
process, but for now I manually build and maintain these binaries
here: https://github.com/rwinlib/arrow

For both Windows and MacOS holds that the process creating the
statically linked R binary package gets more complex for every extra
system dependency. Currently both the homebrew and rwinlib binaries
only depend on Boost and disable all extra arrow features.

So we can make the R package to work on Windows and Mac, however, for
the R package to be eligible for publication on CRAN, the required
Linux libs (i.e. libarrow-dev, arrow-devel) need to be available from
the official Debian and/or Fedora repository. The CRAN maintainers
want to build and test the R package at least on Debian using only
libs from official repositories, they won't build or install other
software on the build servers. Hence a prerequisite for getting the R
package on CRAN is getting libarrow-dev and arrow-devel into the
official Debian/Fedora repo's.

In the mean time we could setup a custom R repository providing the R
package in source and binary form on e.g. Bintray. That way users can
at least do e.g: install.packages("arrow", repos =
"https://dl.bintray.com/apache/arrow/r";) which is much easier than
installing manually. However as long as the package is not on CRAN,
other R packages cannot formally depend on it.

Reply via email to