conda-forge / shapely-feedstock

A conda-smithy repository for shapely.
BSD 3-Clause "New" or "Revised" License
9 stars 20 forks source link

shapely=2.0.0 linux64 from conda-forge pkg_resources.UnknownExtra: shapely 2.0.0 has no such extra feature 'vectorized' #121

Closed valeriupredoi closed 1 year ago

valeriupredoi commented 1 year ago

The new shapely=2.0.0 for linux64, namely:

shapely                           2.0.0  py310h8b84c32_0              conda-forge/linux-64

makes our entry point call to our tool to fail from within pkg_resources, see example failed test; I saw there are lots of changes for this major release, perhaps vectorized was ommitted from the package at upload stage? Cheers, guys, and happy holidays :christmas_tree:

ocefpaf commented 1 year ago

I did not see shapely's 2.0 changelog but I don't think that vectorized still exists in 2.0 b/c everything is "vectorized" now. The tests for this was removed BTW: https://github.com/conda-forge/shapely-feedstock/pull/120/files#diff-c10e3d50805f921125df35bc18bfc5df56bccf46ce05cf55b9c374176ded18d0L26

valeriupredoi commented 1 year ago

too true, @ocefpaf :+1: We need to change our imports (and functionality too) since there is indeed no more vectorized module. Cheers for this, Filipe! :beer:

jorisvandenbossche commented 1 year ago

There actually still is a shapely.vectorized module (https://github.com/shapely/shapely/tree/main/shapely/vectorized) .. (it's mostly a small shim for back compat, to be deprecated/removed later)

jorisvandenbossche commented 1 year ago

(and I quickly checked, it is also correctly included in the conda package, so not sure where your error comes from)

valeriupredoi commented 1 year ago

@jorisvandenbossche cheers muchly for getting back, mate! You are completely right - your package is shipshape, and my apologies for barking at the wrong tree, in the meantime I have managed to find the culprit, it's a dependency of ours, maintained by us , it wasn't immediately obvious since that particular dependency works fine on its own, until a pip install of the package that uses it, at which point the deps table gets pulled from setup.py, where, lo and behold we require shapely[vectorized] :grin: Here's the issue at hand https://github.com/ESMValGroup/ESMValCore/issues/1874 Cheers for your support, guys, and happy holidays :christmas_tree:

jorisvandenbossche commented 1 year ago

Ah, but that is actually a good point that one could do pip install shapely[vectorized] before, and we removed that ability. We should at least document that (and we could also consider adding it back as dummy extra, just to not error on it)

valeriupredoi commented 1 year ago

I guess you could indeed, but if shapely is now fully vectorized, wouldn't that be a bit misleading? Maybe, as you mention, document it, add the functionality so that a package doesn't break the installation of another package that uses that one, and add a deprecation warning that it'll be completely removed in one or two minor releases? Cheers :beer: