Skip to content

2.11

Compare
Choose a tag to compare
@mashehu mashehu released this 19 Dec 18:29
a12d77a

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 a main.nf.test file. By running nf-core modules test or nf-core subworkflows test, you can perform the tests and generate the main.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 for nf-core modules test and nf-core subworkflows test, which does most of the work for you.
    • The nf-core modules lint and nf-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 🙂 ).
  • 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 with docker://, 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 attribute absoluteURI (#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 the nextflow.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 from mamba (#2566).
  • Sort the installed_by list in modules.json (#2570).
  • Unset env variable JAVA_TOOL_OPTIONS in gitpod (#2569)

New Contributors