This patch release is primarily to address problems that we had in the v2.3 release with code linting.
Instead of resolving those specific issues, we chose to replace the linting tools (`markdownlint`, `yamllint`) with a new tool: [_Prettier_](https://prettier.io)
This is a fairly major change and affects a lot of files. However, it will hopefully simplify future usage.
Prettier can auto-format many different file formats (for pipelines the most relevant are markdown and YAML) and is extensible with plugins ([Nextflow](https://github.com/nf-core/prettier-plugin-nextflow), anyone?).
It tends to be a bit less strict than `markdownlint` and `yamllint` and importantly _can fix files for you_ rather than just complaining.
The sync PR may be a little big because of many major changes (whitespace, quotation mark styles etc).
To help with the merge, _**we highly recommend running Prettier on your pipeline's codebase before attempting the template merge**_.
If you take this approach, please copy `.editorconfig` and `.prettierrc.yml` from the template to your pipeline root first,
as they configure the behaviour of Prettier.
To run Prettier, go to the base of the repository where `.editorconfig` and `.prettierrc.yml` are located.
Make sure your `git status` is clean so that the changes don't affect anything you're working on and run:
bash
prettier --write .
This runs Prettier and tells it to fix any issues it finds in place.
Please note that there are many excellent integrations for Prettier available, for example VSCode can be set up to automatically format files on save.
Template
- Replace `markdownlint` and `yamllint` with [_Prettier_](https://prettier.io) for linting formatting / whitespace ([#1470](https://github.com/nf-core/tools/pull/1470))
- Add CI test using `editorconfig-checker` for other file types to look for standardised indentation and formatting ([1476](https://github.com/nf-core/tools/pull/1476))
- Add md5sum check of `versions.yml` to `test.yml` on the modules template.
- Update bundled module wrappers to latest versions ([1462](https://github.com/nf-core/tools/pull/1462))
- Renamed `assets/multiqc_config.yaml` to `assets/multiqc_config.yml` (`yml` not `yaml`) ([1471](https://github.com/nf-core/tools/pull/1471))
General
- Convert nf-core/tools API / lint test documentation to MyST ([1245](https://github.com/nf-core/tools/pull/1245))
- Build documentation for the `nf-core modules lint` tests ([1250](https://github.com/nf-core/tools/pull/1250))
- Fix some colours in the nf-core/tools API docs ([1467](https://github.com/nf-core/tools/pull/1467))
- Install tools inside GitPod Docker using the repo itself and not from Conda.
- Rewrite GitHub Actions workflow for publishing the GitPod Docker image.
- Improve config for PyTest so that you can run `pytest` instead of `pytest tests/` ([1461](https://github.com/nf-core/tools/pull/1461))
- New pipeline lint test `multiqc_config` that checks YAML structure instead of basic file contents ([1461](https://github.com/nf-core/tools/pull/1461))
- Updates to the GitPod docker image to install the latest version of nf-core/tools