Firionus / FastRunningMedian.jl

Efficient running median for Julia
MIT License
11 stars 1 forks source link

Relax DataStructures compat #17

Closed alex-s-gardner closed 2 years ago

alex-s-gardner commented 2 years ago

This reduce conflicts with other packages as DataStructures = "0.18.6" was likely overly specific

Firionus commented 2 years ago

Hey mate, thanks for putting in a PR. It’s great to see people are finding a use for this algorithm 😄 (even at NASA to study the cryosphere - so cool ❄️ 😂).

Back to the topic: Unfortunately, we require the fix from https://github.com/JuliaCollections/DataStructures.jl/pull/680 that first shipped in version 0.18.6. Without it, certain conditions (which result in popping from the end of a heap) will cause a BoundsError, indicating there might or might not be some strange things going on in memory without that fix. The current compat entry already expresses that requirement up to the next breaking version. Therefore, this is a close for me.

For your case, I see two way forwards:

  1. fork an older version of DataStructures and backport the mentioned fix, then use your fork of FastRunningMedian (be sure to run the tests with that older dependency), or preferrably,
  2. open an issue at the packages that depend on an older version of DataStructures to update to the newer version 0.18. It is basic maintenance that would be required anyway. (I realize it's not that simple in many cases, but it's still the right thing to do)

If I can help you in any other way, feel free to ask ☺️

alex-s-gardner commented 1 year ago

OK, thanks for the clarification and great library