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 -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel