Skip to content

Require Pillow >=13.0.0 (raises minimum Python to 3.11) - #112

Merged
a-r-j merged 2 commits into
ci/fix-matrix-failuresfrom
deps/pillow-13
Oct 30, 2026
Merged

a-r-j merged 2 commits into
ci/fix-matrix-failuresfrom
deps/pillow-13

Conversation

@a-r-j

@a-r-j a-r-j commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Requires pillow >=13.0.0. Pillow was only a transitive dependency before, locked at 10.2.0.

Stacked on #111 so CI runs with the fixed workflow, since main's CI is broken until #110/#111 merge. Merge #111 (then #110) first, or retarget this PR to main afterwards.

Breaking: Python 3.11 only

Pillow 13.0.0 requires Python >=3.11, so the supported Python range moves from >=3.9,<3.11 to >=3.11,<3.12. The upper bound stays below 3.12 because the locked torch 2.1.2 only supports up to 3.11.

  • Re-locked while keeping the other existing pins: pillow 10.2.0 → 13.0.0. It also drops async-timeout, exceptiongroup and importlib-resources, which were only needed on Python <3.11.
  • Updated the classifiers, the ruff/black target-version, the README conda example and the CI matrix (now ["3.11"]).

Breaking: torchdrug removed

torchdrug's last release (0.2.1, July 2023) requires Python <3.11, so poe install-torchdrug can't work any more. GearNet was its only user:

  • utils.sparse_coo_tensor is torchdrug's unchecked wrapper around torch.sparse_coo_tensor, so it's replaced with the torch call directly. I checked locally against a dense reference with duplicate (uncoalesced) indices on torch 2.1.2.
  • data.Graph.from_tensors was only used in MessagePassingBase._message_and_aggregate, which nothing calls. The method is removed.
  • Removed the install-torchdrug poe task and the CI step that ran it.

Testing

CI Build CPU (3.11) ✅: 20 passed, 6 skipped (run). The GearNet forward-pass test is among the skipped tests ("too slow for GitHub Actions"), so it's worth running GearNet locally before merging.

🤖 Generated with Claude Code

a-r-j and others added 2 commits October 30, 2026 15:28
Pillow 13 requires Python >=3.11, so raise the supported range from
>=3.9,<3.11 to >=3.11,<3.12 (torch 2.1.2 supports up to 3.11). Re-lock
with existing pins kept: pillow 10.2.0 -> 13.0.0, and drop the
async-timeout/exceptiongroup/importlib-resources backports. Update
classifiers, ruff/black targets, README and the CI matrix to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
torchdrug's last release (0.2.1, 2023) requires Python <3.11, so it
cannot be installed alongside Pillow 13. GearNet only used it for
utils.sparse_coo_tensor, an unchecked wrapper around
torch.sparse_coo_tensor, and data.Graph.from_tensors inside
_message_and_aggregate, which nothing calls. Use torch directly, drop
the dead method, and remove the install-torchdrug task and CI step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@a-r-j
a-r-j merged commit 10d0e58 into ci/fix-matrix-failures Oct 30, 2026
3 checks passed
a-r-j added a commit that referenced this pull request Oct 30, 2026
* Disable fail-fast in CI test matrix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Fix CI install and test failures

- Replace setup-miniconda with setup-python. Under a conda login shell
  poetry installed into its own environment and broke itself when the
  lockfile downgraded virtualenv (FileNotFoundError installing pytdc).
- Test on Linux only; README states macOS/Windows are unsupported and
  the lockfile pins torch 2.1.2+cpu, which has no macOS arm64 wheel.
- Switch the dummy dataset to PDB format: mmtf.rcsb.org has been
  retired and no longer resolves, failing test_train_fast_dev_run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Require Pillow >=13.0.0 (raises minimum Python to 3.11) (#112)

* Require Pillow >=13.0.0 and Python 3.11

Pillow 13 requires Python >=3.11, so raise the supported range from
>=3.9,<3.11 to >=3.11,<3.12 (torch 2.1.2 supports up to 3.11). Re-lock
with existing pins kept: pillow 10.2.0 -> 13.0.0, and drop the
async-timeout/exceptiongroup/importlib-resources backports. Update
classifiers, ruff/black targets, README and the CI matrix to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Remove torchdrug dependency from GearNet

torchdrug's last release (0.2.1, 2023) requires Python <3.11, so it
cannot be installed alongside Pillow 13. GearNet only used it for
utils.sparse_coo_tensor, an unchecked wrapper around
torch.sparse_coo_tensor, and data.Graph.from_tensors inside
_message_and_aggregate, which nothing calls. Use torch directly, drop
the dead method, and remove the install-torchdrug task and CI step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
a-r-j added a commit that referenced this pull request Oct 31, 2026
Resolve conflicts from #110 being squash-merged into main while its
branch continued (#111, #112). main's squash commit is identical to the
branch's own #110 commits, so keep the branch side throughout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant