Marc,
For make check-all you may need to set
setenv _R_CHECK_FORCE_SUGGESTS_ FALSE
Yes, there is a change in nlme, because packages needed for complete
testing are required to be listed in DESCRIPTION: see 'Writing R
Extensions'.
Most of us have that environmnet variable set.
Brian
On Fri, 15 Oct 2010, Marc Schwartz wrote:
Hi all,
I am building R 2.12.0 patched this morning from source on Snow Leopard
(10.6.4). In fact, three times now, with separate clean source and build
directories each time, just to be sure that the issue is predictable.
I would be happy to have somebody tell me that I am missing something
fundamental here also...
After running make check-all, I get the following error for 'nlme':
* using log directory
‘/Users/marcschwartz/R.Files/SourceCode/32bitR/tests/nlme.Rcheck’
* using R version 2.12.0 Patched (2010-10-15 r53323)
* using platform: i386-apple-darwin10.4.0 (32-bit)
* using session charset: UTF-8
* checking for file ‘nlme/DESCRIPTION’ ... OK
* this is package ‘nlme’ version ‘3.1-97’
* checking package name space information ... OK
* checking package dependencies ... ERROR
Package required but not available: Hmisc
See the information on DESCRIPTION files in the chapter
'Creating R packages' of the 'Writing R Extensions' manual.
From what I can tell, nlme is the only core/recommended package
that now has a "Suggests" in the DESCRIPTION file for a
non-core/non-recommended package. This Suggests for Frank's Hmisc
appears to be new as of version 3.1.-97 of nlme.
A search of the examples/tests for nlme yields an example in augPred_lab.R as
follows, which appears to be the only code based reference to Hmisc in the nlme
package:
library(nlme)
if(require("Hmisc")) {
T.aug <- Orthodont
label(T.aug$age) <- 'anyL'
foo <- augPred(lme(distance ~ age, random = ~1|Subject, data=T.aug))
## failed in 3.1-72
}
## failed even if there is a variable with a class that is not being used.
T.aug <- Orthodont
T.aug$newage <- T.aug$age
class(T.aug$newage) <- 'anyC'
foo <- augPred(lme(distance ~ age, random = ~1|Subject, data=T.aug))
## failed in 3.1-72
The above example/test is not new to the package, so it would seem that
something has changed in the handling of Suggests in the package DESCRIPTION
file in 2.12.0.
A check of the log for nlme on CRAN does not reveal any problems for 2.12.0,
but presumably since Hmisc would be available there, the check would not
logically fail, whereas with a clean local build not containing any add-on
packages, it would.
Running R CMD check from the CLI directly on the nlme package using 2.12.0
yields:
./R CMD check nlme_3.1-97.tar.gz
* using log directory
‘/Users/marcschwartz/R.Files/SourceCode/32bitR/bin/nlme.Rcheck’
* using R version 2.12.0 Patched (2010-10-15 r53329)
* using platform: i386-apple-darwin10.4.0 (32-bit)
* using session charset: UTF-8
* checking for file ‘nlme/DESCRIPTION’ ... OK
* this is package ‘nlme’ version ‘3.1-97’
* checking package name space information ... OK
* checking package dependencies ... ERROR
Package required but not available: Hmisc
See the information on DESCRIPTION files in the chapter
'Creating R packages' of the 'Writing R Extensions' manual.
whereas running R CMD check using 2.11.1 patched on the same new version of
nlme does not yield an error. So, again, it would seem that something has
changed in 2.12.0.
From a review of R-Exts, the following language was in 2.11.1 patched in
section 1.1.1 for the 'general rules':
All packages that are needed to successfully run R CMD check on the package
must be listed in one of ‘Depends’ or ‘Suggests’ or ‘Imports’.
whereas in 2.12.0:
All packages that are needed to successfully run R CMD check on the package
must be listed in one of ‘Depends’ or ‘Suggests’ or ‘Imports’. Packages used to
run examples or tests conditionally (e.g. via if(require(pkgname))) should be
listed in ‘Suggests’ or ‘Enhances’. (This allows checkers to ensure that all
the packages needed for a complete check are installed.)
So, without looking through code in the 'tools' package yet, it would seem that
the tests in 2.12.0 are perhaps intended to be more rigorous, although I did
not see an obvious change in the language in the 'checking packages' section of
R-Exts, under bullet number 5 regarding the tests aborting.
This leads me to the question, in the case of nlme, should R CMD check fail if
Hmisc is not present in a clean build tree? Or, should the use of Hmisc in the
example be removed along with the Suggests entry in the DESCRIPTION file, such
that none of the core/recommended packages are dependent upon any third party
packages?
The former may be a functional issue, whereas the latter would seem to me to be
an appropriate policy issue (not specifically pertaining to Hmisc or Frank, of
course).
Thanks,
Marc Schwartz
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, rip...@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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel