2.11
v2.11 - Magnesium Dragon + [2023-12-19]
Highlights:
- nf-test is now used for testing modules and subworkflows. 🚀 This comes with updated templates and a changed commands (good-bye
nf-core modules/subworkflows create-test-yml
). For more information, you can refer to the revised documentation on modules and subworkflows .- Every module and subworkflow now contains a
tests/
directory, which includes amain.nf.test
file. By runningnf-core modules test
ornf-core subworkflows test
, you can perform the tests and generate themain.nf.test.snap
snapshot file. As a general guideline, we recommend testing all outputs of modules/subworkflows. For complex cases, please refer to the nf-test assertion tutorial. - To assist with the conversion of modules and subworkflows from pytest to nf-test, we've added the new
--migrate-pytest
option fornf-core modules test
andnf-core subworkflows test
, which does most of the work for you. - The
nf-core modules lint
andnf-core subworkflows lint
commands now also check the nf-test configuration and warn you if you are using pytest (it's really not that hard to switch 🙂 ).
- Every module and subworkflow now contains a
- We pinned the version of nf-validation, which should make offline usage of nf-core pipelines easier.
- In
nf-core download
, we now prefix all absolute container URIs withdocker://
, which should make more pipelines work out of the box. - We started using type hinting in the nf-core/tools codebase. This will help us to find bugs earlier and make the code more readable.
The complete list of changes can be found below.
Template
- Fix writing files to a remote outdir in the NfcoreTemplate helper functions (#2465)
- Fancier syntax highlighting for example samplesheets in the usage.md template (#2503)
- Use closure for multiqc ext.args (#2509)
- Fix how the modules template references the conda environment file (#2540)
- Unset env variable JAVA_TOOL_OPTIONS in gitpod (#2569)
- Pin the version of nf-validation (#2579)
- Disable process selector warnings by default (#2161)
- Remove
docker.userEmulation
from nextflow.config in pipeline template (#2580)
Download
- Add
docker://
prefix for absolute container URIs as well (#2576). - Bugfix for AttributeError:
ContainerError
object has no attributeabsoluteURI
(#2543).
Linting
- Fix incorrectly failing linting if 'modules' was not found in meta.yml (#2447)
- Correctly pass subworkflow linting test if
COMPONENT.out.versions
is used in the script (#2448) - Add pyupgrade to pre-commit config and dev requirements as mentioned in #2200
- Check for spaces in modules container URLs (#2452)
- Correctly ignore
timeline.enabled
,report.enabled
,trace.enabled
,dag.enabled
variables when linting a pipeline. (#2507) - Lint nf-test main.nf.test tags include all used components in chained tests (#2572)
- Don't fail linting if md5sum for empty files are found in a stub test (#2571)
- Check for existence of test profile (#2478)
Modules
- Added stub test creation to
create_test_yml
(#2476) - Replace ModulePatch by ComponentPatch (#2482)
- Fixed
nf-core modules lint
to work with new module structure for nf-test (#2494) - Add option
--migrate-pytest
to create a module with nf-test taking into account an existing module (#2549) - When installing modules and subworkflows, automatically create the
./modules
directory if it doesn't exist (#2563) - When
.nf-core.yml
is not found create it in the current directory instead of the root filesystem (#2237) - Modules
--migrate-pytest
copies template scripts (#2568)
Subworkflows
- Added stub test creation to
create_test_yml
(#2476) - Fixed
nf-core subworkflows lint
to work with new module structure for nf-test (#2494) - Add option
--migrate-pytest
to create a subworkflow with nf-test taking into account an existing subworkflow (#2549)
General
- Update
schema build
functionality to automatically update defaults which have changed in thenextflow.config
(#2479) - Change testing framework for modules and subworkflows from pytest to nf-test (#2490)
bump_version
keeps now the indentation level of the updated version entries (#2514)- Add mypy to pre-commit config for the tools repo (#2545)
- Use Path objects for ComponentCreate and update the structure of components templates (#2551).
- GitPod base image: swap tool installation back to
conda
frommamba
(#2566). - Sort the
installed_by
list inmodules.json
(#2570). - Unset env variable JAVA_TOOL_OPTIONS in gitpod (#2569)
New Contributors
- @fa2k made their first contribution in #2472
- @NovakApis made their first contribution in #2223
- @rernst made their first contribution in #2507
- @kedhammar made their first contribution in #2483