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

Kevin R. Coombes kev|n@r@coombe@ @end|ng |rom gm@||@com
Wed Nov 11 19:34:54 CET 2020


HI Uwe,

That might be the key observation. The change to Mercator in this 
package was to add a "show" method to an S4 class. In its NAMESPACE, the 
flexmix package also exports a "show" method.

Both "flexmix" and "Mercator" have an
   import("methods")
directive in their NAMESPACE files, which is where the base method for 
"show" comes from. Also, if you just type show at the command prompt to 
see the definition, you get the parenthetical note that
"(This generic function excludes non-simple inheritance' see ?setIs.)"
I don't completely understand what this parenthetical remark  means, but 
I have a suspicion that it is highly relevant to my problem.

If I run
   library("Mercator")
   showMethods("show")
on a system where flexmix is installed, then the "show" method for 
flexmix (and related objects) is listed, because the flexmix NAMESPACE 
has been attached. If I run the same code on an R system where flexmix 
is not installed, then, of course, neither the NAMESPACE nor the method 
is available.

I suspect (but am by no means certain) that the combination of that 
parenthetical remark above and the existence of the "show" method in the 
suggested package is why I am getting errors on some systems.

But I don't really understand why. My package doesn't need the flexmix 
version of show. And (as Uwe said in an earlier comment), I thought that 
"Suggests" isn't supposed to be inherited. I don't want the flexmix 
NAMESPACE attached, since nothing in my package nor in the packages I 
directly want (Thresher by "Depends" and then moVMF by "Imports") 
actually requires it.

Why does the flexmix NAMESPACE get attached if some other package down 
the line merely suggests it? Is that supposed to happen? To me, it feels 
like a bug in the sense that it surprises the user (i.e., the package 
developer). And I guess is potentially a bug for the ultimate user of 
the package, since it adds a NAMESPACE that was not specifically 
requested by the top level package being loaded.

In any event, what's the best advice now on how to proceed?

Thanks again,
   Kevin

On 11/11/2020 11:34 AM, Uwe Ligges wrote:
> Next guess is that you need more, because you may have an object that 
> needs the flexmix, so likely something S4 related? I can take a closer 
> look.
>
> Best,
> Uwe Ligges
>
>
>
>
>
> On 11.11.2020 17:30, 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