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
CRAN build/checks: Dependencies on non-CRAN packages?
7 messages · Kurt Hornik, Brian Ripley, Henrik Bengtsson
Henrik Bengtsson writes:
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?
Not quite. No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked. -k
Thanks
Henrik
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
On Sun, Jun 7, 2009 at 11:49 PM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
Henrik Bengtsson writes:
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?
Not quite. ?No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked.
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
-k
Thanks
Henrik
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Henrik Bengtsson writes:
On Sun, Jun 7, 2009 at 11:49 PM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
Henrik Bengtsson writes:
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?
Not quite. ?No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked.
Hmm... so you're saying R CMD check pass ("work") although a package
is missing?
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
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
-k
Thanks
Henrik
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
On Mon, Jun 8, 2009 at 12:29 AM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
Henrik Bengtsson writes:
On Sun, Jun 7, 2009 at 11:49 PM, Kurt Hornik<Kurt.Hornik at wu.ac.at> wrote:
Henrik Bengtsson writes:
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?
Not quite. ?No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked.
Hmm... so you're saying R CMD check pass ("work") although a package
is missing?
Are you asking what happens if a CRAN package depends on a BioC package which is missing from BioC?
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".
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).
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
Best -k
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
-k
Thanks
Henrik
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
On Mon, 8 Jun 2009, Kurt Hornik wrote:
Henrik Bengtsson writes:
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?
Not quite. No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked.
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.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
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:
On Mon, 8 Jun 2009, Kurt Hornik wrote:
Henrik Bengtsson writes:
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?
Not quite. ?No more special casing of BioC or Ohat dependencies: they simply "work", and packages with such dependencies can fully be checked.
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. -- Brian D. Ripley, ? ? ? ? ? ? ? ? ?ripley at stats.ox.ac.uk Professor of Applied Statistics, ?http://www.stats.ox.ac.uk/~ripley/ University of Oxford, ? ? ? ? ? ? Tel: ?+44 1865 272861 (self) 1 South Parks Road, ? ? ? ? ? ? ? ? ? ? +44 1865 272866 (PA) Oxford OX1 3TG, UK ? ? ? ? ? ? ? ?Fax: ?+44 1865 272595