[R-pkg-devel] suggestion: conda for third-party software
Serguei Sokol
@ergue|@@oko| @end|ng |rom gm@||@com
Tue Jan 7 15:49:45 CET 2020
Best wishes for 2020!
I would like to suggest a new feature for R package management. Its aim
is to enable package developers and end-users to rely on conda (
https://docs.conda.io/en/latest/ ) for managing third-party software
(TPS) on major platforms: linux64, win64 and osx64. Currently, many R
packages include TPS as part of them thus bloating their sizes and often
duplicating files on a given system. And even when TPS is not included
in an R package but is just installed on a system, it is not so obvious
to get the right path to it. Sometimes pkg-config helps but it is not
always present.
So, the new feature would be to let R package developers to write in
DESCRIPTION/SystemRequirements field something like
'conda:boost-cpp>=1.71' where 'boost-cpp' is an example of a conda
package and '>=1.71' is an optional version requirement. Having this
could allow install.packages() to install TPS on a testing CRAN machine
or on an end-user's one. (There is just one line to execute in a shell:
conda install <pkg-name>. It will install the package itself as well as
all its dependencies).
To my mind, this feature would have the following advantages:
- on-disk size economy as the same TPS does not have to be included in
R package itself and can be shared with other language wrappers, e.g.
Python;
- an easy flag configuring in Makevars as paths to TPS will be well
known in advance;
- CRAN machines could test packages relying on a wide panel of TPS
without bothering with their manual installation;
- TPS installation can become transparent for the end-user on major
platforms;
Note that even R is part of conda (
https://anaconda.org/conda-forge/r-base ), it is not mandatory to use
the conda's R version for this feature. Here, conda is just meant to
facilitate access to TPS. However, a minimal requirement is obviously to
have conda itself.
Does it look reasonable? appealing?
Best,
Serguei.
More information about the R-package-devel
mailing list