I think the usual rule is that a qualified use of a package is
sufficient to suppress the warning without any entry in the NAMESPACE
file. So if there isn't something else going on, Antoine's example
illustrates a bug (or at least an inconsistency) in the check code.
Here's a version of your example that doesn't import anything from rlang
using the NAMESPACE, but uses it in code:
https://github.com/dmurdoch/imports.example/tree/explicituse
And here's one like Antoine's, where the only use is in a default value:
https://github.com/dmurdoch/imports.example/tree/defaultvalue
The first one tests clean, the second one gives the note he was talking
about:
❯ checking dependencies in R code ... NOTE
Namespace in Imports field not imported from: ‘rlang’
All declared Imports should be used.
Duncan
On 06/02/2023 1:03 p.m., Kevin Ushey wrote:
Hi Antoine,
Maybe I'm misunderstanding, but I think the warning is saying that
you've declared the package dependency in the DESCRIPTION file, but
you haven't actually imported the package (or any functions) in your
package NAMESPACE file?
I put together an example package that I think satisfies the point
you're describing, and I don't see any R CMD check warnings (using R
4.2.2).
https://github.com/kevinushey/imports.example
As I understand it, if you declare a package dependency in the
DESCRIPTION file, you need to clarify how you're using the package in
the NAMESPACE file -- e.g. what symbols you want to import, and so on.
Best,
Kevin
On Mon, Feb 6, 2023 at 6:43 AM Antoine Fabri <antoine.fa...@gmail.com> wrote:
Dear r-devel,
When a package is only used in an argument definition, e.g :
f <- function(test = testthat::is_testing()) {
if (test) 1 else 2
}
R CMD CHECK gives us a note: "Namespace in Imports field not imported from:
'testthat'"
This incites me to remove the package from the Imports field but that'll
make my package brittle.
I noted I'm not the first one having the issue (
https://github.com/r-lib/devtools/issues/2456 ) and I've seen some
workarounds too, in particular Hadley Wickham suggests in 'R packages' to
use the following construct :
ignore_unused_imports <- *function*() {
aaapkg::aaa_fun
}
That's far from obvious though, and not very satisfying.
Are there any downside to removing this note in this scenario? it makes
little sense to me and incites wrong behaviour AFAIU.
Thanks,
Antoine
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel