From 83864348ab5dd0377922d74eec4843c292a8eeba Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 16 Sep 2026 14:01:24 +0200 Subject: [PATCH 1/3] fix config options not being detected --- build.gradle | 3 ++- pixi.lock | 17 ++++++++++------- .../nfcmgg/plugin/config/CmggConfig.groovy | 10 ++++++---- .../nfcmgg/plugin/config/DoneConfig.groovy | 4 ++-- .../plugin/config/SamplesheetsConfig.groovy | 12 ++++++------ 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index a7ec487..7c62fae 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,8 @@ nextflowPlugin { className = 'nfcmgg.plugin.CmggPlugin' extensionPoints = [ 'nfcmgg.plugin.CmggExtension', - 'nfcmgg.plugin.CmggFactory' + 'nfcmgg.plugin.CmggFactory', + 'nfcmgg.plugin.config.CmggConfig' ] } diff --git a/pixi.lock b/pixi.lock index cfe7e2d..592302d 100644 --- a/pixi.lock +++ b/pixi.lock @@ -8,7 +8,7 @@ environments: - url: https://conda.anaconda.org/bioconda/ packages: linux-64: - - conda: https://conda.anaconda.org/bioconda/noarch/nextflow-26.04.0-h2a3209d_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/nextflow-26.04.6-h2a3209d_1.conda - conda: https://conda.anaconda.org/bioconda/noarch/nf-test-0.9.5-h2a3209d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda @@ -88,16 +88,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/gradle-9.3.1-h707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/npm-groovy-lint-18.0.0-h7b269df_0.conda packages: -- conda: https://conda.anaconda.org/bioconda/noarch/nextflow-26.04.0-h2a3209d_0.conda - sha256: 1313c4260de838ff524e6d70514525b0b2845d750c95fe98ce955f68b2d93eff - md5: a35a8222291bdc1a2d856334581a97e4 +- conda: https://conda.anaconda.org/bioconda/noarch/nextflow-26.04.6-h2a3209d_1.conda + sha256: 452805a6a3cc3f4e28417d855c7c03001dce1b2557a7e8ae46971d3a8778f9af + md5: 4fea597e1977b0221de342a3bfb2d971 depends: - coreutils - curl - - openjdk >=17,<=24 + - openjdk >=17,<26 license: Apache-2.0 - size: 37285498 - timestamp: 1777437043349 + run_exports: + weak: + - nextflow >=26.4.6,<26.5.0a0 + size: 37863659 + timestamp: 1784828644646 - conda: https://conda.anaconda.org/bioconda/noarch/nf-test-0.9.5-h2a3209d_0.conda sha256: a99f62b01c74b01854c01bdebe765110f4754e2245ec536df10a521ad96befd5 md5: 394b91381c88e5c7df30b7e34fefd6e5 diff --git a/src/main/groovy/nfcmgg/plugin/config/CmggConfig.groovy b/src/main/groovy/nfcmgg/plugin/config/CmggConfig.groovy index 6611cda..97424fd 100644 --- a/src/main/groovy/nfcmgg/plugin/config/CmggConfig.groovy +++ b/src/main/groovy/nfcmgg/plugin/config/CmggConfig.groovy @@ -32,13 +32,15 @@ import nextflow.script.dsl.Description @Description('The `cmgg` scope allows you to configure the nf-cmgg plugin.') class CmggConfig implements ConfigScope { - @ConfigOption @Description('Configuration scope for the creation of `DONE` files after successful pipeline execution.') - DoneConfig done + final DoneConfig done - @ConfigOption @Description('Configuration scope for the automatic generation of samplesheets for all supported pipelines.') - SamplesheetsConfig samplesheets + final SamplesheetsConfig samplesheets + + // Keep the no-arg constructor in order to be able to use the `@ConfigOption` annotation + CmggConfig() { + } CmggConfig(Map config) { Map doneConfig = getMap(config?.done, 'cmgg.done') diff --git a/src/main/groovy/nfcmgg/plugin/config/DoneConfig.groovy b/src/main/groovy/nfcmgg/plugin/config/DoneConfig.groovy index dad129b..14d7839 100644 --- a/src/main/groovy/nfcmgg/plugin/config/DoneConfig.groovy +++ b/src/main/groovy/nfcmgg/plugin/config/DoneConfig.groovy @@ -34,11 +34,11 @@ class DoneConfig implements ConfigScope { @ConfigOption @Description('Create a DONE file after successful pipeline execution.') - Boolean enabled = false + final Boolean enabled = false @ConfigOption @Description('Location to create the DONE file after successful pipeline execution.') - Path location + final Path location DoneConfig(Map config) { this.enabled = getBoolean(config?.enabled, 'cmgg.done.enabled') diff --git a/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy b/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy index f812f8c..0ca2b9e 100644 --- a/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy +++ b/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy @@ -37,15 +37,15 @@ class SamplesheetsConfig implements ConfigScope { @ConfigOption @Description('Configuration scope for the creation of samplesheet files after successful pipeline execution.') - Boolean enabled = false + final Boolean enabled = false @ConfigOption @Description('Location to create the samplesheet files after successful pipeline execution.') - Path location + final Path location @ConfigOption @Description('A list of worksheets to use for the automatic samplesheet generation.') - List worksheets = [] + final List worksheets = [] SamplesheetsConfig(Map config) { this.enabled = getBoolean(config?.enabled, 'cmgg.samplesheets.enabled') @@ -59,10 +59,10 @@ class SamplesheetsConfig implements ConfigScope { } return worksheetPath }.findAll { sheet -> sheet != null } - } + } ((Path) Nextflow.file(getClass().getResource('/worksheets').toURI().toString())).eachFile { res -> worksheets << res } - } - } + +} From fac083de6c5e7fbe220b22300ec6ba3ef4246b60 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 16 Sep 2026 14:02:47 +0200 Subject: [PATCH 2/3] prek --- .../groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy b/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy index 0ca2b9e..899f75b 100644 --- a/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy +++ b/src/main/groovy/nfcmgg/plugin/config/SamplesheetsConfig.groovy @@ -59,10 +59,10 @@ class SamplesheetsConfig implements ConfigScope { } return worksheetPath }.findAll { sheet -> sheet != null } - } + } ((Path) Nextflow.file(getClass().getResource('/worksheets').toURI().toString())).eachFile { res -> worksheets << res } - } + } -} + } From 38f9fdf87965e7c9197e1609b057f30060b53411 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 16 Sep 2026 14:10:10 +0200 Subject: [PATCH 3/3] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9582446..a698510 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.0 + +1. Removed the hardcoded setup of samplesheet generation and migrated to a worksheet implementation to generate samplesheets. See the [worksheets](docs/worksheets.md) documentation for more information +2. Use `clusters` to get the amount of reads for rnafusion runs instead of the `yield_` +3. Resolved all configuration warnings + ## 0.2.8 1. Set the default mouse binsize to 100 if the given binsize is not 100 or 500