[R-pkg-devel] CRAN pre-test failed on NOTE "no visible binding for global variable"

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Wed Jul 3 01:18:02 CEST 2019


On 02/07/2019 11:00 a.m., Georgi Boshnakov wrote:
>> ...
>> if(getRversion() >= "2.15.1") utils::globalVariables(c("."))
> 
> Using such a general pattern eventually and  inevitably will prevent the check from reporting legitimate bugs.

I believe globalVariables() takes a vector of names, not a regular 
expression for names.  So that's not so general, it's just the name ".".

Duncan Murdoch

> One alternative is to list explicitly the variables in question and make sure that they are not commonly used names like 'x'.
> If that is not practical and you use non-standard evaluation a lot,  consider '.data' from package 'lang' , see its documentation and/or Google it
> to find out how to use it.
> 
> #' @importFrom rlang .data
> 
> 
> Georgi Boshnakov
> 
> -----Original Message-----
> From: R-package-devel [mailto:r-package-devel-bounces using r-project.org] On Behalf Of Iñaki Ucar
> Sent: 02 July 2019 15:19
> To: Berlanga, Antonio J
> Cc: r-package-devel using r-project.org
> Subject: Re: [R-pkg-devel] CRAN pre-test failed on NOTE "no visible binding for global variable"
> 
> raúl
> 
> On Tue, 2 Jul 2019 at 14:18, Berlanga, Antonio J
> <a.berlanga using imperial.ac.uk> wrote:
>>
>> Hi r-package-devel,
>>
>> I've submitted my first package but it failed the CRAN pre-tests on
>> NOTES. I got:
>>
>> - my email
>>
>> - an extra non-standard file (which I have now added to .Rbuildignore)
>>
>> - NOTEs on "no visible global function definition"
>>
>> The first two I assume are harmless. The third I do not know how to fix
>> (possible solutions below). Can it be ignored and suggest the fail was a
>> false-positive?
>>
>> The third NOTE is:
>>
>> #######
>>
>> Flavor: r-devel-linux-x86_64-debian-gcc, r-devel-windows-ix86+x86_64
>> Check: R code for possible problems, Result: NOTE
>>    epi_clean_count_classes: no visible global function definition for
>>      '%>%'
>>    epi_clean_count_classes: no visible binding for global variable '.'
>>    epi_plot_heatmap: no visible binding for global variable 'Var1'
>>    epi_plot_heatmap: no visible binding for global variable 'Var2'
>>    epi_plot_heatmap: no visible binding for global variable 'value'
>>    epi_plot_heatmap_triangle: no visible binding for global variable
>>      'Var1'
>>    epi_plot_heatmap_triangle: no visible binding for global variable
>>      'Var2'
>>    epi_plot_heatmap_triangle: no visible binding for global variable
>>      'value'
>>    epi_plot_heatmap_triangle: no visible global function definition for
>>      'element_text'
>>    epi_plot_heatmap_triangle: no visible global function definition for
>>      'coord_fixed'
>>    epi_plot_heatmap_triangle: no visible global function definition for
>>      'element_blank'
>>    epi_plot_heatmap_triangle: no visible global function definition for
>>      'element_rect'
>>    epi_plot_heatmap_triangle: no visible global function definition for
>>      'guide_colorbar'
>>    epi_stats_summary: no visible global function definition for '%>%'
>>    epi_stats_tidy: no visible global function definition for '%>%'
>>    epi_stats_tidy: no visible binding for global variable '.'
>>    epi_stats_tidy: no visible binding for global variable 'x'
>>    epi_stats_tidy: no visible binding for global variable 'n'
>>    epi_stats_tidy: no visible binding for global variable 'id'
>>    Undefined global functions or variables:
>>      %>% . Var1 Var2 coord_fixed element_blank element_rect element_text
>>      guide_colorbar id n value x
>> #######
>>
>>
>> Solutions seem to cause errors elsewhere and there does not appear to be
>> an ideal one unfortunately. It seems to me that adding a file in the
>> directory 'R' containing eg:
>>
>> #######
>>
>> if(getRversion() >= "2.15.1") utils::globalVariables(c("."))
>>
>> #######
>>
>> is one of the preferred ways. This seems far from ideal though.
> 
> If you use NSE in your package, this is the best solution. You may
> also switch to SE.
> 
> Iñaki
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>



More information about the R-package-devel mailing list