[Rd] depending on orphaned packages?

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Sun Sep 29 22:22:44 CEST 2019

On 2019-09-25 3:26 a.m., Martin Maechler wrote:
>>>>>> Ben Bolker 
>>>>>>     on Tue, 24 Sep 2019 20:09:55 -0400 writes:
>     > SuppDists is orphaned on CRAN (and has been since 2013).
>     > https://cran.r-project.org/web/checks/check_results_.html
>     > Oddly, the simulate method for the inverse.gaussian family
>     > [inverse.gaussian()$simulate] depends (in a loose sense) on SuppDists
>     > (it fails if the SuppDists namespace is not available:
>     > if (!requireNamespace("SuppDists", quietly = TRUE))
>     > stop("need CRAN package 'SuppDists' for simulation from the
>     > 'inverse.gaussian' family")
>     > The statmod package also implements inverse gaussian d/p/q/r functions
>     > <https://journal.r-project.org/archive/2016-1/giner-smyth.pdf>.  It is
>     > lightweight (depends on R >= 3.0.0, imports only base packages [stats
>     > and graphics]) and has been around for a long time (archived versions on
>     > CRAN go back to 2003).
>     > Would it make sense to replace the call to SuppDists::rinvGauss with a
>     > corresponding call to statmod::rinvgauss ?  Would a patch be considered?
>     > Ben Bolker
> I'd say "yes" & "yes".
> "Base" code weekly depending on CRAN packages (apart from
> formally 'Recommended' ones)  is somewhat sub-optimal in any
> case, ((but possibly still the best thing, given reality
>         [maintenance efforts, copyrights, ...])),
> but your proposal seems a  "uniformly not worse"  change
> ((and I have very much liked delving into parts of Gordon
>   Smyth's textbook on GLMs as a really nice mixture / in-between
>   of rigorous math and applied stats))

   I did actually think of a reason *not* to do this.

   The resulting random deviates generated by statmod::rinvgauss aren't
exactly the same as those from SuppDists::rinvGauss (same algorithm, but
I guess they use sufficiently different internal machinery), so this
could break exact backward compatibility for any code that uses
simulate() for inverse-Gaussian models.  Still might be worth doing, but
now the change is *not* "uniformly not worse".

An alternative (which would remove the dependency on a CRAN package)
would be to pull the code of statmod::rinvgauss into R (which would be
allowed - statmod is GPL 2/3 - but of course it would be polite to ask).
The downside to this solution would be adding the maintenance burden of
this code ...

> Martin Maechler
> ETH Zurich and R Core

More information about the R-devel mailing list