Warnes, Gregory R
2004-Sep-17 20:19 UTC
[Rd] R-2.0.0 Install problem for package bundle with inter-dependent n amespaces
I have a revised version of the gregmisc package, which I've converted into a package bundle each of which has a namespace: gplots, gmodels, gdata, gtoools. Of course, there are interdependencies among these namespaces: gsun374: /tmp [11]> cd gregmisc/ gsun374: gregmisc [12]> grep import */NAMESPACE gdata/NAMESPACE:importFrom(gtools, odd, invalid, mixedsort) gmodels/NAMESPACE:importFrom(MASS, ginv) gplots/NAMESPACE:importFrom(gtools, invalid) gplots/NAMESPACE:importFrom(gtools, odd) gplots/NAMESPACE:importFrom(gdata, nobs) Under R-1.9.1, this package bundle passes R CMD check and installs happily. However, under yesterday's R-2.0.0-alpha, the package fails to install (& hence pass CMD CHECK) with the error ** preparing package for lazy loading Error in loadNamespace(i[[1]], c(lib.loc, .libPaths()), keep.source) : There is no package called 'gdata' Execution halted ERROR: lazy loading failed for package 'gplots' because the gdata package is the last in the bundle to be installed, so it is not yet present. So, what is the proper way to handle this? Is there some way to manually specify the package install order? Gregory R. Warnes Manager, Non-Clinical Statistics Pfizer Global Research and Development LEGAL NOTICE\ Unless expressly stated otherwise, this messag...{{dropped}}
Martin Maechler
2004-Sep-20 11:41 UTC
[Rd] R-2.0.0 Install problem for pkg bundle w inter-dependent namespaces
>>>>> "Greg" == Warnes, Gregory R <gregory_r_warnes@groton.pfizer.com> >>>>> on Fri, 17 Sep 2004 14:18:29 -0400 writes:Greg> I have a revised version of the gregmisc package, Greg> which I've converted into a package bundle each of Greg> which has a namespace: gplots, gmodels, gdata, Greg> gtoools. Of course, there are interdependencies among Greg> these namespaces: Greg> gsun374: /tmp [11]> cd gregmisc/ Greg> gsun374: gregmisc [12]> grep import */NAMESPACE Greg> gdata/NAMESPACE:importFrom(gtools, odd, invalid, mixedsort) Greg> gmodels/NAMESPACE:importFrom(MASS, ginv) Greg> gplots/NAMESPACE:importFrom(gtools, invalid) Greg> gplots/NAMESPACE:importFrom(gtools, odd) Greg> gplots/NAMESPACE:importFrom(gdata, nobs) since nobody else has answered yet (and a considerable portion of R-core is traveling this week) : If I understand correctly, your basic package 'gtools' and the dependency you need is gplots --> gdata --> gtools \----->----/ Have you made sure to use the proper 'Depends: ' entries in the DESCRIPTION(.in) files of your bundle packages ? This works fine if the packages are *not* in a bundle, right? Greg> Under R-1.9.1, this package bundle passes R CMD check Greg> and installs happily. However, under yesterday's Greg> R-2.0.0-alpha, the package fails to install (& hence Greg> pass CMD CHECK) with the error Greg> ** preparing package for lazy loading Greg> Error in loadNamespace(i[[1]], c(lib.loc, .libPaths()), keep.source) Greg> : Greg> There is no package called 'gdata' Greg> Execution halted Greg> ERROR: lazy loading failed for package 'gplots' Greg> because the gdata package is the last in the bundle to Greg> be installed, so it is not yet present. Greg> So, what is the proper way to handle this? Is there Greg> some way to manually specify the package install order? Well, isn't the order in the 'Contains:' field of the bundle DESCRIPTION file used? If not, please consider sending patches for src/scripts/INSTALL.in There are not too many bundles AFAIK, and conceptually (inspite of the recommended VR one) the improved package management tools that we (and the bioconductor project) have been adding to R for a while noe really aim for "R package objects" and clean version / dependency handling of inidividual packages in many different concepts. If bundle installation etc could rely entirely on the package tools, bundles would "work automagically". But probably, for this a bundle would have to be treated as a "package repository" which it isn't currently AFAIK. Regards, Martin Maechler