Description
Opening a thread to discuss whether a formal policy should be put in place for testing optional dependencies listed under the pyproject.toml
file at:
Lines 41 to 48 in 9a12ae9
Originally posted by @weiji14 in #3420 (comment)
Thinking if we should generalize this to test minimum supported versions of all optional dependencies (contextily, geopandas, rioxarray, etc).
We should note that we currently don't set the minimum required versions for the optional dependencies.
Yeah, should we come up with a policy for this? E.g. extend SPEC 0 with a recommendation like:
- Support for optional package dependencies be dropped 1 year after their initial release.
For reference,
xarray
seems to use 12 months as the default for most dependencies - https://github.com/pydata/xarray/blob/v2024.09.0/ci/min_deps_check.py#L35. Downside with this is more maintenance effort, since we need to update the minimum pins for optional dependencies more often. We could also just state this policy, but not have an explicit pin?
@seisman suggested at #3420 (comment) the following:
I actually prefer to not set any minimum pins for optional dependencies and rely on the package manager like
mamba
/conda
to install whatever versions that are compatible with the core dependencies.
So I guess we can do the following:
- Document the policy that optional dependencies are supported for 1 year only, i.e. users should use more up to date optional dependencies where possible.
- Do not set minimum pins on optional dependencies explicitly in
pyproject.toml
, but allow for breaking backwards compatibility (e.g. drop geopandas v0.x support) after 1 year.
Thoughts?