Skip to content

Fix CI, require Pillow >=13.0.0 and Python 3.11, remove torchdrug - #113

Open
a-r-j wants to merge 4 commits into
mainfrom
ci/update-workflow-actions
Open

a-r-j wants to merge 4 commits into
mainfrom
ci/update-workflow-actions

Conversation

@a-r-j

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

Copy link
Copy Markdown
Owner

Brings the follow-ups to #110 into main: the CI fixes from #111 and the Pillow upgrade from #112. Both were merged into this branch after #110 was squash-merged.

Warning

Breaking: drops Python 3.9 and 3.10 (Python 3.11 only), and removes torchdrug along with the install-torchdrug poe task.

CI fixes (#111)

  • Conda replaced with actions/setup-python. In a conda login shell, poetry installed into its own environment and broke itself when the lockfile downgraded virtualenv (FileNotFoundError installing pytdc). Poetry now uses its in-project .venv, which is the path the cache step saves.
  • Linux only. The README says macOS and Windows aren't officially supported, and the lockfile's torch 2.1.2+cpu has no macOS arm64 wheel.
  • dummy test dataset now uses PDB format. RCSB retired mmtf.rcsb.org, which broke test_train_fast_dev_run.
  • fail-fast: false, so one Python version failing doesn't cancel the others.

Pillow >=13.0.0 (#112)

  • Pillow 13 requires Python >=3.11, so python moves from >=3.9,<3.11 to >=3.11,<3.12. The upper bound comes from torch 2.1.2, which only supports up to 3.11.
  • Re-locked while keeping the other existing pins: pillow 10.2.0 → 13.0.0. The re-lock 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 (["3.11"]).

torchdrug removed

Its last release (0.2.1, 2023) requires Python <3.11. GearNet was the only user:

  • utils.sparse_coo_tensor → torch.sparse_coo_tensor. The torchdrug version was an unchecked wrapper around it, and I checked locally on torch 2.1.2 that the results match a dense reference.
  • Removed MessagePassingBase._message_and_aggregate, which nothing called and which was the only use of data.Graph.from_tensors.

Testing

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

Follow-up

14 other dataset configs (CATH, ccPDB, antibody developability, …) still use format: "mmtf". Fresh downloads for those will fail until they're switched.

🤖 Generated with Claude Code

a-r-j and others added 4 commits October 30, 2026 14:50
Bump actions/checkout v3->v7, actions/cache v2.1.7->v6, and
conda-incubator/setup-miniconda v2->v4. Replace the retired Mambaforge
installer with Miniforge (which bundles mamba).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Un-nest pull_request trigger (was a child of push, so PRs never ran tests)
- Use matrix.platform for runs-on so macOS/Windows jobs actually run
- Run steps in a bash login shell so the conda env's Python is used on all platforms
- Key cache on platform + Python version (matrix.os was undefined)
- Rename job buld_cpu -> build_cpu

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* 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>
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>
@a-r-j a-r-j changed the title Ci/update workflow actions Fix CI, require Pillow >=13.0.0 and Python 3.11, remove torchdrug Oct 31, 2026

This branch has not been deployed

No deployments
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