[Rd] .onLoad, packageStartupMessage, and R CMD check

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Thu Nov 4 20:37:01 CET 2021

On 04/11/2021 2:50 p.m., Michael Chirico via R-devel wrote:
> I wrote a linter to stop users from using packageStartupMessage() in
> their .onLoad() hook because of the R CMD check warning it triggers:
> https://github.com/wch/r-source/blob/8b6625e39cd62424dc23399dade37f20fa8afa91/src/library/tools/R/QC.R#L5167
> However, this received some pushback which I ultimately agree with,
> and moreover ?.onLoad seems to agree as well:
>> Loading a namespace should where possible be silent, with startup
> messages given by \code{.onAttach}. These messages (**and any essential
> ones from \code{.onLoad}**) should use \code{\link{packageStartupMessage}}
> so they can be silenced where they would be a distraction.
> **emphasis** mine. That is, if we think some message is _essential_ to
> print during loadNamespace(), we are told to use
> packageStartupMessage().
> Should we remove this R CMD check warning?

The help page doesn't define what an "essential" message would be, but I 
would assume it's a message about some dire condition, not just "Hi! I 
just got loaded!".  So I think a note or warning would be appropriate, 
but not an error.

Do you have an example of something that should routinely print, but 
that triggers a warning when checked?

Duncan Murdoch

More information about the R-devel mailing list