[R-pkg-devel] Strange error from CRAN on package submission

Martin Morgan mtmorg@n@b|oc @end|ng |rom gm@||@com
Thu Nov 12 16:13:29 CET 2020


This seems more like a problem with the CRAN test machine, with the movMF package installed with flexmix available but loaded with flexmix not available, maybe interacting with a caching mechanism used by the methods package to avoid re-computing methods tables? Otherwise how would movMF ever know to create the flexmix class / method?

It seems like this could cause problems for the user if they installed movMV with flexmix available, but removed flexmix. This seems like a subtler variation of 'I installed package A but then removed dependency B and now A doesn't work', which could be a bug in R's remove.packages() but....

I tried to emulate the scenario of installing movMF and then removing flexmix in an interactive session, and then looking for the warning reported below. I was not successful, but the build report with the error is no longer available so I don't know what I'm looking for...

Martin Morgan

On 11/11/20, 4:44 PM, "R-package-devel on behalf of Duncan Murdoch" <r-package-devel-bounces using r-project.org on behalf of murdoch.duncan using gmail.com> wrote:

    Here's what I think is happening.

    In the movMF:::.onLoad function there's a test whether flexmix is 
    installed.  If found, then it is loaded and some methods are set.  (I'm 
    not sure what caused flexmix to be installed:  I didn't intentionally 
    install it, but it ended up in there when I installed enough stuff to 
    check Mercator.)

    In the R-devel --as-cran checks, some checks are run with only strong 
    dependencies of your package visible.  Somehow I think that .onLoad 
    function sees flexmix and loads it, but then some other part of the 
    check can't see it.

    A workaround is to add flexmix to your Imports clause.  This is a strong 
    enough dependency to make it visible, and the error goes away.

    HOWEVER, to me this is pretty clearly an R-devel bug:  you have no 
    control over methods set by packages that you don't even use, so you 
    shouldn't have to change your dependency lists if one of them sets a 
    method that you're using.

    Duncan Murdoch

    On 11/11/2020 3:31 p.m., Kevin R. Coombes wrote:
    > Oh, I forgot to mention explicitly that checking (with --as-cran) on the
    > development version of R on Windows also produces no errors or warnings.
    > 
    > On 11/11/2020 1:39 PM, Kevin R. Coombes wrote:
    >> Hi Duncan,
    >>
    >> I just sent a longer version of this message, but it looks to me like
    >> the underlying issue is the fact that flexmix and Mercator both define
    >> and export "show" methods for their S4 classes.  What confuses me is
    >> why the NAMESPACE of a package that is merely Suggest'ed by something
    >> several layers down the hierarchy should get attached and cause an
    >> issue like this one. (The attached NAMESPACE happens in current
    >> versions of R.)
    >>
    >> Thanks,
    >>    Kevin
    >>
    >> On 11/11/2020 1:07 PM, Duncan Murdoch wrote:
    >>> Okay, I've tried testing on my Mac with R 4.0.3 and R-devel for the
    >>> new one, 4.0.3 for the CRAN version.
    >>>
    >>> I'm not seeing any check error with the CRAN version.  I get an error
    >>> trying to check 0.11.4 from R-forge because I don't have flexmix
    >>> installed.  If I take flexmix out of the Suggests list, it checks
    >>> with no error on 4.0.3, but I get the error you saw on R-devel when
    >>> checked with --as-cran.
    >>>
    >>> I tried debugging this, and narrowed it down a bit.  It happens when
    >>> your package is installed, in particular in the do_install_source()
    >>> function in src/library/tools/R/install.R. But that function runs a
    >>> new R instance, and I didn't get to debugging that.  I'll try again
    >>> later today if nobody else figures it out.
    >>>
    >>> Duncan Murdoch
    >>>
    >>>
    >>>
    >>>
    >>> On 11/11/2020 12:03 p.m., Kevin R. Coombes wrote:
    >>>> Hi Duncan,
    >>>>
    >>>> Oops; I didn't realize I had forgotten to push updates to the OOMPA web
    >>>> site.
    >>>>
    >>>> The code for Mercator is contained as part of the Thresher project in
    >>>> the subversion repository on R-Forge.
    >>>> (https://r-forge.r-project.org/projects/thresher/) It's under
    >>>> pkg/Mercator below that URL
    >>>>
    >>>> Thanks,
    >>>>      Kevin
    >>>>
    >>>> On 11/11/2020 11:30 AM, Duncan Murdoch wrote:
    >>>>> Uwe suggested you suggest flexmix, but I see below you already tried
    >>>>> that.
    >>>>>
    >>>>> I'd like to take a look, but I can't find your package.  The existing
    >>>>> version on CRAN gives the URL as http://oompa.r-forge.r-project.org/,
    >>>>> but I can't see it mentioned there.
    >>>>>
    >>>>> Duncan Murdoch
    >>>>>
    >>>>> On 11/11/2020 8:44 a.m., Kevin R. Coombes wrote:
    >>>>>> Hi,
    >>>>>>
    >>>>>> I am trying to figure out how to fix warnings from two of the CRAN
    >>>>>> machines on the submission of an update to a package. The only
    >>>>>> change to
    >>>>>> my package was to add a "show" method to one of the S4 classes, which
    >>>>>> was requested by a reviewer of the paper we submitted. The
    >>>>>> inability to
    >>>>>> get this updated package into CRAN  is the only thing holding up the
    >>>>>> revision (and probable acceptance) of the manuscript.
    >>>>>>
    >>>>>> The same "warnings"s were found in the previous version. The
    >>>>>> package is
    >>>>>> called Mercator, and the CRAN check results from the  last version
    >>>>>> are here:
    >>>>>> https://cran.r-project.org/web/checks/check_results_Mercator.html
    >>>>>>
    >>>>>> I get warnings from the two fedora machine instances (clang and gcc).
    >>>>>> They both report
    >>>>>>
    >>>>>>> Check: whether package can be installed.
    >>>>>>> Result: WARN
    >>>>>>>         Found the following significant  warnings:
    >>>>>>>         Warning: namespace ‘flexmix’ is  not available and has been
    >>>>>>> replaced
    >>>>>>     >
    >>>>>>     > Check: data for non-ASCII characters
    >>>>>>> Result: WARN
    >>>>>>>          Warning: namespace 'flexmix'  is not available and has been
    >>>>>>> replaced
    >>>>>>>          by .GlobalEnv when processing  object '<unknown>'
    >>>>>>
    >>>>>> The relationships in the DESCRIPTION files are:
    >>>>>>
    >>>>>> 1. Mercator depends on Thresher
    >>>>>> 2. Thresher imports moVMF
    >>>>>> 3. moMVF suggests flexmix
    >>>>>>
    >>>>>> On my Windows machine, the package builds and installs with no
    >>>>>> errors or
    >>>>>> warnings even if flexmix is not available (which I believe to be the
    >>>>>> correct behavior). On R-Forge, both the Windows and LINUX versions
    >>>>>> build
    >>>>>> and install with no errors or warnings. On R-Hub, tested on multiple
    >>>>>> LINUX versions, the package builds and installs with no errors or
    >>>>>> warnings.
    >>>>>>
    >>>>>> And flexmix is still clearly available from CRAN:
    >>>>>> https://cran.r-project.org/web/packages/flexmix/index.html
    >>>>>>
    >>>>>> In the latest attempt to get things to work, I added
    >>>>>>       Suggests: flexmix
    >>>>>> into the DESCRIPTION file for Mercator, but this didn't help fix the
    >>>>>> problem on CRAN.
    >>>>>>
    >>>>>> Is there anything I can do to fix this problem (other than moan
    >>>>>> here on
    >>>>>> this list and hope that CRAN can just install flexmix on those
    >>>>>> machines)?
    >>>>>>
    >>>>>> Thanks in advance for your help,
    >>>>>>       Kevin
    >>>>>>
    >>>>>>       [[alternative HTML version deleted]]
    >>>>>>
    >>>>>> ______________________________________________
    >>>>>> 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