Library/package development - message when loading
Quick points (and updated edit in 2021):
while if your package has a NAMESPACE, then
.onLoad()
is where you used to do this: but.onLoad()
has been required to be 'silent'if your package has a NAMESPACE, then
.onAttach()
is where can call, preferably viapackageStartupMessage()
(which can be suppressed wherecat()
ormessage()
cannotif your package does not have NAMESPACE, then you must add one now (and
.First.lib()
was where you used to do this) -- NAMESPACES have been mandatory for a few years noweither way, use
packageStartupMessage()
instead ofcat()
so that users have a choice of suppressing this.
Yes. You can use the .onLoad
, .onAttach
, or .First.lib
functions to do whatever you want when the package is loaded. I suggest looking at the help for those functions. You would use .onLoad
with a namespace, and .First.lib
without.
One convention is that people will frequently put these commands in a separate zzz.R
file, which is just used for package related code.