Skip to content

v2.3.1 - Mercury Vulture Formatting

Compare
Choose a tag to compare
@ewels ewels released this 23 Mar 13:46
27c98a1

⚠️ TLDR: Run Prettier on your pipeline's codebase before attempting the template sync merge.

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.

Please copy .editorconfig and .prettierrc.yml from the template to your pipeline root first, as they configure the behaviour of Prettier.


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

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, anyone?). It tends to be a bit less strict than markdownlint and yamllint and importantly can fix files for you rather than just complaining.

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:

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 for linting formatting / whitespace (#1470)
  • Add CI test using editorconfig-checker for other file types to look for standardised indentation and formatting (#1476)
  • Add md5sum check of versions.yml to test.yml on the modules template.
  • Update bundled module wrappers to latest versions (#1462)
  • Renamed assets/multiqc_config.yaml to assets/multiqc_config.yml (yml not yaml) (#1471)

General

  • Convert nf-core/tools API / lint test documentation to MyST (#1245)
  • Build documentation for the nf-core modules lint tests (#1250)
  • Fix some colours in the nf-core/tools API docs (#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)
  • New pipeline lint test multiqc_config that checks YAML structure instead of basic file contents (#1461)
  • Updates to the GitPod docker image to install the latest version of nf-core/tools