Skip to content

CRAN build/checks: Dependencies on non-CRAN packages?

7 messages · Kurt Hornik, Brian Ripley, Henrik Bengtsson

#
Hi,

how is the CRAN build/check system dealing with dependencies on
non-CRAN packages?  Are there external repositories that are dealt
with in special ways, e.g. Bioconductor and Omegahat?  Is this
documented somewhere?

The most recent note on this that I could locate is "[Rd] CRAN,
Bioconductor and ctv package dependency questions", Kurt Hornik, Sept
8, 2005; https://stat.ethz.ch/pipermail/r-devel/2005-September/034547.html.
 Does the comments in that thread still reflect how CRAN works?

Thanks

Henrik
#
Not quite.  No more special casing of BioC or Ohat dependencies: they
simply "work", and packages with such dependencies can fully be checked.

-k

        
#
On Sun, Jun 7, 2009 at 11:49 PM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
Hmm... so you're saying R CMD check pass ("work") although a package
is missing?  If so, what about example/test code where that external
package is loaded?  ...or even harder, where a function of that
external package is called, e.g.

require("externalPkg") || stop(...);
res <- externalPkg::specialFcn(...);
stopifnot(identical(res,42));
...

This is not a constructed example; I do have some example():s].

Thxs

Henik
#
Are you asking what happens if a CRAN package depends on a BioC package
which is missing from BioC?

You can safely assume the availability of BioC and Ohat packages
(provided we can install these).  We do not accept packages with
unconditional (depends/imports) dependencies on package not in the
standard repositories, but do not force the availability of suggested
packages: so you can suggest an external package (but R CMD check should
still pass if the package is not available).

Best
-k
#
On Mon, Jun 8, 2009 at 12:29 AM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
No, my question was what happens if your CRAN package depends on
non-CRAN packages.  In the above Sept 2005 thread, I read "The only
catch is that in the current setup of daily CRAN package
checking, packages with non-CRAN dependencies are checked ***using
fake or no installs***."  I though your term "work" meant the same as
"using fake or no installs".
Ok, this clarifies a few things. So:

1) One can assume that packages on CRAN, Bioconductor (release and/or
devel?), and Omegahat are available on the CRAN servers.
2) One cannot assume that packages from other repositories, including
r-forge.r-project.org, are available.
3) When R CMD check is ran on the CRAN servers it will not give an
error for non-available packages that are listed under "Suggests:" in
the DESCRIPTION file (as R CMD check would do by default).

However, in my example example() code below, I would expect R CMD
check to still fail if you list 'externalPkg' under "Suggests"; it
will pass the package/code validation, but when running the examples,
it will fail, either because of the require(...) || stop(...)
statement or because there is no way 'res' would have value 42 unless
the package really exists.

Yet another feature request (just a suggestion): It could be useful
provide a file with the packages installed on each "check" server,
e.g.:

data <- installed.packages();
data <- paste(data[,"Package"], data[,"Version"], sep=" ");
cat(data, sep="\n");

Cheers

Henrik
#
On Mon, 8 Jun 2009, Kurt Hornik wrote:

            
With some caveats.  The CRAN check summaries are from four sets of 
systems (CRAN's, the Windows and Mac autobuilders and my server using 
the Sun Studio compiler) and hence four supervisors.

Most of us install the BioC and Omegahat packages that are needed as 
dependencies in so far as we can (this looks to be less so for the Mac 
autobuilder).  But 'in so far as we can' has limits, not least the 
time needed to fiddle around with some of them.

In principle if a package depended on an off-CRAN/BioC/Omegahat 
package and it was clear where to get it we would try to install it -- 
however, in all past instances I have failed in that installation.

It may be worth adding that as the number of packages grows the total 
time available to work on those that fail does not increase (and all 
of us involved have less time for this than we once had), so the 
effort available per problematic package has decreased considerably. 
Also, Omegahat no longer provides Windows binaries and the 
alternatives (CRAN extras, BioC extras) only cover a few.
#
Thank you all for these clarifications and for all your great
contributions to this project (can't be said too many times)!  /Henrik
On Mon, Jun 8, 2009 at 2:17 AM, Prof Brian Ripley<ripley at stats.ox.ac.uk> wrote: