singmann / afex

Analysis of Factorial EXperiments (R package)
119 stars 32 forks source link

glmmTMB updates break some things #128

Closed mebrooks closed 1 month ago

mebrooks commented 4 months ago

Hi, we did some fairly large updates to glmmTMB recently, so I'm checking all the reverse dependencies. I got this output from afex

bbolker commented 4 months ago

I poked around with this a little bit, and it seems that it would be sufficient to run up2date() on the stored glmmTMB object (or, alternately, to rebuild the stored .rda file with the devel version of glmmTMB).

library(glmmTMB)
library(afex)
library(ggplot2)

load(system.file("extdata/", "tmb_example_fit.rda", package = "afex"))
try(afex_plot(tmb, "spp")) ## error
tmb <- up2date(tmb)
afex_plot(tmb, "spp") ## works

## full example
cowplot::plot_grid(
  afex_plot(tmb, "spp"),
  afex_plot(tmb, "spp", data_geom = geom_violin),
  afex_plot(tmb, "spp", id = "site", data = Salamanders), 
  labels = "AUTO", nrow = 1
)
singmann commented 3 months ago

I have now updated the files. However, they only work with the new version of glmmTMB and not with the current CRAN version (according to my checks). So once you upload to CRAN, I can then push my new version as well. Unless tyou have another suggestion.

bbolker commented 3 months ago

I think we're in less of a rush to submit a new version to CRAN than we thought we were (see the tail end of this issue).

Instead of updating stored files and making them potential backward-incompatible with older glmmTMB versions, in principle it should be possible by using up2date() when you read in stored versions of fitted models from older glmmTMB versions, as we do with our gt_load utility (although this has certainly not been exhaustively tested).

In any case, good to know that this on track for whenever we do end up submitting the new version. Thanks.

singmann commented 3 months ago

I have now essentially reverted to the previous glmmTMB model object (i.e., one created through the current CRAN version) and added a call to up2date() when loading (I also tried gt_load() but that somehow didn't work).

Thus, according to my checks, it should now work with both glmmTMB versions, current CRAN and development from GitHub. The release candidate is development\afex_1.4-1.tar.gz. If you have the time, maybe you can check as well against the development version, otherwise I will just push to CRAN.

bbolker commented 3 months ago

:tada: Passes R CMD check here with development version of glmmTMB.

singmann commented 1 month ago

Sorry for the insanely long delay (there was a weird issue with rmarkdown I couldn't solve until now), but this version is on CRAN now.

mebrooks commented 3 weeks ago

I don't understand why, but I'm still seeing this error when I do automated reverse dependenciy checks. Alternatively, I installed afex from CRAN and was able to knit the Rmd file just fine on my computer. So I guess this is a false positive, right?

P.S. It looks like up2date is used in the CRAN version.

singmann commented 3 weeks ago

Hmm, I also cannot explain this as it should be using up2date(). Can it be an old afex version still in the checking pipeline?

mebrooks commented 3 weeks ago

Yes, it is an old version (1.3-1)! I don't know why revdepcheck would do that. Sorry for wasting your time.

singmann commented 3 weeks ago

No worries!