[R-pkg-devel] Not a bug in checks in R-devel

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Oct 28 19:03:00 CET 2019


On 28/10/2019 1:01 p.m., William Dunlap wrote:
> The Matrix package explicitly sets LazyData to "no" with a note saying 
> that it is necessary.
> 
>     LazyData: no
>     LazyDataNote: not possible, since we use data/*.R *and* our classes
> 
> 
> My notes on implementing install.packages() in TERR include
> 
>     When R's install.packages() processes *.R files in the package's
>     data directory, they may use functions defined in the package's R
>     directory, whether or not LazyData is yes or no.
> 
>     If LazyData is no (but not if yes), then the *.R files in data can
>     refer to files copied from pkg/inst/blah to pkg/blah.
> 
>     TERR must be able to do this to install the Matrix package from source.
> 
> 
> Hence changing the default to "yes" may break the installation of some 
> packages.

Thanks!  This also shows another solution to Luis-Miguel's problem.  He had

\usage{growth.curves}

in his .Rd file, but that doesn't work unless LazyData: yes is used (as 
pointed out earlier).  In fact, it is incorrect:  running

  growth.curves

in the R console gives the error

Error: object 'growth.curves' not found

Since data is not lazy-loaded, the approach used by Matrix is needed, 
i.e. an explicit call to data():

\usage{
data(growth.curves)
}

So this isn't a bug in the checks after all, it was an error in the 
package and was being reported correctly.

Duncan Murdoch

> 
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com <http://tibco.com>
> 
> 
> On Sun, Oct 27, 2019 at 12:35 PM Duncan Murdoch 
> <murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>> wrote:
> 
>     On 27/10/2019 6:04 a.m., Luis-Miguel Rodríguez Rojas wrote:
>      > Thanks a lot Xavier!
>      > This solved my issue.
> 
>     This seems like a simple workaround for the bug.  Perhaps "LazyData:
>     yes" should become the default.  I don't know what are the
>     advantages of
>     the current "LazyData: no" default.
> 
>     BTW, another issue is that the environment variable controlling this
>     test,  "_R_CHECK_CODOC_VARIABLES_IN_USAGES_", doesn't appear to be
>     documented.  I did a fairly rough search through the sources for other
>     undocumented check variables, and found this list:
> 
>        [1] "_R_CHECK_CODOC_VARIABLES_IN_USAGES_"
>        [2] "_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_MAYBE_"
>        [3] "_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_START_"
>        [4] "_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_"
>        [5] "_R_CHECK_CRAN_INCOMING_DESCR_BAD_START_RECHECK_MAYBE_"
>        [6] "_R_CHECK_CRAN_INCOMING_DESCR_BAD_START_RECHECK_START_"
>        [7] "_R_CHECK_CRAN_INCOMING_GNU_MAKE_RECHECK_MAYBE_"
>        [8] "_R_CHECK_CRAN_INCOMING_GNU_MAKE_RECHECK_START_"
>        [9] "_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_"
>     [10] "_R_CHECK_CRAN_INCOMING_SKIP_DATES_"
>     [11] "_R_CHECK_CRAN_INCOMING_SKIP_DOI_CHECKS_"
>     [12] "_R_CHECK_CRAN_INCOMING_SKIP_URL_CHECKS_IF_REMOTE_"
>     [13] "_R_CHECK_CRAN_INCOMING_SKIP_VERSIONS_"
>     [14] "_R_CHECK_CRAN_INCOMING_TITLE_CASE_RECHECK_MAYBE_"
>     [15] "_R_CHECK_CRAN_INCOMING_TITLE_CASE_RECHECK_START_"
>     [16] "_R_CHECK_CRAN_INCOMING_TITLE_INCLUDES_NAME_RECHECK_MAYBE_"
>     [17] "_R_CHECK_CRAN_INCOMING_TITLE_INCLUDES_NAME_RECHECK_START_"
>     [18] "_R_CHECK_CRAN_INCOMING_USE_ASPELL_"
>     [19] "_R_CHECK_CRAN_STATUS_SUMMARY_"
>     [20] "_R_CHECK_FF_AS_CRAN_"
>     [21] "_R_CHECK_FILE_TIMES_TOL_"
>     [22] "_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_"
>     [23] "_R_CHECK_MAINTAINER_ADDRESS_"
>     [24] "_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_"
>     [25] "_R_CHECK_PACKAGE_DEPENDS_IGNORE_MISSING_ENHANCES_"
>     [26] "_R_CHECK_PACKAGES_USED_CRAN_INCOMING_NOTES_"
>     [27] "_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_"
>     [28] "_R_CHECK_RD_CONTENTS_KEYWORDS_"
>     [29] "_R_CHECK_SIZE_OF_TARBALL_"
>     [30] "_R_CHECK_SRC_MINUS_W_SOMETIMES_UNINITIALIZED_"
>     [31] "_R_CHECK_STANGLE_WARNINGS_"
>     [32] "_R_CHECK_SUPPRESS_RANDR_MESSAGE_"
>     [33] "_R_CHECK_UNLOAD_NAMESPACES_"
>     [34] "_R_CHECK_URLS_USE_CURL_"
>     [35] "_R_CHECK_VIGNETTE_TITLES_"
>     [36] "_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_"
> 
>     Some of these (including _R_CHECK_CODOC_VARIABLES_IN_USAGES_) may be
>     intended for internal use only; I'm not even certain the others are
>     used
>     in the checks.  All I was looking for were patterns in the source using
> 
>         grep -r _R_CHECK_ *
> 
>     and within those lines I assumed ones with the pattern
>     Sys.getenv("...")
>     were actually environment variables being used, and ones in files in
>     the
>     doc directory were documented.  The ones listed above appear to be used
>     but not documented.
> 
>     Duncan Murdoch
> 
>      >
>      > Best,
>      > Miguel.
>      >
>      > --
>      > Luis M. Rodriguez-R, Ph.D.
>      > [ https://rodriguez-r.com <https://rodriguez-r.com/> ]
>      > ---------------------------------
>      > Research Engineer
>      > Georgia Institute of Technology
>      > 311 Ferst Drive, ES&T, Room 3324
>      > Atlanta, GA 30332, USA
>      > [ http://enve-omics.gatech.edu/ ]
>      >
>      >
>      >
>      > On Sun, Oct 27, 2019 at 3:09 AM Xavier Robin
>     <Xavier.Robin using sib.swiss> wrote:
>      >
>      >     Hi,
>      >
>      >     It seems you have LazyLoad in your DESCRIPTION:
>      >
>      >     LazyLoad: yes
>      >
>      >     I ran into the same warning a few months ago and realized that
>      >     LazyLoad has been ignored since R 2.14.0. As a consequence your
>      >     dataset is not actually loaded lazily, which triggers the
>     warning.
>      >
>      >     Apparently the new way to lazy load a dataset is to use
>     LazyData in
>      >     the DESCRIPTION:
>      >
>      >     LazyData: yes
>      >
>      >     I don't know in which R version LazyData was introduced, but I
>      >     expect around the same time.
>      >
>      >
>     https://cran.r-project.org/doc/manuals/r-release/R-exts.html#The-DESCRIPTION-file
>      >
>      >     I ended up making the following change, and the warning
>     disappeared:
>      >
>      >
>     https://github.com/xrobin/pROC/commit/77bbb151412643628f2549868700325c8e47cad4
>      >
>      >     I hope it helps.
>      >     Xavier
>      >
>      >
>      >     On 27.10.19 02:14, Duncan Murdoch wrote:
>      >>     I think this is a bug.  It starts to appear in R-devel revision
>      >>     76780,
>      >>
>      >>   
>       ------------------------------------------------------------------------
>      >>
>      >>     r76780 | hornik | 2019-07-04 14:55:52 -0400 (Thu, 04 Jul
>     2019) | 1
>      >>     line
>      >>
>      >>     Tweaks for c76774.
>      >>   
>       ------------------------------------------------------------------------
>      >>
>      >>
>      >>     where the default for a new test is set to TRUE.  The new
>     test was
>      >>     introduced in 76774,
>      >>
>      >>   
>       ------------------------------------------------------------------------
>      >>
>      >>     r76774 | hornik | 2019-07-03 05:02:40 -0400 (Wed, 03 Jul
>     2019) | 2
>      >>     lines
>      >>
>      >>     Have codoc() report variables in usages not in the code.
>      >>     (Optionally for now).
>      >>   
>       ------------------------------------------------------------------------
>      >>
>      >>
>      >>     Duncan Murdoch
>      >>
>      >>
>      >>     On 26/10/2019 4:54 p.m., Luis-Miguel Rodríguez Rojas wrote:
>      >>>     Hello Duncan,
>      >>>
>      >>>     Thanks for your quick response!
>      >>>
>      >>>     I tried re-building and re-submitting and I'm still getting
>      >>>     the same error:
>      >>>
>     https://win-builder.r-project.org/incoming_pretest/enveomics.R_1.5.0_20191026_224156/Windows/00check.log
>      >>>
>      >>>
>     https://win-builder.r-project.org/incoming_pretest/enveomics.R_1.5.0_20191026_224156/Debian/00check.log
>      >>>
>      >>>
>      >>>     I've made the tarball temporarily available directly in the
>      >>>     repository in case that helps at all:
>      >>>
>     https://github.com/lmrodriguezr/enveomics/blob/master/enveomics.R_1.5.0.tar.gz
>      >>>
>      >>>
>      >>>     Thanks a lot!
>      >>>     Miguel.
>      >>>
>      >>>     --
>      >>>     Luis M. Rodriguez-R, Ph.D.
>      >>>     [ https://rodriguez-r.com <https://rodriguez-r.com/>
>      >>>     <https://rodriguez-r.com/> ]
>      >>>     ---------------------------------
>      >>>     Research Engineer
>      >>>     Georgia Institute of Technology
>      >>>     311 Ferst Drive, ES&T, Room 3324
>      >>>     Atlanta, GA 30332, USA
>      >>>     [ http://enve-omics.gatech.edu/ ]
>      >>>
>      >>>
>      >>>
>      >>>     On Sat, Oct 26, 2019 at 1:39 PM Duncan Murdoch
>      >>>     <murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>
>     <mailto:murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>>
>      >>>     *MailScanner has detected a possible fraud attempt from
>      >>>     "gmail.com <http://gmail.com>" claiming to be*
>     <mailto:murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>>
>      >>>     <mailto:murdoch.duncan using gmail.com
>     <mailto:murdoch.duncan using gmail.com>>> wrote:
>      >>>
>      >>>         On 26/10/2019 11:39 a.m., Luis-Miguel Rodríguez Rojas
>     wrote:
>      >>>          > Dear all,
>      >>>          >
>      >>>          > I maintain a package that has data fields, and
>     didn't have
>      >>>     any
>      >>>         problems
>      >>>          > with this before. However, in my latest update, I'm
>      >>>     getting the
>      >>>         following
>      >>>          > error message from the CRAN tests:
>      >>>          >
>      >>>          > Flavor: r-devel-linux-x86_64-debian-gcc,
>      >>>     r-devel-windows-ix86+x86_64
>      >>>          > Check: for code/documentation mismatches, Result:
>     WARNING
>      >>>          >    Variables with usage in documentation object
>      >>>     'growth.curves'
>      >>>         but not in
>      >>>          > code:
>      >>>          >      'growth.curves'
>      >>>          >
>      >>>          >    Variables with usage in documentation object
>      >>>     'phyla.counts'
>      >>>         but not in
>      >>>          > code:
>      >>>          >      'phyla.counts'
>      >>>
>      >>>         I'm not seeing those messages when testing your package in
>      >>>     the same R
>      >>>         version as win-builder used, so it could be a transient
>      >>>     issue, or a
>      >>>         problem with the tarball that you submitted.  In either
>     case,
>      >>>     I'd
>      >>>         suggest just trying again:  rebuild and submit.
>      >>>
>      >>>         Duncan Murdoch
>      >>>
>      >>>          >
>      >>>          > The variables are indeed NOT in the code, because
>     they're
>      >>>     only to
>      >>>         be used
>      >>>          > in the examples. In this version I moved my
>     documentation
>      >>>     from
>      >>>         the old (now
>      >>>          > defunct) inlinedocs to ROxygen2. In the previous form, I
>      >>>     had to
>      >>>         define a
>      >>>          > structure in the code including both the function
>     and the
>      >>>     example, so
>      >>>          > technically the code was using the variables. In the new
>      >>>     form, I
>      >>>         simply
>      >>>          > define the examples with the @examples tag (that ends up
>      >>>     in the
>      >>>         .rd file
>      >>>          > within an \examples{} block).
>      >>>          >
>      >>>          > Does anyone have any idea on how I should define data in
>      >>>     the code
>      >>>         to avoid
>      >>>          > this issue? I could simply add the example lines
>     after the
>      >>>     return (so
>      >>>          > they're never reached), but that sounds like a
>     horrible hack.
>      >>>          >
>      >>>          > Just in case it's useful:
>      >>>          > GitHub repository (inside the enveomics.R folder):
>      >>>          > https://github.com/lmrodriguezr/enveomics/
>      >>>          > Full test output:
>      >>>          >
>      >>>
>     https://win-builder.r-project.org/incoming_pretest/enveomics.R_1.5.0_20191026_032029/Windows/00check.log
>      >>>          >
>      >>>          > Thanks!
>      >>>          > Miguel.
>      >>>          >
>      >>>          >
>      >>>          > --
>      >>>          > Luis M. Rodriguez-R, Ph.D.
>      >>>          > [ https://rodriguez-r.com ]
>      >>>          > ---------------------------------
>      >>>          > Research Engineer
>      >>>          > Georgia Institute of Technology
>      >>>          > 311 Ferst Drive, ES&T, Room 3324
>      >>>          > Atlanta, GA 30332, USA
>      >>>          > [ http://enve-omics.gatech.edu/ ]
>      >>>          >
>      >>>          >       [[alternative HTML version deleted]]
>      >>>          >
>      >>>          > ______________________________________________
>      >>>          > R-package-devel using r-project.org
>     <mailto:R-package-devel using r-project.org>
>      >>>     <mailto:R-package-devel using r-project.org
>     <mailto:R-package-devel using r-project.org>>
>      >>>     *MailScanner has detected a possible fraud attempt from
>      >>>     "r-project.org <http://r-project.org>" claiming to be*
>      >>>     <mailto:R-package-devel using r-project.org
>     <mailto:R-package-devel using r-project.org>>
>      >>>     <mailto:R-package-devel using r-project.org
>     <mailto: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 <mailto:R-package-devel using r-project.org>
>      >>     <mailto:R-package-devel using r-project.org
>     <mailto:R-package-devel using r-project.org>> mailing list
>      >> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>      >
>      >     --
>      >     Xavier Robin, PhD
>      >     University of Basel | Swiss Institute of Bioinformatics
>      >     Biozentrum - Klingelbergstrasse 50/70 - 4056 Basel
>      >     t: +41 61 207 18 77 | m: +41 78 865 09 01
>      >     Xavier.Robin using sib.swiss  <mailto:Xavier.Robin using sib.swiss
>     <mailto:Xavier.Robin using sib.swiss>>  -http://www.sib.swiss
>      >
> 
>     ______________________________________________
>     R-package-devel using r-project.org <mailto: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