Skip to content

Template update for nf-core/tools v4.1.0 - #183

Open
ljwharbers wants to merge 4 commits into
devfrom
template_update_4.1.0
Open

Template update for nf-core/tools v4.1.0#183
ljwharbers wants to merge 4 commits into
devfrom
template_update_4.1.0

Conversation

@ljwharbers

Copy link
Copy Markdown
Collaborator

Template update for nf-core/tools 4.1.0

Manual template sync (nf-core pipelines sync) from tools 4.0.2 → 4.1.0. This pipeline is not an official nf-core pipeline (is_nfcore: false), so no automated sync PR is ever opened — this was run by hand.

Sync-history note

origin/TEMPLATE had been left behind at tools 3.1.1: the local 4.0.1 sync commit was never pushed, and the 4.0.2 bump was applied to dev by hand without a sync. origin/TEMPLATE has now been fast-forwarded to the regenerated 4.1.0 build (1a17a98..be762da, no history rewrite), so future syncs work from a clean base. Because 4.0.2 was hand-applied, this merge also carries the 4.0.2 and 4.0.3 template changes.

Template changes pulled in

  • New pre-commit hookscheck-added-large-files (--maxkb=5000), check-merge-conflict, and a local block-pipeline-outdir hook backed by the new .hooks/block_pipeline_outdir.sh. Prettier dependency bumped to 3.9.6.
  • conf/base.config — new process_low_memory resource label.
  • conf/igenomes.config — converted to the template's strict-syntax params.genomes = [...] map literal.
  • .github/workflows/pr-comment.yml — new split-out PR-comment poster (security hardening, switch to more secure split PR comment approach nf-core/tools#4342). branch.yml now passes the head repo through an env var instead of interpolating it straight into the shell.
  • .github/workflows/linting.yml — always-true if: condition fixed.
  • conf/modules.config — MultiQC publishDir no longer uses saveAs (Template: Fix publishDir configuration in modules.config for multiqc nf-core/tools#4347).
  • MultiQC module bumped to 1.35, which adds the .conda-lock/ files.
  • utils_nfschema_plugin gained a cli_typecast input.
  • nextflow_schema.jsonformat: directory-path dropped from igenomes_base (Remove format constraint for igenomes_base nf-core/tools#4253).
  • Doc fixes: #lint-tests anchor, a dead link, and two typos.

Conflict resolutions

Kept dev's version: workflows/lrsomatic.nf, main.nf (still passes only samplesheet), docs/output.md, assets/multiqc_config.yml report_comment, the docs/usage.md GRCh38 example command, tests/nextflow.config pipelines_testdata_base_path, the params block and contributor list in nextflow.config, and the '.*:MULTIQC' selector in conf/modules.config.

Took the template's version: branch.yml hardening, and manifest.nextflowVersion.

Reconstructed by hand:

  • conf/igenomes.config — took the template's new map syntax and re-applied dev's customisations on top: GRCh37 dropped, and the pipeline-specific GRCh38 / CHM13 entries (GATK fasta, ascat_*, centromere_bed, pon_file, bed_file, vep_*, gnomad, dbsnp, onekgenomes, colors, asap) rewritten in key : value, form. The new strict-syntax nextflow-lint pre-commit hook passes on the result.
  • ro-crate-metadata.json — regenerated with nf-core pipelines rocrate.

⚠️ Behaviour changes worth a look

  • Minimum Nextflow is now !>=25.10.4 (was !>=25.04.0), taken from the template. The nf-test CI matrix and the README badge were bumped to match. This raises the minimum Nextflow version for users — flagging it explicitly since it is the one change here that is not cosmetic.
  • manifest.contributors contribution fields were empty for all seven contributors, which is why the RO-Crate build logged No authors found in pipeline manifest. Now filled: @ljwharbers and @robert-a-forsyth as ['author', 'maintainer'], the other five as ['author'] (matching the README credits).
  • MultiQC 1.35 will shift the MultiQC version string in the nf-test snapshots.

Also included: a missing trailing newline in .gitignore, which the new end-of-file-fixer hook flags (pre-existing, would have failed the linting workflow).

Testing

  • prek run --all-filesall 7 hooks pass, including the new strict-syntax nextflow-lint over the rewritten igenomes.config.
  • nf-core pipelines lint — run locally; see the checks on this PR for the authoritative result.
  • nf-test tests/default.nf.test --profile debug,test,apptainer — submitted as a slurm job on wICE (apptainer rather than docker, since there is no docker daemon on the cluster). Expect snapshot updates from the MultiQC 1.35 bump; the remaining profiles are left to this PR's CI.

🤖 Generated with Claude Code

ljwharbers and others added 4 commits August 14, 2026 15:33
Merge the regenerated TEMPLATE branch (tools 4.0.1 -> 4.1.0) into dev.
Because the 4.0.2 bump on dev was hand-applied rather than synced, this
also carries the 4.0.2 and 4.0.3 template changes.

Conflict resolutions:
- nextflow.config: took the template's nextflowVersion '!>=25.10.4';
  kept dev's params block, contributor list and removal of the
  custom_config_base include. Bumped the nf-test NXF_VER matrix and the
  README Nextflow badge to 25.10.4 to match.
- nextflow.config: filled the previously empty manifest contribution
  fields - Luuk Harbers and Robert Forsyth as author+maintainer, the
  remaining five as author. This also fixes the "No authors found in
  pipeline manifest" error when building the RO-Crate.
- conf/igenomes.config: adopted the template's new strict-syntax
  params.genomes map literal and re-applied dev's customisations on top
  (GRCh37 dropped, pipeline-specific GRCh38 and CHM13 entries).
- workflows/lrsomatic.nf, main.nf, docs/output.md, CHANGELOG.md,
  assets/multiqc_config.yml, docs/usage.md test command, and
  tests/nextflow.config pipelines_testdata_base_path: kept dev's.
- .github/workflows/branch.yml: took the template's hardened form that
  passes the head repo through an env var instead of interpolating it
  directly into the shell.
- conf/modules.config: kept dev's '.*:MULTIQC' selector, adopted the
  template's publishDir without saveAs.
- ro-crate-metadata.json: regenerated with nf-core pipelines rocrate.

Template changes pulled in:
- New pre-commit hooks: check-added-large-files, check-merge-conflict
  and a local block-pipeline-outdir hook (.hooks/block_pipeline_outdir.sh).
- New process_low_memory resource label in conf/base.config.
- New .github/workflows/pr-comment.yml (split-out PR comment poster).
- MultiQC module bumped to 1.35.
- utils_nfschema_plugin gained a cli_typecast input, passed as false.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 4.1.0 template's end-of-file-fixer pre-commit hook flags this
pre-existing issue, which would fail the linting workflow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 14, 2026 14:05
@github-actions

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 204c21a

+| ✅ 204 tests passed       |+
#| ❔  21 tests were ignored |#
!| ❗  38 tests had warnings |!
Details

❗ Test warnings:

  • nextflow_config - Config manifest.version should end in dev: 1.1.0
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in lint_log.txt: Named file extensions MUST be emitted for ALL output channels
  • pipeline_todos - TODO string in lint_log.txt: List additional required output channels/values here
  • pipeline_todos - TODO string in README.md: Include a figure that guides the user through the major workflow steps. Many nf-core
  • pipeline_todos - TODO string in nextflow.config: Specify your pipeline's command line flags
  • pipeline_todos - TODO string in nextflow.config: Update the field with the details of the contributors to your pipeline. New with Nextflow version 24.10.0
  • pipeline_todos - TODO string in meta.yml: #Add a description of the module and list keywords
  • pipeline_todos - TODO string in nextflow.config: Specify any additional parameters here
  • pipeline_todos - TODO string in methods_description_template.yml: #Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline
  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in base.config: Customise requirements for specific processes.
  • schema_description - Ungrouped param in schema: skip_modkit
  • schema_description - No description provided in schema for parameter: generate_gvcf
  • schema_description - No description provided in schema for parameter: autocorrelation
  • schema_description - No description provided in schema for parameter: vep_custom
  • schema_description - No description provided in schema for parameter: vep_custom_tbi
  • schema_description - No description provided in schema for parameter: severus_minsupport
  • schema_description - No description provided in schema for parameter: wakhan_chroms
  • local_component_structure - phasing_haplotyping.nf in subworkflows/local should be moved to a SUBWORKFLOW_NAME/main.nf structure
  • local_component_structure - small_variant_consensus.nf in subworkflows/local should be moved to a SUBWORKFLOW_NAME/main.nf structure
  • local_component_structure - prepare_reference_files.nf in subworkflows/local should be moved to a SUBWORKFLOW_NAME/main.nf structure
  • local_component_structure - prepare_annotation.nf in subworkflows/local should be moved to a SUBWORKFLOW_NAME/main.nf structure
  • local_component_structure - deepsomatic.nf in subworkflows/local should be moved to a SUBWORKFLOW_NAME/main.nf structure

❔ Tests ignored:

  • files_exist - File is ignored: CODE_OF_CONDUCT.md
  • files_exist - File is ignored: assets/nf-core-lrsomatic_logo_light.png
  • files_exist - File is ignored: docs/images/nf-core-lrsomatic_logo_light.png
  • files_exist - File is ignored: docs/images/nf-core-lrsomatic_logo_dark.png
  • files_exist - File is ignored: .github/ISSUE_TEMPLATE/config.yml
  • files_exist - File is ignored: .github/workflows/awstest.yml
  • files_exist - File is ignored: .github/workflows/awsfulltest.yml
  • files_exist - File is ignored: .github/CONTRIBUTING.md
  • nextflow_config - Config variable ignored: manifest.name
  • nextflow_config - Config variable ignored: manifest.homePage
  • files_unchanged - File ignored due to lint config: CODE_OF_CONDUCT.md
  • files_unchanged - File ignored due to lint config: .github/ISSUE_TEMPLATE/bug_report.yml
  • files_unchanged - File ignored due to lint config: .github/PULL_REQUEST_TEMPLATE.md
  • files_unchanged - File ignored due to lint config: .github/workflows/branch.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/linting.yml
  • files_unchanged - File ignored due to lint config: assets/email_template.txt
  • files_unchanged - File ignored due to lint config: assets/nf-core-lrsomatic_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-lrsomatic_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-lrsomatic_logo_dark.png
  • files_unchanged - File ignored due to lint config: docs/README.md
  • actions_awstest - 'awstest.yml' workflow not found: /home/runner/work/lrsomatic/lrsomatic/.github/workflows/awstest.yml

✅ Tests passed:

Run details

  • nf-core/tools version 4.1.0
  • Run at 2026-08-14 14:07:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR performs a manual nf-core pipeline template sync to nf-core/tools 4.1.0, updating repository scaffolding, CI workflows, configs, and bundled nf-core modules/subworkflows to match the newer template baseline.

Changes:

  • Syncs template/CI infrastructure (new shared PR comment poster workflow, hardened PR workflows, updated action pins, and updated linting/nf-test behavior).
  • Updates pipeline configuration and metadata (Nextflow minimum version bump, contributor metadata/RO-Crate regeneration, conf/igenomes.config strict map syntax, new process_low_memory label).
  • Bumps bundled MultiQC module and associated assets (MultiQC 1.35, updated snapshots, container references, and conda lockfiles).

Reviewed changes

Copilot reviewed 42 out of 44 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/nextflow.config Adjusts AWS anonymous client config comment formatting.
subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config Updates nf-schema plugin version used in tests.
subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test Extends test inputs to cover new cli_typecast parameter.
subworkflows/nf-core/utils_nfschema_plugin/meta.yml Documents new inputs for schema/help behavior and CLI typecasting.
subworkflows/nf-core/utils_nfschema_plugin/main.nf Adds cli_typecast handling and updates option keys passed to nf-schema helpers.
subworkflows/local/utils_nfcore_lrsomatic_pipeline/main.nf Updates call signature to pass new cli_typecast argument.
ro-crate-metadata.json Regenerates RO-Crate metadata and updates embedded README/template/version metadata.
README.md Updates badges for minimum Nextflow and template version.
nextflow.config Fills contributor contribution fields and bumps minimum Nextflow version.
nextflow_schema.json Drops directory-path format for igenomes_base.
modules/nf-core/multiqc/tests/main.nf.test.snap Updates snapshots for MultiQC 1.35.
modules/nf-core/multiqc/meta.yml Updates container/lockfile references for MultiQC 1.35 build IDs.
modules/nf-core/multiqc/main.nf Updates MultiQC container URI/tag to 1.35.
modules/nf-core/multiqc/environment.yml Bumps conda dependency to multiqc=1.35.
modules/nf-core/multiqc/.conda-lock/linux_arm64-bd-5c84a5000a226ab5_1.txt Adds new arm64 conda lockfile for updated MultiQC environment.
modules.json Updates pinned SHAs for pulled nf-core modules/subworkflows.
docs/usage.md Minor doc formatting fix (Nextflow version string).
docs/CONTRIBUTING.md Fixes lint anchor link and a minor doc typo.
conf/modules.config Updates MultiQC publishDir behavior to match template changes.
conf/igenomes.config Migrates genomes config to strict params.genomes map literal syntax.
conf/containers_singularity_oras_arm64.config Updates MultiQC container reference to 1.35 (arm64 ORAS).
conf/containers_singularity_oras_amd64.config Updates MultiQC container reference to 1.35 (amd64 ORAS).
conf/containers_singularity_https_arm64.config Updates MultiQC container blob URL to 1.35 (arm64 HTTPS).
conf/containers_singularity_https_amd64.config Updates MultiQC container blob URL to 1.35 (amd64 HTTPS).
conf/containers_docker_arm64.config Updates MultiQC container tag to 1.35 (arm64 Docker).
conf/containers_docker_amd64.config Updates MultiQC container tag to 1.35 (amd64 Docker).
conf/containers_conda_lock_files_arm64.config Updates MultiQC conda lockfile path wiring (arm64).
conf/containers_conda_lock_files_amd64.config Updates MultiQC conda lockfile path wiring (amd64).
conf/base.config Adds process_low_memory resource label.
CHANGELOG.md Documents template sync, Nextflow bump, contributor metadata fix, and MultiQC bump.
.pre-commit-config.yaml Adds new pre-commit hooks and bumps Prettier dependency.
.nf-core.yml Updates declared nf-core template/tools version to 4.1.0.
.hooks/block_pipeline_outdir.sh Adds local pre-commit hook to prevent committing pipeline output directories.
.gitignore Fixes trailing newline/formatting.
.github/workflows/template-version-comment.yml Refactors template-version commenting into an artifact-producing workflow.
.github/workflows/pr-comment.yml Adds shared privileged workflow to post PR comments from artifacts.
.github/workflows/nf-test.yml Updates checkout pins, Nextflow matrix, and adds PR comment artifact generation for latest-everything failures.
.github/workflows/linting.yml Fixes always-true if: logic and adds PR comment artifact generation for lint results.
.github/workflows/fix_linting.yml Updates action pins for lint auto-fix workflow.
.github/workflows/download_pipeline.yml Updates workflow to check out code and changes .nf-core.yml parsing approach.
.github/workflows/clean-up.yml Updates stale action pin.
.github/workflows/branch.yml Hardens branch protection workflow and switches to artifact-based PR commenting.
.github/actions/nf-test/action.yml Updates action pins for the composite nf-test action.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 60 to 64
- name: Read .nf-core.yml
uses: pietrobolcato/action-read-yaml@9f13718d61111b69f30ab4ac683e67a56d254e1d # 1.1.0
id: read_yml
with:
config: ${{ github.workspace }}/.nf-core.yml
run: |
echo "nf_core_version=$(yq '.nf_core_version' ${{ github.workspace }}/.nf-core.yml)" >> "$GITHUB_OUTPUT"

Comment on lines +47 to +51
- cli_typecast:
type: boolean
description: |
Whether to apply typecasting to the parameters given via the CLI before validation.
Set this to `null` to use the default behavior.
Comment on lines 66 to 69
"",
command
command,
false
)
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.

2 participants