On 12 January 2012 at 12:12, Hervé Pagès wrote: | Hi Dirk, | | On 01/11/2012 11:42 AM, Dirk Eddelbuettel wrote: | > | > R CMD check really hates it when my .onLoad() function contains | > suppressMessages(library(foo)) | | Note that you can always fool 'R CMD check' by doing something like: | | sillyname <- library | suppressMessages(sillyname("foo")) | | Also isn't suppressPackageStartupMessages() more appropriate? | | > | > However, _and for non-public packages not going to CRAN_ I prefer doing this | > over using explicit Depends or import statements in the NAMESPACE file as the | > latter do not give me an ability to make the loading less verbose. With the | > R universe of packages being as vast as at is, a simple (non-public) package | > I have loads about five or six other packages explicitly, each of which loads | > even more. The net result is totally intimidating _sixty lines full_ of | > verbose noise that is meaningful to me as an R programmer, but not for the | > colleagues expected to use the packages. It looks rather uninviting, frankly. | > | > How do I use imports via NAMESPACE, and yet keep the noise level down to zero? | | If you only need to import foo (i.e. and actually don't need to attach | it to the search path) then putting foo in Imports and using import | statements in NAMESPACE will keep the noise level down to zero.
I don't think so. I have an internal package, call it fooUtils, that (among other things) needs to figure at startup whether it runs on this or that OS. So that package fooUtils does .onLoad <- function(libname, pkgname) { if (.Platform$OS.type == "windows") { packageStartupMessage("Running on Windows") # [... more stuff here ... ] } else if (.Platform$OS.type == "unix") { packageStartupMessage("Running on Linux") # [... more stuff here ... ] } else { warning("Platform ", .Platform$OS.type, " not recognised") drives <- NULL } # .... } and contrary to your claim, this is not silent as soon as I do importFrom(fooUtils, someThing) the messages above pop up. While I can suppress them for 'normal' loads via suppressMessages(library(fooUtils)) or suppressPackageStartupMessages(library(fooUtils)) I cannot suppress them via NAMESPACE imports. Dirk | So I guess your question is: how do we suppress package startup messages | for packages listed in Depends? | | Cheers, | H. | | > | > Dirk | > | | | -- | Hervé Pagès | | Program in Computational Biology | Division of Public Health Sciences | Fred Hutchinson Cancer Research Center | 1100 Fairview Ave. N, M1-B514 | P.O. Box 19024 | Seattle, WA 98109-1024 | | E-mail: hpa...@fhcrc.org | Phone: (206) 667-5791 | Fax: (206) 667-1319 -- "Outside of a dog, a book is a man's best friend. Inside of a dog, it is too dark to read." -- Groucho Marx ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel