:warning: Major enhancements & breaking changes
This marks the first Nextflow DSL2-centric release of `tools` which means that some commands won't work in full with DSL1 pipelines anymore. Please use a `v1.x` version of `tools` for such pipelines or better yet join us to improve our DSL2 efforts! Here are the most important changes:
- The pipeline template has been completely re-written in DSL2
- A module template has been added to auto-create best-practice DSL2 modules to speed up development
- A whole suite of commands have been added to streamline the creation, installation, removal, linting and version bumping of DSL2 modules either installed within pipelines or the nf-core/modules repo
Template
- Move TODO item of `contains:` map in a YAML string [[1082](https://github.com/nf-core/tools/issues/1082)]
- Trigger AWS tests via Tower API [[1160](https://github.com/nf-core/tools/pull/1160)]
General
- Fixed a bug in the Docker image build for tools that failed due to an extra hyphen. [[1069](https://github.com/nf-core/tools/pull/1069)]
- Regular release sync fix - this time it was to do with JSON serialisation [[1072](https://github.com/nf-core/tools/pull/1072)]
- Fixed bug in schema validation that ignores upper/lower-case typos in parameters [[1087](https://github.com/nf-core/tools/issues/1087)]
- Bugfix: Download should use path relative to workflow for configs
- Remove lint checks for files related to conda and docker as not needed anymore for DSL2
- Removed `params_used` lint check because of incompatibility with DSL2
- Added`modules bump-versions` command to `README.md`
- Update docs for v2.0 release
Modules
- Update comment style of modules `functions.nf` template file [[1076](https://github.com/nf-core/tools/issues/1076)]
- Changed working directory to temporary directory for `nf-core modules create-test-yml` [[908](https://github.com/nf-core/tools/issues/908)]
- Use Biocontainers API instead of quayi.io API for `nf-core modules create` [[875](https://github.com/nf-core/tools/issues/875)]
- Update `nf-core modules install` to handle different versions of modules [1116](https://github.com/nf-core/tools/pull/1116)
- Added `nf-core modules bump-versions` command to update all versions in the `nf-core/modules` repository [[1123](https://github.com/nf-core/tools/issues/1123)]
- Updated `nf-core modules lint` to check whether a `git_sha` exists in the `modules.json` file or whether a new version is available [[1114](https://github.com/nf-core/tools/issues/1114)]
- Refactored `nf-core modules` command into one file per command [1124](https://github.com/nf-core/tools/pull/1124)
- Updated `nf-core modules remove` to also remove entry in `modules.json` file ([1115](https://github.com/nf-core/tools/issues/1115))
- Bugfix: Interactive prompt for `nf-core modules install` was receiving too few arguments
- Added progress bar to creation of 'modules.json'
- Updated `nf-core modules list` to show versions of local modules
- Improved exit behavior by replacing `sys.exit` with exceptions
- Updated `nf-core modules remove` to remove module entry in `modules.json` if module directory is missing
- Create extra tempdir as work directory for `nf-core modules create-test-yml` to avoid adding the temporary files to the `test.yml`
- Refactored passing of command line arguments to `nf-core` commands and subcommands ([1139](https://github.com/nf-core/tools/issues/1139), [#1140](https://github.com/nf-core/tools/issues/1140))
- Check for `modules.json` for entries of modules that are not actually installed in the pipeline [[1141](https://github.com/nf-core/tools/issues/1141)]
- Added `<keywords>` argument to `nf-core modules list` for filtering the listed modules. ([1139](https://github.com/nf-core/tools/issues/1139)
- Added support for a `bump-versions` configuration file [[1142](https://github.com/nf-core/tools/issues/1142)]
- Fixed `nf-core modules create-test-yml` so it doesn't break when the output directory is supplied [[1148](https://github.com/nf-core/tools/issues/1148)]
- Updated `nf-core modules lint` to work with new directory structure [[1159](https://github.com/nf-core/tools/issues/1159)]
- Updated `nf-core modules install` and `modules.json` to work with new directory structure ([1159](https://github.com/nf-core/tools/issues/1159))
- Updated `nf-core modules remove` to work with new directory structure [[1159](https://github.com/nf-core/tools/issues/1159)]
- Restructured code and removed old table style in `nf-core modules list`
- Fixed bug causing `modules.json` creation to loop indefinitely
- Added `--all` flag to `nf-core modules install`
- Added `remote` and `local` subcommands to `nf-core modules list`
- Fix bug due to restructuring in modules template
- Added checks for verifying that the remote repository is well formed
- Added checks to `ModulesCommand` for verifying validity of remote repositories
- Misc. changes to `modules install`: check that module exist in remote, `--all` is has `--latest` by default.
Sync
- Don't set the default value to `"null"` when a parameter is initialised as `null` in the config [[1074](https://github.com/nf-core/tools/pull/1074)]
Tests
- Added a test for the `version_consistency` lint check
- Refactored modules tests into separate files, and removed direct comparisons with number of tests in `lint` tests ([1158](https://github.com/nf-core/tools/issues/1158))