Skip to content
Prev 35597 / 63421 Next

optional package dependency

On 1/15/10 12:19 AM, Kurt Hornik wrote:
I believe another option is:

   pkg <- "somePkg"
   pkgAvail <- require(pkg, character.only = TRUE)
   if (pkgAvail)
      ...
   else
      ...
Unless the public repositories such as CRAN and Bioconductor decide to
set this option, it provides no solution for anyone who maintains or
plans to make available a package through a public R repository such as
CRAN or Bioconductor.

There is a real need (of some kind) here.  Not all packages work on all
platforms.  For example, the multicore package provides a mechanism for
running parallel computations on a multi-cpu box, but it is not
available on Windows.  A package that _is_ available on all platforms
should be able to optionally make use of multicore on non-Windows.  I
don't think there is a way to do that now and pass check without
resorting to "tricks" as above.  These tricks are bad as they make it
harder to programmatically determine the true "suggests".

And NAMESPACE brings up another issue in that being able to do
conditional imports would be very useful for these cases, otherwise you
simply can't make proper use of name spaces for any optional functionality.

I'm willing to help work on and test a solution if we can arrive at some
consensus as to what the solution looks like.

Best,

+ seth