Repository navigation
Add Nextflow 25.10.7 and 26.04.6 with a shared cluster config - #190
Merged
Merged
Conversation
The task shadowed java_module with item.java_module, but no entry in the version list carries that key, so templating nextflow.lua failed. The include in main.yml already supplies java_module for every version; let it flow through. java_location was never used by this task. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Deploy a cluster-wide Nextflow configuration next to each installed version, with SLURM profiles for the Main, HighMem and GPU queues and Singularity enabled, plus an nf-ilifu wrapper that runs nextflow with that config so users need only pick a -profile. Ported from PR #168. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Both are installed from the self-contained -dist asset rather than the launcher script, so the runtime lives in /software instead of being fetched into each user's ~/.nextflow on first run. Checksums computed from the GitHub release assets. Nextflow 25.04+ needs Java 17 to 26; OpenJDK 22.0.1 is the newest installed JDK in that range. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Load or otherwise expose Singularity before relying on these profiles.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Adds Nextflow 25.10.7 and 26.04.6 with Java 22, shared SLURM profiles, and an nf-ilifu wrapper.
Changes:
- Adds self-contained Nextflow distributions and checksums.
- Deploys shared configuration and wrapper scripts.
- Fixes module templating and registers OpenJDK 22.0.1.
| File | Description |
|---|---|
ansible/roles/compiled/templates/nf-ilifu.sh |
Runs Nextflow with the shared configuration. |
ansible/roles/compiled/tasks/common/nextflow.yaml |
Deploys configuration and wrapper files. |
ansible/roles/compiled/tasks/common/main.yml |
Registers versions, checksums, and Java dependency. |
ansible/roles/compiled/files/nextflow.config |
Defines SLURM profiles. Moderate issue (3 votes): the profiles require Singularity, but the Nextflow module does not load the singularity module. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Every SLURM profile in the shared nextflow.config enables Singularity, but the module only loaded Java, so a clean `module load nextflow/...` could not run those profiles. Load the unversioned singularity module, as cromwell.lua and the container modules do. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Fix the Java compatibility issue and enable NVIDIA visibility for GPU profiles.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (2)
Resolved since last review (1)
MikeCTZA
approved these changes
Sep 23, 2026
Each Nextflow release supports a bounded Java range: 22.10 tops out at Java 18, 23.04 at 20, while 25.04 and later need 17 to 26. A single include-level java_module cannot satisfy all six entries, and bumping it to 22.0.1 would have broken the 22.10.7 and 23.04.4 modules. Restore the per-version item.java_module the task originally expected and give every entry the key: 18.0.2 for the three older releases, as they had, and 22.0.1 for 25.04.6 and newer. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
The cluster apptainer.conf keeps `always use nv = no`, so a task on a GPU allocation sees no NVIDIA devices unless the container is started with --nv. Set singularity.runOptions on both GPU profiles, matching the --nv the GPU container wrappers in this repo already use. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Branched off
fix/cromwell(#189); retarget tomasteronce that merges. Ports the Nextflow work from #168 onto the current tree.java_modulewith a per-version key that no entry supplies, so templatingnextflow.luafailed. The include-level var now flows through, and the unusedjava_locationis gone.nextflow.configandnf-ilifuwrapper next to each installed version: SLURM profiles for the Main, HighMem and GPU queues with Singularity enabled. Users runnf-ilifu -profile main_medium run ...instead of carrying their own config.-distasset, so the runtime lives in/softwarerather than being downloaded into each user's~/.nextflowon first run. Checksums computed from the release assets.Test plan
uv run yamllint .anduv run ansible-lint(production profile) passansible-playbook site.yaml --syntax-checkpassesansible-playbook site.yaml -t nextflow,nextflow26.04.6,module load nextflow/26.04.6,nf-ilifu -profile main_small run hellonextflow25.10.7🤖 Generated with Claude Code
https://claude.ai/code/session_01FLJRERiNvARR3e8ftXi5TG