Skip to content

Add first draft of nf-core/config specifications#4087

Draft
jfy133 wants to merge 1 commit intonf-core:docs-v2from
jfy133:docs-v2-config-specifications
Draft

Add first draft of nf-core/config specifications#4087
jfy133 wants to merge 1 commit intonf-core:docs-v2from
jfy133:docs-v2-config-specifications

Conversation

@jfy133
Copy link
Member

@jfy133 jfy133 commented Mar 24, 2026

Not checked against style guide yet

@netlify /docs/developing/migration-guides/config-strict-syntax

@netlify
Copy link

netlify bot commented Mar 24, 2026

Deploy Preview for nf-core-docs ready!

Name Link
🔨 Latest commit b4a831e
🔍 Latest deploy log https://app.netlify.com/projects/nf-core-docs/deploys/69c28628dee55000085f28d4
😎 Deploy Preview https://deploy-preview-4087--nf-core-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment on lines +37 to +55
The fastest way to test whether your config is Nextflow strict syntax compliant is to make an empty workflow, and run it using your config as a custom config file.

For example:

1. In your local copy of fork of nf-core/configs, make a file called `main.nf`

```bash
echo "workflow{}" > main.nf
```

2. Run the minimal workflow with the latest edge version of Nextflow (`26.02.0-edge`) and pointing to the config file you want to test

```bash
NXF_VER=26.02.0-edge nextflow run main.nf -c conf/<your_config>.config
```

If you have no warning or errors messages, you are good to go - your config is already compliant!

If you have messages, see the next section on how to resolve the most common errors.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a simple nextflow lint file.config would do the trick with just compliance with strict syntax.


A config documentation Markdown file MUST contain information on how to use the config in the context of the infrastructure.
For example, the documentation may describe how to load Nextflow with such as `module load <...>` or `conda activate <...>`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It is RECOMMENDED to include a copy-pastable (e.g. using `$USER` rather than placeholders) example of launching a nf-core workflow with the `test` profile.

An institutional config MUST be compatible with any nf-core pipeline or user.
It defines how the pipeline interacts with the infrastructure, such as scheduling options, software environment settings, and resource limits.

An institutional config SHOULD NOT define any resource defaults with `withName` or `withLabel`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
An institutional config SHOULD NOT define any resource defaults with `withName` or `withLabel`.
An institutional config SHOULD NOT define any resource defaults with `withName` or `withLabel`. It SHOULD provide reasonable default settings for operating on the infrastructure (e.g. `resourceLimits`, `beforeScript`, `clusterOptions`, `runOptions`).

It defines how the pipeline interacts with the infrastructure, such as scheduling options, software environment settings, and resource limits.

An institutional config SHOULD NOT define any resource defaults with `withName` or `withLabel`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any mandatory parameter or environment variable MUST be described in the documentation. Non-mandatory parameters or environment variables SHOULD be described.


Institutional configs SHOULD use a short name or acronym as the config name.

The name MUST be used
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO?

:::tip
A config MAY declare the config is 'unofficial' if the system administrators are OK with hosting publicly, as long as they do not maintain it themselves.
:::

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Configurations SHOULD encode/align with/document local policies/recommendations do the extent possible - e.g. if there are multiple possible partitions possible but there are recommendations to use specific ones in different cases, that SHOULD be followed in the config rules. If running the nextflow main monitoring process on login/submit nodes is not allowed it might make sense to include a sample jobscript in the documentation.

Not really happy with the above, but I think it might make sense to mention aligning with site policies.

Files for a pipeline-specific institutional config must be located:

- **[`conf/pipeline/<pipeline name>/<config name>.conf`](https://github.com/nf-core/configs/tree/master/conf/pipeline)**
- - **[`docs/pipeline/<pipeline name>/<config name>.md`](https://github.com/nf-core/configs/tree/master/conf/pipeline)**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- - **[`docs/pipeline/<pipeline name>/<config name>.md`](https://github.com/nf-core/configs/tree/master/conf/pipeline)**
- **[`docs/pipeline/<pipeline name>/<config name>.md`](https://github.com/nf-core/configs/tree/master/conf/pipeline)**

?

### Pipeline specific institutional config

A pipeline specific config MAY modify the default resource values (memory, CPUs, time).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Where possible, it's RECOMMENDED to provide defaults for using locally available references and similar resources.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants