The RNeXML CRAN package currently has some check warnings, originating from an S4 class name conflict. RNeXML sets the S4 class "tree". A dependency of the package now depends on the cli package, which calls setOldClass() on an S3 "tree" class. This causes two potential issues. One is that RNeXML maybe ends up using cli's class internally, because this is what we see at install time: ** byte-compile and prepare package for lazy loading Found more than one class "tree" in cache; using the first, from namespace 'cli' Also defined by ?RNeXML? The second issue is an error when RNeXML is unloaded: ? unloadNamespace("RNeXML") Error in .mergeMethodsTable(generic, mtable, tt, attach) : trying to get slot "defined" from an object of a basic class ("environment") with no slots This makes R CMD check fail as well. Is cli doing something wrong here? Or is this a bug in base R? Or is it a known limitation? If the latter, would it make sense for the RNeXML installation to fail instead of creating a broken package. (If it is a broken package at all.) Gabor
Hi Gabor, Thanks for reporting this issue. Would you be able to help me reproduce it? I'm guessing this depends on some combination of git checkouts, so it would be helpful to know which. Michael On Tue, Feb 8, 2022 at 6:32 AM G?bor Cs?rdi <csardi.gabor at gmail.com> wrote:> > The RNeXML CRAN package currently has some check warnings, originating > from an S4 class name conflict. > > RNeXML sets the S4 class "tree". A dependency of the package now > depends on the cli package, which calls setOldClass() on an S3 "tree" > class. > > This causes two potential issues. One is that RNeXML maybe ends up > using cli's class internally, because this is what we see at install > time: > > ** byte-compile and prepare package for lazy loading > Found more than one class "tree" in cache; using the first, from namespace 'cli' > Also defined by ?RNeXML? > > The second issue is an error when RNeXML is unloaded: > > ? unloadNamespace("RNeXML") > Error in .mergeMethodsTable(generic, mtable, tt, attach) : > trying to get slot "defined" from an object of a basic class > ("environment") with no slots > > This makes R CMD check fail as well. > > Is cli doing something wrong here? Or is this a bug in base R? Or is > it a known limitation? If the latter, would it make sense for the > RNeXML installation to fail instead of creating a broken package. (If > it is a broken package at all.) > > Gabor > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel-- Michael Lawrence Principal Scientist, Director of Data Science and Statistical Computing Genentech, A Member of the Roche Group Office +1 (650) 225-7760 michafla at gene.com Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube
Hi Michael, you only need the CRAN versions. You probably need a recent version of pillar, to create the name conflict with its dependency: install.packages("pillar") install.packages("cli") install.packages("RNeXML", type = "source") This will already give you: ** byte-compile and prepare package for lazy loading Found more than one class "tree" in cache; using the first, from namespace 'cli' Also defined by ?RNeXML? and then: library(RNeXML) unloadNamespace("RNeXML") Error in .mergeMethodsTable(generic, mtable, tt, attach) : trying to get slot "defined" from an object of a basic class ("environment") with no slots This is macOS arm64, but looking at the CRAN check page, that should not matter. Let me know if this does not work, and the I'll create a Docker container or something more reproducible. Thanks, Gabor On Tue, Feb 8, 2022 at 5:53 PM Michael Lawrence <lawrence.michael at gene.com> wrote:> > Hi Gabor, > > Thanks for reporting this issue. Would you be able to help me > reproduce it? I'm guessing this depends on some combination of git > checkouts, so it would be helpful to know which. > > Michael > > On Tue, Feb 8, 2022 at 6:32 AM G?bor Cs?rdi <csardi.gabor at gmail.com> wrote: > > > > The RNeXML CRAN package currently has some check warnings, originating > > from an S4 class name conflict. > > > > RNeXML sets the S4 class "tree". A dependency of the package now > > depends on the cli package, which calls setOldClass() on an S3 "tree" > > class. > > > > This causes two potential issues. One is that RNeXML maybe ends up > > using cli's class internally, because this is what we see at install > > time: > > > > ** byte-compile and prepare package for lazy loading > > Found more than one class "tree" in cache; using the first, from namespace 'cli' > > Also defined by ?RNeXML? > > > > The second issue is an error when RNeXML is unloaded: > > > > ? unloadNamespace("RNeXML") > > Error in .mergeMethodsTable(generic, mtable, tt, attach) : > > trying to get slot "defined" from an object of a basic class > > ("environment") with no slots > > > > This makes R CMD check fail as well. > > > > Is cli doing something wrong here? Or is this a bug in base R? Or is > > it a known limitation? If the latter, would it make sense for the > > RNeXML installation to fail instead of creating a broken package. (If > > it is a broken package at all.) > > > > Gabor > > > > ______________________________________________ > > R-devel at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > -- > Michael Lawrence > Principal Scientist, Director of Data Science and Statistical Computing > Genentech, A Member of the Roche Group > Office +1 (650) 225-7760 > michafla at gene.com > > Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube