Conversation
|
@imincik, thanks for the contribution! I'm not sure how much to trust kikit's unit tests here. Shapely 2.0 is a big release that documents a number of breaking changes. I unfortunately don't know enough about kikit to know how to exercise any of its interactions with shapely. Are you a kikit user? Are you able to confirm that things still work after this change? Perhaps most importantly, what's the purpose of this change? Is the old version of shapely causing a maintenance burden I'm not familiar with? Without more context, it doesn't seem worth the risk to me, especially as we expect all this to disappear someday when upstream drops shapely entirely. |
|
I am not a kikit user, but I am one of the shapely package maintainers. I don't think that keeping some random, not maintained copy of dependency (shapely 1.8.4 is not even the latest 1.8.x version) inside of a package is a good practice. If you are really sure that we can't trust kikit's tests, maybe the better solution is to package shapely 1.8.5 as part of shapely package. Then you can just use it and it will be maintained together with the latest version. I can do that for you if you agree. In this way it can be used by others as well. |
|
I just tried to run and it didn't complain. I suggest to implement nix package tests using commands like this. If we are not sure about upstream tests quality, then nix package test make a sense even more. |
That's promising! (And I agree, we should do some investigation into how comprehensive upstream tests are, and if they're not, we should either contribute tests upstream, or add tests to our derivation.) That said, I'm afraid I still get can't comfortable with upgrading to shapely 2.0+ without understanding the reason for this commit. I can't tell if this upper bound was added out of an abundance of caution, or because something legitimately broke. Furthermore, I wouldn't really want to bother upstream with questions like this, as they clearly aren't interested in spending any time on shapely.
I prefer this. In fact, I'm not even sure why we packaged 1.8.4 instead of 1.8.5. Perhaps because 1.8.5 was never packaged by nixpkgs (it looks like we jumped from 1.8.4 to 2.0.0 here). Perhaps @matusf remembers? |
|
Hi, sorry for the late response. I don't feel confident about upgrading a major version of a dependency, especially when the upstream project has constraints on the version. I also don't think we can rely solely on the unit tests, particularly in a dynamic language like Python. This suggestion should instead be offered to the developers of Kikit (as @jfly mentioned, we've already done that, and they plan to stop using Shapely). Therefore, I suggest we stick with the 1.x.x version. Regarding the tests, since I'm not a Kikit user, I don't feel confident in creating thorough tests for Kikit. I also believe they should be maintained by the upstream project rather than here. For instance, a new version of Kikit might break the tests, but that could be the desired behavior. It would be challenging to differentiate intentional changes in behavior from potential bugs.
Yes, as you mentioned, version 1.8.5 was never packaged by nixpkgs. We selected the latest version in history that satisfied the constraints.
Yes, if we decide to upgrade the version of Shapely, I'd prefer to move from 1.8.4 to the 1.8.5 (latest before v2). |
|
I understand what you are saying. I was just about to create frozen I just tried to build kikit's copy of Shapely with latest GEOS PR: It means that if we want to keep kikit on functional shapely version we need to keep shapely 1.8.x along with GEOS 3.11.x . |
|
Ah, darn. Now I'm starting to see how keeping this old version of shapely can evolve into a maintenence headache for other stuff in nixpkgs. Let me know if you'd like some help introducing a pinned geos as well. I also think that if this turns into a third thing we need to pin just to keep kikit happy, I could see us pushing back upstream and saying this package is at risk of getting dropped/being marked broken in nixpkgs. Maybe that'll encourage them to upgrade geometry engines... 🤞 |
|
Shapely is solved as part of #268130 . |
Description of changes
Please consider to use latest shapely version (currently 2.0.2) instead of
obsolete, custom built version 1.8.4.
I am aware of upstream plans to move away from shapely (https://github.com/
yaqwsx/KiKit/issues/574) and doesn't want to support newer shapely versions,
all kikit tests are passing with the new one.
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)