Distributions.jl icon indicating copy to clipboard operation
Distributions.jl copied to clipboard

**BREAKING** Fix loss of structure in cov() and invcov() of AbstractMvNormal subtypes

Open st-- opened this issue 4 years ago • 4 comments

Resolves #572. Distributions.jl has a lower bound of PDMats=0.10, in which PDMat and PDiagMat are subtypes of AbstractMatrix, so no need to call Matrix() anymore.

What, if anything, do I still need to add to this PR to get it merged ?

st-- avatar Jul 28 '21 12:07 st--

Hi, is there anything that would hold back merging this PR ? @devmotion ?

st-- avatar Aug 23 '21 11:08 st--

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7e232ca) 86.00% compared to head (f919388) 83.88%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1373      +/-   ##
==========================================
- Coverage   86.00%   83.88%   -2.13%     
==========================================
  Files         144      144              
  Lines        8646     7004    -1642     
==========================================
- Hits         7436     5875    -1561     
+ Misses       1210     1129      -81     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov-commenter avatar Aug 23 '21 11:08 codecov-commenter

IMO this is a breaking change and therefore we should make a breaking release. Since people dislike breaking releases of Distributions (https://github.com/JuliaStats/Distributions.jl/issues/1317), we should check if there are any other breaking changes that could be included in Distributions 0.26.

devmotion avatar Aug 23 '21 12:08 devmotion

I wonder if it is possible to check if/how breaking this would be for downstream packages. Is there actually any package that relies on cov returning a Matrix? I would like to merge this PR but it's blocked since it's technically breaking. In my experience though (also with e.g. SpecialFunctions 2) for such central packages such a tiny breaking change means putting a lot of work on downstream developers and requiring manual compat updates in many packages, but if the breaking change only affects very few packages it might not be worth it and easier to make a non-breaking release and fix a handful of packages instead of > 200.

devmotion avatar Feb 02 '22 14:02 devmotion