RDFLib / pySHACL

A Python validator for SHACL
Apache License 2.0
241 stars 63 forks source link

Make importlib-metadata pin a lower bound #214

Closed bollwyvl closed 7 months ago

bollwyvl commented 8 months ago

Thanks for maintaining pySHACL, and congratulations on 0.24.0 :tada: !

This PR makes the new pin on importlib-metadata viable in a wider range of environments: at least in the conda-forge downstream, other packages in the test environment pull in importlib-metadata 6.x, and pass with this patch.

As python 3.7 is also dropped in the conda-forge ecosystem, there may be other new pins that are challenging, but we won't be able to find them.

ashleysommer commented 8 months ago

Thanks for your change here. For context, this is why I pinned it to 4.13 image

PySHACL supports Python 3.8-3.11, and Python 3.11 already has a comptible version of importlib.metadata in the std library, so I chose to use importlib_metadata package match that found in v3.11, for python versions earlier than 3.11.

ashleysommer commented 8 months ago

Note, during this development cycle of PySHACL, before the next release, we are dropping Python 3.7 and adding v3.12 to the support matrix, so I suppose it makes sense to move this importlib_metadata pin to 6.5.

bollwyvl commented 8 months ago

Hard pins are generally... hard for downstreams. And the importlib family of APIs is... troublesome.

Either way, we went ahead and shipped with this patch, but typically I try to at least make them apparent upstream. Feel free to close if this is not desired.

ashleysommer commented 7 months ago

Hi @bollwyvl If its possible, can you please test a conda-forge build using the new drop_37 branch? https://github.com/RDFLib/pySHACL/pull/216 That should also contain a solution to this issue.