Parked on feature/glmmtmb-mixed while the architecture settles. Reinstate with git revert ebb3d14.
Why it was parked
Mixed negative binomial and mixed zero-inflated Poisson were the only two paths needing {glmmTMB}, which carries 62 recursive dependencies — an order of magnitude more than anything else in Suggests — and pulls {lme4} in anyway.
Its build must match {TMB}. The pair already fell out of step locally:
glmmTMB was built with TMB package version 1.9.21
Current TMB package version is 1.9.25
Please re-install glmmTMB from source
So both paths went untested, and their skip_if_not_installed() guards never fired because the package was installed — just not usable.
Each combination now aborts and names the alternative. The standard zip path through {pscl} and the standard negbin path through {MASS} are unaffected and still tested.
What it needs before coming back
Order
Last of the five. It is the least entangled with the engine — two branches in fit_qap_model() — so it can come back whenever the dependency question is settled, and it blocks nothing.
Parked on
feature/glmmtmb-mixedwhile the architecture settles. Reinstate withgit revert ebb3d14.Why it was parked
Mixed negative binomial and mixed zero-inflated Poisson were the only two paths needing
{glmmTMB}, which carries 62 recursive dependencies — an order of magnitude more than anything else inSuggests— and pulls{lme4}in anyway.Its build must match
{TMB}. The pair already fell out of step locally:So both paths went untested, and their
skip_if_not_installed()guards never fired because the package was installed — just not usable.Each combination now aborts and names the alternative. The standard
zippath through{pscl}and the standardnegbinpath through{MASS}are unaffected and still tested.What it needs before coming back
glmmTMB/TMBpair in CI, and confirmation that the tests actually run rather than skip.glmmTMB::glmmTMB()fit on the same dyad-level data, as the other estimators have.{lme4}alone covers gaussian, binomial and poisson random intercepts.Order
Last of the five. It is the least entangled with the engine — two branches in
fit_qap_model()— so it can come back whenever the dependency question is settled, and it blocks nothing.