[R-pkg-devel] CRAN incoming checks fail due to non-staged installation

Gábor Csárdi c@@rd|@g@bor @end|ng |rom gm@||@com
Tue Mar 26 22:55:14 CET 2019


OK, here is what I think is going on.

There is a bug in the check code, that creates a false positive when
the package installation is performed with `--merge-multiarch`. In
this case the x64 architecture uses a non-staged install,
deliberately, but the check code still picks this up and reports it as
a NOTE.

Reproducing it is not easy, because of several reasons:
- win-builder uses package-specific configuration, in this case your
package is listed in
https://svn.r-project.org/R-dev-web/trunk/CRAN/QA/Uwe/make/config/MergeMultiarch,
so `--merge-multiarch` is added automatically.
- R CMD check cannot pass --merge-multiarch to R CMD INSTALL because
--merge-multiarch only works on tarballs, and R CMD check runs INSTALL
on a directory.
- However, R CMD check has an undocumented --install=... option, which
can be used to pick up the installation output from a certain file. I
am pretty sure that win-builder uses this. I.e. it calls R CMD INSTALL
first, putting the output to a file, and then calls R CMD check with
the --install= option pointing to that file as the install output.

In summary, I think this an R CMD check bug, added in this commit:
https://github.com/wch/r-source/commit/44e8faeb1ed30a7603e79988639da7e4e358d497

It can be fixed easily by using a slightly different message for the
--merge-multiarch case, or maybe even by not specifying
--no-staged-install here:
https://github.com/wch/r-source/blob/be469e86046389a0213f22e8b5c7b3227558bb01/src/library/tools/R/install.R#L1913
and here:
https://github.com/wch/r-source/blob/be469e86046389a0213f22e8b5c7b3227558bb01/src/library/tools/R/install.R#L1938
because --libs-only implies --no-staged-install anyway. I am not
entirely certain, but Tomas and/or Prof Ripley will know for sure.

If you want submit your package before the bug is fixed, I suggest you
explain this directly to CRAN when you submit your package.

Best,
Gabor

On Tue, Mar 26, 2019 at 3:18 PM David Kepplinger
<david.kepplinger using gmail.com> wrote:
>
> Dear Gábor,
>
> Oddly, it does emit a NOTE due to the non-staged install, as can be seen at https://win-builder.r-project.org/86i67mqTD9YY
>
> The package source can be found at https://github.com/dakep/pense-rpkg/tree/release/1.2.2
>
> Thanks for your help,
> David
>
>
> On Tue, Mar 26, 2019, 3:28 AM Gábor Csárdi, <csardi.gabor using gmail.com> wrote:
>>
>> Hi David,
>>
>> if you only see
>>
>> install for i386
>> * installing *source* package 'pense' ...
>> ** using staged installation
>> [....]
>> install for x64
>> * installing *source* package 'pense' ...
>> ** using non-staged installation
>> [...]
>>
>> then everything is fine, there is no NOTE here, AFAICT.
>>
>> If you see a NOTE about this, please post 1) a link to your package,
>> and 2) a link to the win-builder output.
>>
>> Thanks,
>> Gabor
>>
>> On Tue, Mar 26, 2019 at 12:13 AM David Kepplinger
>> <david.kepplinger using gmail.com> wrote:
>> >
>> > Dear Community,
>> >
>> > The issue persists and I don't know if it is something I can fix or if it's
>> > a false positive from the CRAN incoming checks. As a result, the package is
>> > archived as the old version has other issues with the new R version.
>> >
>> > Does someone have an idea how I can fix the issue? I have asked the CRAN
>> > team last week to flag the issue as a false positive, but I haven't heard
>> > back so I assume it's something I have to fix.
>> >
>> > Thanks,
>> > David
>> >
>> > On Wed, Mar 13, 2019 at 3:34 PM David Kepplinger <david.kepplinger using gmail.com>
>> > wrote:
>> >
>> > > Thank you, Max, for the clarification.
>> > > I have added the option "StagedInstall: yes" to the DESCRIPTION file, but
>> > > it doesn't seem to be forcing a staged installation for x64 on Windows. I
>> > > get the same NOTE now from winbuilder, but with more explanation which
>> > > could help isolate the problem:
>> > >
>> > > install for i386
>> > > * installing *source* package 'pense' ...
>> > > ** using staged installation
>> > > [...]
>> > > install for x64
>> > > * installing *source* package 'pense' ...
>> > > not using staged install with --libs-only
>> > > ** using non-staged installation
>> > > [...]
>> > >
>> > >
>> > > Best,
>> > > David
>> > >
>> > > On Wed, Mar 13, 2019 at 1:21 PM Maxime Turgeon <
>> > > maxime.turgeon using mail.mcgill.ca> wrote:
>> > >
>> > >> Hi David,
>> > >>
>> > >> Non-staged installation is something new in R-devel:
>> > >> https://developer.r-project.org/Blog/public/2019/02/14/staged-install/index.html
>> > >>
>> > >>
>> > >> Package maintainers can opt out of it (through DESCRIPTION), and I'm
>> > >> assuming CRAN wants a quick way to know if that was the case when
>> > >> diagnosing a submission.
>> > >>
>> > >> To resolutely opt *in* (which will eventually be the default), you could
>> > >> try adding "StagedInstall: yes" to your DESCRIPTION file.
>> > >>
>> > >> Of course, one question still remains: why was the behaviour different
>> > >> for the two architectures.
>> > >>
>> > >> Max
>> > >> ------------------------------
>> > >> *From:* R-package-devel <r-package-devel-bounces using r-project.org> on
>> > >> behalf of David Kepplinger <david.kepplinger using gmail.com>
>> > >> *Sent:* March 13, 2019 3:39 PM
>> > >> *To:* r-package-devel using r-project.org
>> > >> *Subject:* [R-pkg-devel] CRAN incoming checks fail due to non-staged
>> > >> installation
>> > >>
>> > >> Dear Community,
>> > >>
>> > >> I am trying to update the pense package on CRAN to fix `autoreconf`
>> > >> problems, but the incoming checks fail for Windows (r-devel) with 2 NOTEs.
>> > >>
>> > >> The first NOTE is a HTTP 403 for a http://doi.org URL which I already
>> > >> know
>> > >> about and can not change, but the other NOTE is more obscure to me. It
>> > >> says
>> > >>
>> > >> * checking whether package 'pense' can be installed ... NOTE
>> > >> Found the following notes/warnings:
>> > >>   Non-staged installation was used
>> > >>
>> > >>
>> > >> and when I check the install log, it says
>> > >>
>> > >> install for i386
>> > >> * installing *source* package 'pense' ...
>> > >> ** using staged installation
>> > >> [....]
>> > >> install for x64
>> > >> * installing *source* package 'pense' ...
>> > >> ** using non-staged installation
>> > >> [...]
>> > >>
>> > >>
>> > >> Is this a false positive or is there something I can do to force using a
>> > >> staged installation for both architectures on Windows?
>> > >>
>> > >> Best,
>> > >> David
>> > >>
>> > >>         [[alternative HTML version deleted]]
>> > >>
>> > >> ______________________________________________
>> > >> R-package-devel using r-project.org mailing list
>> > >> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>> > >>
>> > >
>> >
>> >         [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > 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