Skip to content

Py3.14: fsspec[s3] can resolve ancient s3fs 0.3.5; suggest s3fs>=2024.1 floor #1293

Open

Description

@cursor

Context

On Python 3.14, installing spatialdata in a fresh uv project that also depends on matplotlib>=3.11.2 can fail when the resolver backtracks to s3fs 0.3.5 (2019 sdist). That release uses versioneer with configparser.SafeConfigParser, removed in Python 3.12+, so the build fails.

Repro sketch (uv 0.13+, CPython 3.14):

```toml
[project]
requires-python = ">=3.14"
dependencies = ["matplotlib>=3.11.2", "spatialdata>=0.8.0"]
```

`uv lock` may try to build `s3fs==0.3.5`.

Adding an explicit `s3fs>=2024.1` constraint fixes resolution (modern wheels, proper fsspec coupling). Downstream packages such as milume are adding that floor because `spatialdata` already pulls `s3fs` transitively via `fsspec[s3]`.

Suggestion

Consider declaring `s3fs>=2024.1` (or similar) in `spatialdata` dependency metadata so consumers do not hit ancient sdists on new Python versions.

Tracked downstream: ckmah/milume#350

Activity

  1. ckmah commented on Oct 28, 2026

    @ckmah

    Hi, just confirming this came from me, real bug discovered in setting up fresh project environments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions