Releases: nf-core/tools
2.12 - Aluminium Wolf
v2.12 - Aluminium Wolf - [2024-01-29]
Template
- Add a Github Action Workflow to the pipeline template that tests a successful download with 'nf-core download' (#2618)
- Use
pre-committo lint files in GitHub CI (#2635) - Use pdiff also on gitpod for nf-test (#2640)
- switch to new image syntax in readme (#2645)
- Add conda channel order to nextflow.config (#2094)
- Fix tyop in pipeline nextflow.config (#2664)
- Remove
nfcore_external_java_deps.jarfrom lib directory in pipeline template (#2675) - Add function to check
-profileis well formatted (#2678) - Add new pipeline error message pointing to docs when 'requirement exceeds available memory' error message (#2680)
- add 👀👍🏻🎉😕 reactions to fix-linting-bot action (#2692)
Linting
- Fix linting of a pipeline with patched custom module (#2669)
- linting a pipeline also lints the installed subworkflows (#2677)
- environment.yml name must be lowercase (#2676)
- allow ignoring specific files when template_strings (#2686)
- lint
nextflow.configdefault values match the ones specified innextflow_schema.json(#2684)
Modules
- Fix empty json output for
nf-core list local(#2668)
General
- Run CI-pytests for nf-core tools on self-hosted runners (#2550)
- Add Ruff linter and formatter replacing Black, isort and pyupgrade (#2620)
- Set pdiff as nf-test differ in Docker image for Gitpod (#2642)
- Fix Renovate Dockerfile updating issues (#2648 and #2651)
- Add new subcommand
nf-core tui, which launches a TUI (terminal user interface) to intuitively explore the command line flags, built using Trogon (#2655) - Add new subcommand:
nf-core logo-createto output an nf-core logo for a pipeline (instead of going through the website) (#2662) - Handle api redirects from the old site (#2672)
- Remove redundanct v in pipeline version for emails (#2667)
- add function to check
-profileis well formatted (#2678) - Update pre-commit hook astral-sh/ruff-pre-commit to v0.1.14 (#2674)
- Update pre-commit hook pre-commit/mirrors-mypy to v1.8.0 (#2630)
- Update mshick/add-pr-comment action to v2 (#2632)
- update python image version in docker file (#2636)
- Update actions/cache action to v4 (#2666)
- Update peter-evans/create-or-update-comment action to v4 (#2683) and (#2695)
Magnesium Dragon Patch
v2.11.1 - Magnesium Dragon Patch - [2023-12-20]
Template
- Rename
release-announcments.ymltorelease-announcements.yml(#2610) - Fix
nextflow.configdocker.runOptions(#2607)
General
- Only dump
modules.jsonwhen it is modified (#2609)
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.testfile. By runningnf-core modules testornf-core subworkflows test, you can perform the tests and generate themain.nf.test.snapsnapshot 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-pytestoption fornf-core modules testandnf-core subworkflows test, which does most of the work for you. - The
nf-core modules lintandnf-core subworkflows lintcommands 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.userEmulationfrom nextflow.config in pipeline template (#2580)
Download
- Add
docker://prefix for absolute container URIs as well (#2576). - Bugfix for AttributeError:
ContainerErrorobject 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.versionsis 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.enabledvariables 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 lintto work with new module structure for nf-test (#2494) - Add option
--migrate-pytestto create a module with nf-test taking into account an existing module (#2549) - When installing modules and subworkflows, automatically create the
./modulesdirectory if it doesn't exist (#2563) - When
.nf-core.ymlis not found create it in the current directory instead of the root filesystem (#2237) - Modules
--migrate-pytestcopies template scripts (#2568)
Subworkflows
- Added stub test creation to
create_test_yml(#2476) - Fixed
nf-core subworkflows lintto work with new module structure for nf-test (#2494) - Add option
--migrate-pytestto create a subworkflow with nf-test taking into account an existing subworkflow (#2549)
General
- Update
schema buildfunctionality 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_versionkeeps 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
condafrommamba(#2566). - Sort the
installed_bylist 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
v2.10 - Nickel Ostrich
v2.10 - Nickel Ostrich + [2023-09-25]
This new release includes new commands, template updates, and several bug fixes. Thanks to all contributors for making this possible!
🌟 Highlights
- We are now linting subworkflows
nf-core subworkflows lint. - Use
nf-core create-params-fileparams-file with documentation and default values for all parameters in a pipeline. - A new GitHub Action will automatically post new pipeline release messages to Mastodon, Bluesky and Twitter
- Pipelines in sync with the new template, will dump all pipeline parameters to a file called
params.jsonafter every run
✖️ Deprecations
- Deprecation of the
—no-gitargument fornf-core createcommand - Deprecation of the
—template-yamlargument for thenf-core synccommand - The same information will now be automatically stored in.nf-core.yml
Template
- Fix links in
multiqc_config.yml(#2372 and #2412) - Remove default false from nextflow_schema.json (#2376)
- Add module MULTIQC to modules.config (#2377)
- Add GitHub workflow for automated release announcements (#2382)
- Update the Code of Conduct (#2381)
- Save template information to
.nf-core.ymland deprecate argument--template-yamlfornf-core sync(#2388 and #2389) - (#2397) Remove fixed Ubuntu test and added to standard testing matrix
- (#2396) Reduce container finding error to warning since the registries are not consistent.
- (#2415) Add autoMounts for apptainer.
- Remove
igenomes_basefrom the schema, so that nf-validation doesn't create a file path and throw errors offline for s3 objects. - Modified devcontainer permissions so that singularity can be run in Codespaces/VS Code devcontainers (Commit a103f44)
- Update Gitpod profile resources to reflect base environment settings.
- (#747) Add to the template the code to dump the selected pipeline parameters into a json file.
Download
- Improved container image resolution and prioritization of http downloads over Docker URIs (#2364).
- Registries provided with
-l/--container-librarywill be ignored for modules with explicit container registry specifications (#2403). - Fix unintentional downloading of containers in test for the Tower download functionality. Bug reported by @adamrtalbot and @awgymer (#2434).
Linting
- Add new command
nf-core subworkflows lint(#2379)
Modules
Subworkflows
- Fix bug: missing subworkflow name when using
nf-core subworkflows create(#2435)
General
- Initialise
docker_image_nameto fixUnboundLocalErrorerror (#2374) - Fix prompt pipeline revision during launch (#2375)
- Add a
create-params-filecommand to create a YAML parameter file for a pipeline containing parameter documentation and defaults. (#2362) - Update the Code of Conduct (#2381)
- Remove
--no-gitoption fromnf-core create(#2394) - Throw warning when custom workflow name contains special characters (#2401)
- Bump version of nf-test snapshot files with
nf-core bump-version(#2410)
v2.9 - Chromium Falcon
v2.9 - Chromium Falcon + [2023-06-30]
A new big release with new features, template updates and bug fixes. Thanks to all contributors!
🌟 Highlights
- A new
nf-core downloadcommand compatible with Nextflow Tower. - Implementation of the plugin
nf-validationfor parameter validation in pipeline templates. - Nextflow version bump to 23.04.0.
Template
params.max_multiqc_email_sizeis no longer required (#2273)- Remove
cleanup = truefromtest_full.configin pipeline template (#2279) - Fix usage docs for specifying
params.yaml(#2279) - Added stub in modules template ([#2277])(#2277) [Contributed by @nvnieuwk]
- Move registry definitions out of profile scope ([#2286])(#2286)
- Remove
aws_towerprofile ([#2287])(#2287) - Fixed the Slack report to include the pipeline name (#2291)
- Fix link in the MultiQC report to point to exact version of output docs (#2298)
- Updates seqeralabs/action-tower-launch to v2.0.0 (#2301)
- Remove schema validation from
libfolder and use Nextflow nf-validation plugin instead (#1771) - Fix parsing of container directive when it is not typical nf-core format (#2306)
- Add ability to specify custom registry for linting modules, defaults to quay.io (#2313)
- Add
singularity.registry = 'quay.io'in pipeline template (#2305) - Add
apptainer.registry = 'quay.io'in pipeline template (#2352) - Bump minimum required NF version in pipeline template from
22.10.1->23.04.0(#2305) - Add ability to interpret
docker.registryfromnextflow.configfile. If not found defaults to quay.io. (#2318) - Add functions to dynamically include pipeline tool citations in MultiQC methods description section for better reporting. (#2326)
- Remove
--tracedirparameter (#2290) - Incorrect config parameter warnings when customising pipeline template (#2333)
- Use markdown syntax in the description for the meta map channels (#2358)
Download
- Introduce a
--towerflag fornf-core downloadto obtain pipelines in an offline format suited for seqeralabs® Nextflow Tower (#2247). - Refactored the CLI for
--singularity-cacheinnf-core downloadfrom a flag to an argument. The prior options were renamed toamend(container images are only saved in the$NXF_SINGULARITY_CACHEDIR) andcopy(a copy of the image is saved with the download).remotewas newly introduced and allows to provide a table of contents of a remote cache via an additional argument--singularity-cache-index(#2247). - Refactored the CLI parameters related to container images. Although downloading other images than those of the Singularity/Apptainer container system is not supported for the time being, a generic name for the parameters seemed preferable. So the new parameter
--singularity-cache-indexintroduced in #2247 has been renamed to--container-cache-indexprior to release (#2336). - To address issue #2311, a new parameter
--container-librarywas created allowing to specify the container library (registry) from which container images in OCI format (Docker) should be pulled (#2336). - Container detection in configs was improved. This allows for DSL2-like container definitions inside the container parameter value provided to process scopes #2346.
- Add apptainer to the list of false positve container strings (#2353).
Updated CLI parameters
| Old parameter | New parameter |
|---|---|
| new parameter | -d / --download-configuration |
| new parameter | -t / --tower |
-c/ --container |
-s / --container-system <VALUE> |
| new parameter | -l / --container-library <VALUE> |
--singularity-cache |
-u / --container-cache-utilisation <VALUE> |
| new parameter | -i / --container-cache-index <VALUE> |
In addition, -r / --revision has been changed to a parameter that can be provided multiple times so several revisions can be downloaded at once.
Linting
- Warn if container access is denied (#2270)
- Error if module container specification has quay.io as prefix when it shouldn't have ([#2278])(https://github.com/nf-core/tools/pull/2278/files)
- Detect if container is 'simple name' and try to contact quay.io server by default (#2281)
- Warn about null/None/empty default values in
nextflow_schema.json(#3328) - Fix linting when creating a pipeline skipping some parts of the template and add CI test (#2330)
Modules
- Don't update
modules_jsonobject if a module is not updated (#2323)
Subworkflows
General
- GitPod base image: Always self-update to the latest version of Nextflow. Add pre-commit dependency.
- GitPod configs: Update Nextflow as an init task, init pre-commit in pipeline config.
- Refgenie: Create
nxf_home/nf-core/refgenie_genomes.configpath if it doesn't exist (#2312) - Add CI tests to test running a pipeline when it's created from a template skipping different areas
v2.8 - Ruthenium Monkey
v2.8 - Ruthenium Monkey - [2023-04-27]
Template
- Explicitly disable
condawhen a container profile (#2140) - Turn on automatic clean up of intermediate files in
work/on successful pipeline completion in full-test config (#2163) [Contributed by @jfy133] - Add documentation to
usage.mdon how to useparams.ymlfiles, based on nf-core/ampliseq text (#2173) [Contributed by @jfy133, @d4straub] - Make jobs automatically resubmit for a much wider range of exit codes (now
104and130..145) (#2170) - Add a clean-up GHA which closes issues and PRs with specific labels (#2183)
- Remove problematic sniffer code in samplesheet_check.py that could give false positive 'missing header' errors ([https://github.com//pull/2194]) [Contributed by @Midnighter, @jfy133]
- Consistent syntax for branch checks in PRs (#2202)
- Fixed minor Jinja2 templating bug that caused the PR template to miss a newline
- Updated AWS tests to use newly moved
seqeralabs/action-tower-launchinstead ofnf-core/tower-action - Remove
.cfffiles from.editorconfig[(#2145)[https://github.com//pull/2145]] - Simplify pipeline README (#2186)
- Added support for the apptainer container engine via
-profile apptainer. (#2244) [Contributed by @jfy133] - Added config
docker.registryto pipeline template for a configurable default container registry when using Docker containers. Defaults toquay.io(#2133) - Add tower.yml file to the pipeline template (#2251)
- Add mastodon badge to README (#2253)
- Removed
quay.iofrom all module Docker container references as this is now supplied at pipeline level. (#2249) - Remove
CITATION.cfffile from pipeline template, to avoid that pipeline Zenodo entries reference the nf-core publication instead of the pipeline (#2059).
Linting
- Update modules lint test to fail if enable_conda is found (#2213)
- Read module lint configuration from
.nf-core.yml, not.nf-core-lint.yml(#2221) nf-core schema lintnow defaults to lintingnextflow_schema.jsonif no filename is provided (#2225)- Warn if
/zenodo.XXXXXXis present in the Readme (#2254) - Lint all labels in a module (#2227)
Modules
- Add an
--empty-templateoption to create a module without TODO statements or examples (#2175 & #2177) - Removed the
nf-core modules mulledcommand and all its code dependencies (2199). - Take into accout the provided
--git_remoteURL when linting all modules (2243).
Subworkflows
- Fixing problem when a module included in a subworkflow had a name change from TOOL to TOOL/SUBTOOL (#2177)
- Fix
nf-core subworkflows testnot running subworkflow tests (#2181) - Add tests for
nf-core subworkflows create-test-yml(#2219)
General
- Deprecate Python 3.7 support because it reaches EOL (#2210)
nf-core modules/subworkflows infonow prints the include statement for the module/subworkflow (#2182).- Add a clean-up GHA which closes issues and PRs with specific labels (#2183)
- update minimum version of rich to 13.3.1 (#2185)
- Add the Nextflow version to Gitpod container matching the minimal Nextflow version for nf-core (according to
nextflow.config) (#2196) - Use
nfcore/gitpod:devcontainer in the dev branch (#2196) - Replace requests_mock with responses in test mocks (#2165).
- Add warning when installing a module from an
org_paththat exists in multiple remotes inmodules.json(#2228 #2239). - Add the possibility to translate refgenie asset aliases to the ones used in a pipeline with an alias_translations.yaml file (#2242).
- Add initial CHM13 support (1988)
v2.7.2 - Mercury Eagle Patch
v2.7.2 - Mercury Eagle Patch
Patch release solving some bugs introduced with v2.7
Template
- Fix the syntax of github_output in GitHub actions (#2114)
- Fix a bug introduced in 2.7 that made pipelines hang (#2132)
Linting
- Allow specifying containers in less than three lines (#2121)
- Run prettier after dumping a JSON schema file (#2124)
General
v2.7.1 - Mercury Eagle Patch
This release fixes a sync error with the new syntax of set_output on GitHub Actions.
- Patch release to fix pipeline sync (#2110)
v2.7 - Mercury Eagle
Another big release with lots of new features and bug fixes. Thanks to all contributors!
🌟 Highlights
- New
nf-core subworkflowssubcommand for creating, removing, testing, updating and finding subworkflows, see the documentation for more information. - Every pipeline has now it's own GitHub codespace template, which can be used to develop the pipeline directly in the browser.
- Improved handling of modules and subworkflows from other repos than nf-core/modules.
- Pre-commit is now installed as a dependency, which allows us, besides other things, to run prettier on the fly even if it is not manually installed.
- Shell completion for nf-core commands, more information here.
Template
Features
- Ignore files in
bin/directory when running prettier (#2080). - Add GitHub codespaces template (#1957)
nextflow run <pipeline> --versionwill now print the workflow version from the manifest and exit (#1951).- Add profile for running
dockerwith the ARM chips (including Apple silicon) (#1942 and #2034). - Flip execution order of parameter summary printing and parameter validation to prevent 'hiding' of parameter errors (#2033).
- Change colour of 'pipeline completed successfully, but some processes failed' from red to yellow (#2096).
Bug fixes
- Fix lint warnings for
samplesheet_check.nfmodule (#1875). - Check that the workflow name provided with a template doesn't contain dashes (#1822)
- Remove
CITATION.cfffile from pipeline template, to avoid that pipeline Zenodo entries reference the nf-core publication instead of the pipeline (#2059).
Linting
Features
- Add
--sort-byoption to linting which allows ordering module lint warnings/errors by either test name or module name (#2077).
Bug fixes
- Don't lint pipeline name if
manifest.namein.nf-core.yml(#2035) - Don't check for
docker pullcommands inactions_cilint test (leftover from DSL1) (#2055).
General
Features
- Use pre-commit run prettier if prettier is not available (#1983) and initialize pre-commit in gitpod and codespaces (#1957).
- Refactor CLI flag
--hide-progressto be at the top-level group, like--verbose(#2016) nf-core syncnow supports the template YAML file using-t/--template-yaml(#1880).- The default branch can now be specified when creating a new pipeline repo #1959.
- Only warn when checking that the pipeline directory contains a
main.nfand anextflow.configfile if the pipeline is not an nf-core pipeline #1964 - Bump promoted Python version from 3.7 to 3.8 (#1971).
- Extended the chat notifications to Slack (#1829).
- Don't print source file + line number on logging messages (except when verbose) (#2015)
- Automatically format
test.ymlcontent with Prettier (#2078) - Automatically format
modules.jsoncontent with Prettier (#2074) - Add shell completion for nf-core tools commands(#2070)
Bug fixes, maintenance and tests
- Fix error in tagging GitPod docker images during releases (#1874).
- Fix bug when updating modules from old version in old folder structure (#1908).
- Don't remove local copy of modules repo, only update it with fetch (#1881).
- Improve test coverage of
sync.pyand__main__.py(#1936, #1965). - Add file
versions.ymlwhen generatingtest.ymlwithnf-core modules create-test-ymlbut don't check for md5sum #1963. - Mock biocontainers and anaconda api calls in modules and subworkflows tests #1967
- Run tests with Python 3.11 (#1970).
- Run test with a realistic version of git (#2043).
- Fix incorrect file deletion in
nf-core launchwhen--params_inhas the same name as--params_out(#1986). - Updated GitHub actions (#1998, #2001)
- Code maintenance (#1818, #2032, #2073).
- Track from where modules and subworkflows are installed (#1999).
- Substitute ModulesCommand and SubworkflowsCommand by ComponentsCommand (#2000).
- Prevent installation with unsupported Python versions (#2075).
- Allow other remote URLs not starting with
http(#2061)
Modules
- Update patch file paths if the modules directory has the old structure (#1878).
- Don't write to
modules.jsonfile when applying a patch file duringnf-core modules update(#2017).
Subworkflows
- Add subworkflow commands
create-test-yml,createandinstall(#1897). - Update subworkflows install so it installs also imported modules and subworkflows (#1904).
check_up_to_date()function frommodules_json.pyalso checks for subworkflows (#1934).- Add tests for
nf-core subworkflows installcommand (#1996). - Function
create()frommodules_json.pyadds also subworkflows tomodules.jsonfile (#2005). - Add
nf-core subworkflows updatecommand (#2019).
v2.6 - Tin Octopus
⚠️ Please read
This release goes together with a major update on nf-core/modules that restructures DSL2 module files and updates the syntax of modules.json.
These changes have been brought about to accommodate the imminent release of shared subworkflows.
Please be aware of some points:
- ♻️ You will need to run
nf-core modules updateon your pipeline which should move a lot of files around - 💀 Any module
.patchfiles fromnf-core modules patchmay be lost (if you have any). Please take care to regenerate them.
If you have any issues, please drop us a line on Slack on the #tools channel 👍🏻
Template
- Add
actions/upload-artifactstep to the awstest workflows, to expose the debug log file - Add
prettieras a requirement to Gitpod Dockerimage - Bioconda incompatible conda channel setups now result in more informative error messages (#1812)
- Update MultiQC module, update supplying MultiQC default and custom config and logo files to module
- Add a 'recommend' methods description text to MultiQC to help pipeline users report pipeline usage in publications (#1749)
- Fix template spacing modified by JINJA (#1830)
- Fix MultiQC execution on template #1855
- Don't skip including
base.configwhen skipping nf-core/configs
Linting
- Pipelines: Check that the old renamed
libfiles are not still present:Checks.groovy->Utils.groovyCompletion.groovy->NfcoreTemplate.groovyWorkflow.groovy->WorkflowMain.groovy
General
- Add function to enable chat notifications on MS Teams, accompanied by
hook_urlparam to enable it. - Schema: Remove
allOfif no definition groups are left. - Use contextlib to temporarily change working directories (#1819)
- More helpful error messages if
nf-core downloadcan't parse a singularity image download
Modules
- If something is wrong with the local repo cache, offer to delete it and try again (#1850)
- Restructure code to work with the directory restructuring in modules (#1859)
- Make
label: process_singledefault when creating a new module