-
Notifications
You must be signed in to change notification settings - Fork 246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
type-parameterized IntDisjointSets #599
type-parameterized IntDisjointSets #599
Conversation
Codecov Report
@@ Coverage Diff @@
## master #599 +/- ##
==========================================
+ Coverage 95.03% 95.04% +<.01%
==========================================
Files 33 33
Lines 2820 2825 +5
==========================================
+ Hits 2680 2685 +5
Misses 140 140
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One slight change is required. rest of it, LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- One small change required, because of Update disjoint_set.jl #600. Make similar changes wherever you notice
find_root
, both insrc
andtest
. - One slight change in tests due to the standard followed in
DataStructures.jl
is required. I have done it in one place. Please do similar changes.
I think this PR is good to go after that.
@test num_groups(s) == T(10) | ||
@test num_groups(s2) == T(10) | ||
|
||
for i = 1:10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for i = 1:10 | |
for i in 1:10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in this codebase, the standard way is to use in
instead of =
for looping over a range. Please correct this too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK - but I didn't change this from the original:
for i = 1:10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cool .. leave that .. i can take care of it in a separate PR, since it's out of the scope for this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, since we're changing the signature of find_root
, perhaps we should
@deprecate find_root find_root!
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure! I see you have just committed that change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yup. I think everything's ready to go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cool. let me take a quick glance.
Co-Authored-By: Koustav Chowdhury <kc99.kol@gmail.com>
Co-Authored-By: Koustav Chowdhury <kc99.kol@gmail.com>
Co-Authored-By: Koustav Chowdhury <kc99.kol@gmail.com>
Co-Authored-By: Koustav Chowdhury <kc99.kol@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work. Thanks for the contribution @sbromberger !! 😃
Would you please tag a new version after (if) this gets merged? We have a PR that depends on it. Thank you. ❤️ |
@sbromberger, I have released DataStructures v0.17.11. Hope you can now continue your PR without any further hiccups. 🚀 |
Thanks for all your help, @eulerkochy !! |
I have a minor complaint. Deprecating |
@mlubin sorry for that. I should list out the reason for updating |
@mlubin we're struggling with this in LightGraphs as well. This is arguably a bugfix - a mutating function did not follow convention - but without the deprecation the bugfix would be a breaking change. With a passthrough nobody would fix it and it would require another release to introduce a deprecation. Furthermore, I justified it by realizing that below v1.0.0 SemVer rules don't apply. :) |
I understand the reasons for the change, but I think it should have a triggered a 0.18 release.
We can update the registry to set JuMP to depend on 0.17.10, but that will inevitably lead to users having version conflicts with other packages that might need a later release (i.e., any packages that have been updated to use
That's true, but the Julia package manager acts as if the SemVer rules for patch releases do apply when it resolves compatible versions. It would be a pretty bad user experience in terms of version conflicts if we had to fix JuMP's dependencies to exact patch releases out of fear that new patch releases might have API changes. A deprecation is an API change. |
This true. We should think about this longer term and make a policy around this. Hopefully soon we will be up to 1.0 and this can mostly stop.
A deprecation per semver is a nonbreaking change thus has to be a patch release in 0.x.y. One thing I do which basically solves this is to always stay @mlubin would you be able to open an issue to discuss this rather than continuing via comment on this PR? |
Should we revert the deprecation and make it a pass-through (i.e., |
@oxinabox Do you mean an issue on DataStructures.jl or a broader discussion somewhere? |
FWIW, I have observed the following impact on some of my work with some JuMP models. DataStructures v0.17.10 ⚲ DataStructures v0.17.11 ⚲ With v0.17.11 I am seeing the deprecation warning as Miles mentioned. I observed that running julia with DataStructures v0.17.11 ⚲ and |
Yeah, depwarns slow things down. I think we should revert the depwarn and make a pass through |
Ref #603 |
This allows the creation of type-parameterized
IntDisjointSets
, and keeps the default asInt
for compatibility. (It also explicitly creates anIntDisjointSets{Int}
forDisjointSets
, which does not further type-specialize.)