Skip to content

Commit

Permalink
asciinema πŸ‘ŽπŸ» yotube πŸ‘πŸ»
Browse files Browse the repository at this point in the history
  • Loading branch information
mashehu committed Oct 8, 2024
1 parent b988f58 commit 29738a0
Showing 1 changed file with 70 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ headerImage: 'https://images.unsplash.com/photo-1583258292688-d0213dc5a3a8'
headerImageAlt: 'Shelves of yellow and red apples on display in a supermarket'
pubDate: 2024-10-07T14:00:00+01:00
authors:
- 'mirpedrol'
- 'mashehu'
- 'ewels'
- 'mirpedrol'
- 'mashehu'
- 'ewels'
label:
- 'tools'
- 'tools'
maxHeadingDepth: 3
---

import { YouTube } from '@astro-community/astro-embed-youtube';

# What and Why?

The nf-core/tools CLI is the backbone of our community.
Expand All @@ -28,51 +30,51 @@ We promise, it's worth it! :pray:

## ✨ New features

- Enhanced pipeline template customisation
- The template has been divided into features that can be selectively included or excluded.
For example, you can now create a new pipeline without any traces of FastQC.
- You can strip down the pipeline to the bare minimum and add only the tools you need.
- For nf-core pipelines, certain core features (e.g., documentation, CI tests) remain mandatory, but you still have significant customisation flexibility.
- New Text User Interface (TUI) for pipeline creation
- A guided interface helps you through the process when running `nf-core pipelines create{:bash}` (don't worry - you can still use the CLI by providing all values as parameters).
<script src="https://asciinema.org/a/Qm4ulzsK9m6WaCcDPyh96khfh.js" id="asciicast-Qm4ulzsK9m6WaCcDPyh96khfh" async="true"></script>
- Switch to [nf-schema](https://nextflow-io.github.io/nf-schema/latest/) for input validation
- Replaces its predecessor nf-validation as a standard plugin in the template
- CI tests now use the nf-core tools version matching the pipeline's template version
- This will reduce errors in opened PRs with each new tools release
- Enhanced pipeline template customisation
- The template has been divided into features that can be selectively included or excluded.
For example, you can now create a new pipeline without any traces of FastQC.
- You can strip down the pipeline to the bare minimum and add only the tools you need.
- For nf-core pipelines, certain core features (e.g., documentation, CI tests) remain mandatory, but you still have significant customisation flexibility.
- New Text User Interface (TUI) for pipeline creation
- A guided interface helps you through the process when running `nf-core pipelines create{:bash}` (don't worry - you can still use the CLI by providing all values as parameters).
<YouTube id={'VwjXNXONHlY'} poster={`https://img.youtube.com/vi/VwjXNXONHlY/maxresdefault.jpg`} />
- Switch to [nf-schema](https://nextflow-io.github.io/nf-schema/latest/) for input validation
- Replaces its predecessor nf-validation as a standard plugin in the template
- CI tests now use the nf-core tools version matching the pipeline's template version
- This will reduce errors in opened PRs with each new tools release

## ⛓️‍πŸ’₯ Breaking changes

- All pipeline commands now require the `pipelines` prefix.
This change makes the commands more consistent with `nf-core modules{:bash}` and `nf-core subworkflows{:bash}` commands.
The commands which changed are:

| old command | new command |
| ----------------------------------- | --------------------------------------------- |
| `nf-core lint{:bash}` | `nf-core pipelines lint{:bash}` |
| `nf-core launch{:bash}` | `nf-core pipelines launch{:bash}` |
| `nf-core download{:bash}` | `nf-core pipelines download{:bash}` |
| `nf-core create-params-file{:bash}` | `nf-core pipelines create-params-file{:bash}` |
| `nf-core create{:bash}` | `nf-core pipelines create{:bash}` |
| `nf-core lint{:bash}` | `nf-core pipelines lint{:bash}` |
| `nf-core bump-version{:bash}` | `nf-core pipelines bump-version{:bash}` |
| `nf-core sync{:bash}` | `nf-core pipelines sync{:bash}` |
| `nf-core schema build{:bash}` | `nf-core pipelines schema build{:bash}` |
| `nf-core schema docs{:bash}` | `nf-core pipelines schema docs{:bash}` |
| `nf-core schema lint{:bash}` | `nf-core pipelines schema lint{:bash}` |
| `nf-core schema validate{:bash}` | `nf-core pipelines schema validate{:bash}` |
| `nf-core create-logo{:bash}` | `nf-core pipelines create-logo{:bash}` |

- Some options have been changed for the `nf-core pipelines download{:bash}` command:
- The `-t` / `--tower` flag has been renamed to `-p` / `--platform`.
- We renamed the short flags for consistency, to always use the first letter of the second word in the long flag:
- The `-d` / `--download-configuration` flag has been renamed to `-c` / `--download-configuration`.
- The `-p` / `--parallel-downloads` flag has been renamed to `-d` / `--parallel-downloads`.
- All pipeline commands now require the `pipelines` prefix.
This change makes the commands more consistent with `nf-core modules{:bash}` and `nf-core subworkflows{:bash}` commands.
The commands which changed are:

| old command | new command |
| ----------------------------------- | --------------------------------------------- |
| `nf-core lint{:bash}` | `nf-core pipelines lint{:bash}` |
| `nf-core launch{:bash}` | `nf-core pipelines launch{:bash}` |
| `nf-core download{:bash}` | `nf-core pipelines download{:bash}` |
| `nf-core create-params-file{:bash}` | `nf-core pipelines create-params-file{:bash}` |
| `nf-core create{:bash}` | `nf-core pipelines create{:bash}` |
| `nf-core lint{:bash}` | `nf-core pipelines lint{:bash}` |
| `nf-core bump-version{:bash}` | `nf-core pipelines bump-version{:bash}` |
| `nf-core sync{:bash}` | `nf-core pipelines sync{:bash}` |
| `nf-core schema build{:bash}` | `nf-core pipelines schema build{:bash}` |
| `nf-core schema docs{:bash}` | `nf-core pipelines schema docs{:bash}` |
| `nf-core schema lint{:bash}` | `nf-core pipelines schema lint{:bash}` |
| `nf-core schema validate{:bash}` | `nf-core pipelines schema validate{:bash}` |
| `nf-core create-logo{:bash}` | `nf-core pipelines create-logo{:bash}` |

- Some options have been changed for the `nf-core pipelines download{:bash}` command:
- The `-t` / `--tower` flag has been renamed to `-p` / `--platform`.
- We renamed the short flags for consistency, to always use the first letter of the second word in the long flag:
- The `-d` / `--download-configuration` flag has been renamed to `-c` / `--download-configuration`.
- The `-p` / `--parallel-downloads` flag has been renamed to `-d` / `--parallel-downloads`.

## 🫑 Deprecations

- The `nf-core licences{:bash}` command is deprecated.
- Python 3.8 reaches end of life in October 2024, so this will probably be the last release supporting Python 3.8.
- The `nf-core licences{:bash}` command is deprecated.
- Python 3.8 reaches end of life in October 2024, so this will probably be the last release supporting Python 3.8.

# Tip: Avoiding Merge Conflicts

Expand All @@ -82,10 +84,10 @@ Doing so means less code will update in the template, and fewer merge conflicts

So - if you don't use any of these template features:

- fastqc
- multiqc
- igenomes
- nf_schema
- fastqc
- multiqc
- igenomes
- nf_schema

you can minimize merge conflicts with a quick update and intermediate sync:

Expand All @@ -111,10 +113,10 @@ git checkout TEMPLATE -- .nf-core.yml

```yaml title=".nf-core.yml"
template:
skip_features:
- fastqc
- igenomes
- nf_schema
skip_features:
- fastqc
- igenomes
- nf_schema
```
5. Commit the changes:
Expand Down Expand Up @@ -144,11 +146,11 @@ This plugin uses a new JSON schema draft (2020-12), requiring changes to the `ne

The following validation parameters have been removed from `nextflow.config` and `nextflow_schema.json`:

- `validationFailUnrecognisedParams`
- `validationLenientMode`
- `validationSchemaIgnoreParams`
- `validationShowHiddenParams`
- `validate_params`
- `validationFailUnrecognisedParams`
- `validationLenientMode`
- `validationSchemaIgnoreParams`
- `validationShowHiddenParams`
- `validate_params`

Instead, use the `validation` scope for `nf-schema` options.

Expand All @@ -162,9 +164,9 @@ The `UTILS_NFVALIDATION_PLUGIN` subworkflow has been replaced by `UTILS_NFSCHEMA

To prepare for upcoming Nextflow syntax depreciations, for loops and try/catch blocks have been removed from the template config files:

- nf-core configs are now included without try/catch blocks
- Include statements have been moved after profile definitions to ensure correct profile overriding
- For more information, see these Nextflow issues: [#1792](https://github.com/nextflow-io/nextflow/issues/1792) and [#5306](https://github.com/nextflow-io/nextflow/issues/5306)
- nf-core configs are now included without try/catch blocks
- Include statements have been moved after profile definitions to ensure correct profile overriding
- For more information, see these Nextflow issues: [#1792](https://github.com/nextflow-io/nextflow/issues/1792) and [#5306](https://github.com/nextflow-io/nextflow/issues/5306)

# Common Merge Conflicts and Solutions

Expand Down Expand Up @@ -244,15 +246,15 @@ lint: null
nf_core_version: 3.0.0
org_path: null
template:
author: Author Name
description: The description of the pipeline
force: false
is_nfcore: true
name: pipelinename
org: nf-core
outdir: .
skip_features: []
version: 3.0.0
author: Author Name
description: The description of the pipeline
force: false
is_nfcore: true
name: pipelinename
org: nf-core
outdir: .
skip_features: []
version: 3.0.0
update: null
```
Expand Down

0 comments on commit 29738a0

Please sign in to comment.