-
Notifications
You must be signed in to change notification settings - Fork 28
Prepare release 0.14 #148
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
Prepare release 0.14 #148
Conversation
michaelkirk
left a comment
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.
We just had a breaking release 2 weeks ago. Maybe we should cool it for a second. Is there anything else breaking on the horizon?
|
I agree it's unfortunate. Speaking for myself, I'd really like to get a release of geoarrow on crates.io (the last one was like 9 months ago). The core geoarrow crates depend on If I publish a new So for me the core question is whether we want to release a new |
|
If geo-traits is going to have breaking releases more frequently than its client libraries (e.g. wkt), maybe an approach like we take with the geo-types+rstar integration would be helpful to avoid disruptive churn across the ecosystem. Traveling back in time: basically, leave the old geo-traits (v0.2) integration in place in wkt, so that we don't break anything, and then add a new geo-traits-0_3 feature with the new geo-traits-v0.3 integration. And then when we eventually do have a breaking release in wkt, you can also update the primary geo-traits integration, and remove the version gated feature flags. |
Well hopefully not; I want to think it's stable, but it's still young 😄
I was looking at the |
I'd guess we wouldn't switch, but rather that we'd have potentially more than one integration. Also, is there a reason that geo-traits is required, rather than optional? |
Can you give a concrete example of how this would work? I tried to explore this in #149 , but if the dependencies are non-optional I'm not sure how this works.
It could be optional on the read side, but it's not-optional on the write side, where we always use write APIs that are based on geo-traits: Lines 94 to 98 in dc0af7f
|
Ah! I forgot that the inner write logic had a hard dependency on geo-traits, so it seems like making it optional is not possible. That's fine, I just didn't remember why.
Here's a start: It doesn't currently compile because I haven't implemented it for every geometry variant (which is required for the base GeometryTrait implementation), but I think it should work. If we were to go that route, I think I'd first consolidate the geo_trait impl's into a single module, rather than having them scattered across the code base. Unfortunately, I don't have more time to spend on this. If you want to do the optional implementation, that'd be nice. Out of practicality, we could also just consider this a learning experience, and try again next time we're about to commit a breaking change right after a release. |
Sometimes it's hard to know when other breaking changes will come along. It's not clear if there was any way to know when we were making the wkt 0.13 release that we'd have another geo-traits release soon.
Given that the writing is non-optional, is it worth making the read side optional?
Ok, so the main change there is that geo-traits v0.2 is left as the name |
I think so. I think to avoid breaking v0.2, you'd need the v0.3 integration to be name spaced somewhere else so people could opt into it. |
michaelkirk
left a comment
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.
I'm OK to release this and have it be another breaking release, though I'd prefer that in the future we try harder before merging breaking changes so close to a previous breaking release.
|
Agreed, we should try harder to coalesce breaking changes in the future. Hopefully this will be a one-off. |
|
Ugh I'm dumb 😭 Line 4 in 7330c45
Another PR incoming |
|
Coalescing is good. Strategies to achieve it are:
Another strategy is to put more effort into making the changes opt in and non-breaking. |
CHANGES.mdif knowledge of this change could be valuable to users.cc @Kontinuation