-
Notifications
You must be signed in to change notification settings - Fork 247
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
Maturing out the package (Path to DataStructures.jl v1.0) #479
Comments
People keep asking when will DataStructures 1.0 come out. I will post a list of files at the bottom of this post. How to audit a file to check if 1.0 ready
All these things are things that have changed during the life-time of this package. List of files that need to be checked(Checking each will also require checking the top-level file for relevant exports)
Many of these should be easy, because they have kind of already been done. Higher level process:0.19 will be the last release before 1.0. We will stick to making patch releases on 0.18 with deprecations while we can. Once @eulerkochy's GSOC work is complete we will not accept any new data structures until after 1.0 released. If anyone want to help out, please feel strongly encouraged to do so. |
How about |
I think this suggests we should make a call on which side this falls: #296 |
I was looking over the Queue method per JuliaCollections#479 and while I didn't find any issues I noticed that during printing at the REPL the backing Deque is printed inside. Decided to try to write a small show method to hide the backing type to pretty it up.
Could anyone explain in more detail the above-mentioned recommendation regarding the |
Base defines
and it returns the collection.
yes, it doesn't match the description of the Base function.
Yeah, so in that case we can't deprecate it for |
Here is a more serious conflict with |
Maybe deprecate |
yeah this, sounds right. |
Doesn't this approach for deprecating With regard to renaming |
yes, that is what they get for skipping versions. But we will write release notes etc.
Lets split this off to another issue or a PR and we can think about our options. |
OK. I am currently working on a major overhaul of the sorted containers to address a number of open issues at once. I will include these new names in my forthcoming PR; and then you or another reviewer can comment on them. |
With regard to attaching proper meanings to https://discourse.julialang.org/t/taking-push-and-pop-seriously/34326 He proposed a more principled way to implement them in Base, but, as far as I can tell, did not get any traction for this proposal. Presumably this is because it is now too late to make changes to Base. If we try to follow Base conventions in the DataStructures package, then we will end up with the same muddled semantics. I'd also like to point out open issue #403 which is basically a request for clearer semantics for these functions. |
One thing I've found is that sometimes I would like to use special ordering that I do not want to define with |
This is possible-- the sorted containers are parameterized by an order function that you can customize. Please see the documentation for an example in which strings are ordered by case-insensitive comparison. |
I don't understand why you're setting such a high bar on 1.0, which has caused this issue to stay open for five years. Lots of packages depend on DataStructures.jl right now, and by using pre-1.0 version numbers means every non-bugfix released is treated as "breaking" by the package system whether or not it is backwards compatible. This is painful for downstream developers as well as users. Version numbers are cheap. Can you just make the next minor release 1.0? If you ever want a breaking change you can just mark the package as 2.0 in the future. |
When this was open @ChrisRackauckas had gotten made at us for releasing 0.18 of DataStructures. The current But it would mean a lot of packages would need to go and update. |
You went from v0.12 to v0.18 in the span of 2 years (some of those shouldn't've been marked as breaking probably?), and now this one is 5 years in the making. There's a middle ground. |
What do we need to do before we would be happy to tag DataStructures.jl v1.0?
I mean, we are one of the most common dependencies in the package ecosystem,
and julia 1.0 is out.
My thoughts;
It hurts people when we break things, and while we are good at deprecating,
getting on the the "strict" side of semver is something we need to do for the sake of the ecosystem
The text was updated successfully, but these errors were encountered: