[R-pkg-devel] How to account for optional packages not necessarily on CRAN
Balasubramanian Narasimhan
n@r@@ @end|ng |rom @t@n|ord@edu
Wed Dec 11 02:58:40 CET 2019
Thanks Dirk! I did not realize that suggested packages are not required
to be on primary repos like CRAN, BioC. We do indeed condition our code
to check that. So I guess, we are good to go, as is.
I will, in due time, read the paper too...
-N
On 12/10/19 5:52 PM, Dirk Eddelbuettel wrote:
> On 10 December 2019 at 17:22, Balasubramanian Narasimhan wrote:
> | We've run into the following problem in integrating commercial and open
> | source solvers in to our package CVXR. We have "Suggests" dependency on
> | some packages that may not be available to CRAN.
> |
> | There are two main scenarios.
> |
> | 1. A suggested meta-package is on CRAN, e.g. Rmosek, but the user must
> | further take action to ensure the binary is installed. The recommended
> | requireNamespace("Rmosek", quietly = TRUE) is insufficient to guarantee
> | the functionality desired even if it succeeds.
> |
> | 2. A suggested package is on github or a commercial vendor site only.
> | The package code has references to such packages in the code, causing
> | problems while checking on CRAN.
> |
> | It would seem, at least for 2 above, that separating the suggested
> | functionality into other packages can ensure that birds of the same
> | feather can flock together. But the shared internals make this
> | impossible to do at the moment.
> |
> | The only thing I can think of is to ask CRAN to consider
> | _R_FORCE_CHECK_SUGGESTS_= 0 for such a package. Am I missing anything?
>
> You could use drat (or, if you prefer, roll a CRAN repo by hand) to host a
> "CRAN-alike" repo on, say, GitHub or any other http(s)-accessible site, and
> then use Additional_repository: with it.
>
> Brooke and I have a fully worked in example for the case of large data
> packages in the R Journal:
>
> https://journal.r-project.org/archive/2017/RJ-2017-026/index.html
>
> Hosting Data Packages via drat: A Case Study with Hurricane Exposure Data
>
> G. Brooke Anderson and Dirk Eddelbuettel , The R Journal (2017) 9:1, pages
> 486-497.
>
> Abstract Data-only packages offer a way to provide extended functionality
> for other R users. However, such packages can be large enough to exceed
> the package size limit (5 megabytes) for the Comprehen sive R Archive
> Network (CRAN). As an alternative, large data packages can be posted to
> additional repostiories beyond CRAN itself in a way that allows smaller
> code packages on CRAN to access and use the data. The drat package
> facilitates creation and use of such alternative repositories and makes it
> particularly simple to host them via GitHub. CRAN packages can draw on
> packages posted to drat repositories through the use of the
> ‘Additonal_repositories’ field in the DESCRIPTION file. This paper
> describes how R users can create a suite of coordinated packages, in which
> larger data packages are hosted in an alternative repository created with
> drat, while a smaller code package that interacts with this data is
> created that can be submitted to CRAN.
>
> Don't be misled by 'data' here--it works the same way with code. And it is
> the _one_ option you have because Suggests: are not required to be on a
> primary repo like CRAN or BioC. Naturally, you then need to condition your
> code on "is it here yet?" but you likely already do.
>
> Hope this helps, Dirk
>
More information about the R-package-devel
mailing list