how to suppress "S3 method overwritten" messages from being printed to user console
Quickly looked at the code of the package on GitHub, and to me it seems like some of those functions should be removed from NAMESPACE.
You are using @importFrom()
however simply adding an "Imports:" declaration in DESCRIPTION and then calling the functions by specifying the namespace, i.e. package::function
is enough. This way they would not get attached to the namespace and would not conflict with one another.
Looked a bit closer, and it seems that the issue is with the packages that you export, not your library itself. So for example simply calling library(broom.mixed)
produces the conflicts. Since you export some of its import (from broomExtra
) the same conflicts appear.
Seems like there is an issue about it already on their GitHub: HERE so best case would be to issue a pull request to them. Or alternatively - maybe you don't really need to export those functions in the first place.
Therefore, every time the package is loaded, the user is bombarded with messages about this issue, which is not useful for the most users.
As a "peace of mind" workaround, users can simply set the environment variable _R_S3_METHOD_REGISTRATION_NOTE_OVERWRITES_
to one of 0
, no
or false
before loading any of the affected packages:
Sys.setenv(`_R_S3_METHOD_REGISTRATION_NOTE_OVERWRITES_` = "false")
Background: There was some instructive conversation about overwriting S3 methods becoming verbose with R 3.6 over at rlang's GitHub repo for anyone interested in more details.