From murdoch@dunc@n @end|ng |rom gm@||@com  Thu Nov  4 20:37:01 2021
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Thu, 4 Nov 2021 15:37:01 -0400
Subject: [Rd] .onLoad, packageStartupMessage, and R CMD check
In-Reply-To: <CAD7Bkx9ySNzwwbnADzA3k=AA8gvW-jMdO+C_w9eHOAXR5pCeOg@mail.gmail.com>
References: <CAD7Bkx9ySNzwwbnADzA3k=AA8gvW-jMdO+C_w9eHOAXR5pCeOg@mail.gmail.com>
Message-ID: <c364a4c7-4db5-71e9-9079-0c694043a37f@gmail.com>

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



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