Skip to content

feat: support snakemake 9#50

Open
nh13 wants to merge 1 commit into
snakemake:mainfrom
nh13:nh_snakemake-9-support
Open

feat: support snakemake 9#50
nh13 wants to merge 1 commit into
snakemake:mainfrom
nh13:nh_snakemake-9-support

Conversation

@nh13

@nh13 nh13 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Documents and tests support for Snakemake 9 alongside Snakemake 8. The plugin already worked under Snakemake 9 but was untested and undocumented against it; this makes that support explicit and guarded.

The executor interacts with Snakemake exclusively through snakemake-interface-executor-plugins, whose contract is identical across Snakemake 8 and 9 (both pin >=9.3.2,<10). No source-code or runtime-dependency changes are required.

Changes

  • pyproject.toml: widen the dev snakemake pin ^8.30.0>=8.30,<10 (dev-only; no end-user effect).
  • ci_mocked_api.yml: add a snakemake: ["<9", ">=9,<10"] test matrix. Each leg does a full re-resolve via poetry add --group dev --lock rather than an overlay install, because the Snakemake major dictates the snakemake-interface-storage-plugins major (3.x vs 4.x), which selects a compatible snakemake-storage-plugin-s3. Passing on one major does not imply the other.
  • docs/: state supported versions (8 and 9) and make the container-image storage-plugin guidance symmetric across both majors.

Verified locally

Installed against Snakemake 9.23.1 (resolves s3 0.3.6 / storage-interface 4.4.1 / executor-plugins 9.4.0); plugin imports, subclasses RemoteExecutor, registers as aws-batch in Snakemake 9's ExecutorPluginRegistry, and passes all 101 test_batch_job_builder.py unit tests. Both matrix legs resolve to consistent sets:

leg snakemake s3 storage-interface
<9 8.30.0 0.3.1 3.5.0
>=9,<10 9.23.1 0.3.6 4.4.1

Out of scope

No runtime-dependency changes: the existing snakemake-storage-plugin-s3 >=0.2,<0.4 pin already resolves correctly for both majors. Re-pinning CI actions by SHA and any storage-dependency restructuring are left to separate PRs.

Summary by CodeRabbit

  • Documentation
    • Clarified that the plugin supports Snakemake versions 8 and 9.
    • Updated container image guidance to explain compatibility requirements between Snakemake and storage-plugin versions.
  • Tests
    • CI now validates the project against both supported Snakemake major-version ranges.

The executor talks to snakemake exclusively through
snakemake-interface-executor-plugins, whose contract is identical across
snakemake 8 and 9, so no source changes are required. This documents and
tests support for both majors:

- widen the dev snakemake dependency to >=8.30,<10;
- add a CI test matrix over snakemake 8 and 9 (each leg resolves a
  different snakemake-interface-storage-plugins major via
  snakemake-storage-plugin-s3, so both must be exercised);
- state supported versions in the docs and make the container-image
  storage-plugin guidance symmetric across snakemake 8 and 9.
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7497b0b3-46a3-4bde-a3d4-8328adf13950

📥 Commits

Reviewing files that changed from the base of the PR and between 47e8027 and 7c89485.

⛔ Files ignored due to path filters (1)
  • pyproject.toml is excluded by !pyproject.toml
📒 Files selected for processing (3)
  • .github/workflows/ci_mocked_api.yml
  • docs/further.md
  • docs/intro.md

📝 Walkthrough

Walkthrough

The CI workflow now tests Snakemake versions below 9 and from 9 to 10 using a matrix. Documentation describes Snakemake 8/9 support and requires container images to pre-install compatible storage-plugin versions.

Changes

Snakemake compatibility

Layer / File(s) Summary
Snakemake version matrix
.github/workflows/ci_mocked_api.yml
The testing job runs separate Snakemake version matrix legs and pins each selected version through Poetry while updating the lockfile.
Compatibility documentation
docs/intro.md, docs/further.md
Documentation states support for Snakemake 8 and 9 and explains that container images must pin compatible Snakemake and storage-plugin versions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Snakemake 9 support.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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