[Rd] CRAN package with dependencies on Bioconductor
murdoch.duncan at gmail.com
Sat Jun 11 15:15:58 CEST 2011
On 11-06-11 1:09 AM, Kornelius Rohmeyer wrote:
> 2011/6/11 Duncan Murdoch<murdoch.duncan at gmail.com>:
>> On 11-06-10 7:04 PM, Kornelius Rohmeyer wrote:
>>> Dear all,
>>> for a CRAN-package that depends on another Bioconductor-package I find
>>> two things annoying and would like to know whether there are some
>>> 1) Is there some inevitable problem that install.packages does not
>>> install uninstalled packages (on which the specified package depends)
>>> also from Bioconductor (in the correct version)?
>>> 2) In my understanding (please correct me if I'm wrong!) CRAN uses
>>> bioconductor packages in another version than biocLite would install.
>>> For example:
>>> Our package gMCP depends on the package graph that has recently
>>> switched to the bioconductor repositories. But even the following
>>> commands will fail (i.e. install incompatible versions) for R 2.12
>>> under Windows (and most likely MacOS):
>>> This results in errors like the following:
>>> Error in validObject(.Object) :
>>> invalid class "graphMCP" object: superclass "graphBase" not defined
>>> in the environment of the object's class
>>> The superclass graphBase is introduced in graph 1.30. In my
>>> understanding the problem is that our package gMCP is build on CRAN
>>> for R 2.12 with the package graph in version 1.30. Unfortunately
>>> biocLite installs graph_1.28.0.zip for R 2.12.
>>> Are there ways to make dependencies on Bioconductor less complicated?
>> Users of your package are likely to have issues; make sure you document that
>> they need to include the Bioconductor repository as well as CRAN.
>> You can specify a version in a dependency (or a version range). I don't
>> know if BioC will make old versions available in binary formats, but they
>> will probably make source versions available.
>> Duncan Murdoch
> Dear Duncan,
> the main problem is not addressed by specifying a certain version (or
> at least I do not see how), since it's not the case that the package
> requires certain versions.
I don't understand. It sounds as though you're saying these two
- your package works with any version of graph
- CRAN builds a version of graph that is incompatible with your package.
The problem is that the default binary
> packages of the CRAN package and the Bioconductor package it depends
> on are incompatible for R 2.12, since CRAN uses a different version of
> the Bioconductor package for building. (For the source packages of
> course no problem exists.) Btw. is there a way to find out which
> versions of the dependent packages were used for building a certain
> binary package? (I guess in the moment, that CRAN uses always the
> newest available source packages.)
> These kind of incompatibilities are extremely hard to track for the
> package developer. So if there is not a way to install the correct
> corresponding compatible binary packages from CRAN and Bioconductor,
> may I suggest that CRAN uses the same versions of dependent
> Bioconductor packages for the build of binary packages as Bioconductor
> is providing in binary form by default for the respective R versions?
I am not involved with setting CRAN policy, but their current policy
(build the most recent version of a package that declares itself
compatible with the relevant version of R) seems reasonable.
If for whatever reason this doesn't work for your package with R 2.12.x,
I see two possible solutions:
- Declare that your package now depends on R 2.13.0 or better.
- Move your package to Bioconductor, if its policy for binary builds
better matches your needs.
> Or am totally on the wrong track?
> Thank you very much and best regards, Kornelius.
More information about the R-devel