From 059473c2e138aecfb451f2f848265767761d798a Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Fri, 13 Dec 2024 13:21:09 +0100 Subject: [PATCH 01/11] fix pre-commit linting failures --- nf_core/pipeline-template/.gitpod.yml | 2 +- .../subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nf_core/pipeline-template/.gitpod.yml b/nf_core/pipeline-template/.gitpod.yml index c02b93834a..c6a2e40b87 100644 --- a/nf_core/pipeline-template/.gitpod.yml +++ b/nf_core/pipeline-template/.gitpod.yml @@ -3,7 +3,7 @@ tasks: - name: Update Nextflow and setup pre-commit command: | pre-commit install --install-hooks - nextflow self-update {% if code_linters %} + nextflow self-update {%- if code_linters %} vscode: extensions: diff --git a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf index 06692f1dc9..3d540600ba 100644 --- a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf +++ b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf @@ -143,7 +143,7 @@ workflow PIPELINE_COMPLETION { {%- if multiqc %} def multiqc_reports = multiqc_report.toList() {%- endif %} - + // // Completion email and summary // From f6159c99490b7530bf3cbe081c78d71a828482a2 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Fri, 13 Dec 2024 13:29:17 +0100 Subject: [PATCH 02/11] don't run prettier on ro-crate json file --- nf_core/pipeline-template/.prettierignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nf_core/pipeline-template/.prettierignore b/nf_core/pipeline-template/.prettierignore index 7ecc9b61cb..02ba84c006 100644 --- a/nf_core/pipeline-template/.prettierignore +++ b/nf_core/pipeline-template/.prettierignore @@ -16,3 +16,6 @@ testing/ testing* *.pyc bin/ +{%- if rocrate %} +ro-crate-metadata.json +{%- endif %} From 9f61e8584ffc2f7a8417c226c04d8e15fc4dc2a4 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Fri, 13 Dec 2024 13:30:05 +0100 Subject: [PATCH 03/11] run pre-commit from a git repo --- nf_core/pipelines/create/create.py | 8 +++++--- nf_core/pipelines/lint_utils.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index 0e2c683e6f..9c3db544f6 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -266,6 +266,11 @@ def init_pipeline(self): # Init the git repository and make the first commit if not self.no_git: self.git_init_pipeline() + # Run prettier on files + current_dir = Path.cwd() + os.chdir(self.outdir) + run_prettier_on_file([str(f) for f in self.outdir.glob("**/*")]) + os.chdir(current_dir) if self.config.is_nfcore and not self.is_interactive: log.info( @@ -378,9 +383,6 @@ def render_template(self) -> None: yaml.safe_dump(config_yml.model_dump(exclude_none=True), fh) log.debug(f"Dumping pipeline template yml to pipeline config file '{config_fn.name}'") - # Run prettier on files - run_prettier_on_file([str(f) for f in self.outdir.glob("**/*")]) - def fix_linting(self): """ Updates the .nf-core.yml with linting configurations diff --git a/nf_core/pipelines/lint_utils.py b/nf_core/pipelines/lint_utils.py index b4c56c6007..a6b98b1899 100644 --- a/nf_core/pipelines/lint_utils.py +++ b/nf_core/pipelines/lint_utils.py @@ -97,7 +97,7 @@ def run_prettier_on_file(file: Union[Path, str, List[str]]) -> None: all_lines = [line for line in e.stdout.decode().split("\n")] files = "\n".join(all_lines[3:]) log.debug(f"The following files were modified by prettier:\n {files}") - elif e.stderr.decode(): + else: log.warning( "There was an error running the prettier pre-commit hook.\n" f"STDOUT: {e.stdout.decode()}\nSTDERR: {e.stderr.decode()}" From 1fbd0119b561d32dfef7c6cbc618567ff8feb95c Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Fri, 13 Dec 2024 12:44:24 +0000 Subject: [PATCH 04/11] [automated] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c9af42a9a..391467c4de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Template +- Fix pre commit template ([#3358](https://github.com/nf-core/tools/pull/3358)) + ### Download ### Linting From 2b2b4359a9af852e8204d223659ae79b946a4864 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 11:34:30 +0100 Subject: [PATCH 05/11] prettify template and printing .nf-core.yml --- .../pipeline-template/.github/ISSUE_TEMPLATE/bug_report.yml | 1 - nf_core/pipeline-template/README.md | 2 +- nf_core/pipeline-template/nextflow.config | 2 +- nf_core/pipelines/bump_version.py | 4 ++-- nf_core/pipelines/create/create.py | 6 +++--- tests/utils.py | 4 ++-- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/nf_core/pipeline-template/.github/ISSUE_TEMPLATE/bug_report.yml b/nf_core/pipeline-template/.github/ISSUE_TEMPLATE/bug_report.yml index 412f5bd3b3..f3624afc9c 100644 --- a/nf_core/pipeline-template/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/nf_core/pipeline-template/.github/ISSUE_TEMPLATE/bug_report.yml @@ -11,7 +11,6 @@ body: - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) - [{{ name }} pipeline documentation](https://nf-co.re/{{ short_name }}/usage) {%- endif %} - - type: textarea id: description attributes: diff --git a/nf_core/pipeline-template/README.md b/nf_core/pipeline-template/README.md index a8f2e60546..2552a64812 100644 --- a/nf_core/pipeline-template/README.md +++ b/nf_core/pipeline-template/README.md @@ -7,7 +7,7 @@ -{% else %} +{%- else -%} # {{ name }} diff --git a/nf_core/pipeline-template/nextflow.config b/nf_core/pipeline-template/nextflow.config index 9db8f3bfe6..3325af4e06 100644 --- a/nf_core/pipeline-template/nextflow.config +++ b/nf_core/pipeline-template/nextflow.config @@ -306,7 +306,7 @@ validation { command = "nextflow run {{ name }} -profile --input samplesheet.csv --outdir " fullParameter = "help_full" showHiddenParameter = "show_hidden" - {% if is_nfcore -%} + {%- if is_nfcore %} beforeText = """ -\033[2m----------------------------------------------------\033[0m- \033[0;32m,--.\033[0;30m/\033[0;32m,-.\033[0m diff --git a/nf_core/pipelines/bump_version.py b/nf_core/pipelines/bump_version.py index 664d7a22a3..d8346e0861 100644 --- a/nf_core/pipelines/bump_version.py +++ b/nf_core/pipelines/bump_version.py @@ -12,7 +12,7 @@ import nf_core.utils from nf_core.pipelines.rocrate import ROCrate -from nf_core.utils import Pipeline +from nf_core.utils import Pipeline, custom_yaml_dumper log = logging.getLogger(__name__) stderr = rich.console.Console(stderr=True, force_terminal=nf_core.utils.rich_force_colors()) @@ -257,7 +257,7 @@ def update_yaml_file(fn: Path, patterns: List[Tuple[str, str]], yaml_key: List[s if new_value != current_value: target[last_key] = new_value with open(fn, "w") as file: - yaml.dump(yaml_content, file) + yaml.dump(yaml_content, file, Dumper=custom_yaml_dumper()) log.info(f"Updated version in YAML file '{fn}'") log_change(str(current_value), str(new_value)) except KeyError as e: diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index 9c3db544f6..62df453044 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -22,7 +22,7 @@ from nf_core.pipelines.create_logo import create_logo from nf_core.pipelines.lint_utils import run_prettier_on_file from nf_core.pipelines.rocrate import ROCrate -from nf_core.utils import NFCoreTemplateConfig, NFCoreYamlLintConfig +from nf_core.utils import NFCoreTemplateConfig, NFCoreYamlLintConfig, custom_yaml_dumper log = logging.getLogger(__name__) @@ -380,7 +380,7 @@ def render_template(self) -> None: if config_fn is not None and config_yml is not None: with open(str(config_fn), "w") as fh: config_yml.template = NFCoreTemplateConfig(**self.config.model_dump(exclude_none=True)) - yaml.safe_dump(config_yml.model_dump(exclude_none=True), fh) + yaml.dump(config_yml.model_dump(exclude_none=True), fh, Dumper=custom_yaml_dumper()) log.debug(f"Dumping pipeline template yml to pipeline config file '{config_fn.name}'") def fix_linting(self): @@ -410,7 +410,7 @@ def fix_linting(self): if config_fn is not None and nf_core_yml is not None: nf_core_yml.lint = NFCoreYamlLintConfig(**lint_config) with open(self.outdir / config_fn, "w") as fh: - yaml.dump(nf_core_yml.model_dump(exclude_none=True), fh, default_flow_style=False, sort_keys=False) + yaml.dump(nf_core_yml.model_dump(exclude_none=True), fh, Dumper=custom_yaml_dumper()) def make_pipeline_logo(self): """Fetch a logo for the new pipeline from the nf-core website""" diff --git a/tests/utils.py b/tests/utils.py index 022b91227f..4c1c620adb 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -14,7 +14,7 @@ import nf_core.modules import nf_core.pipelines.create.create from nf_core import __version__ -from nf_core.utils import NFCoreTemplateConfig, NFCoreYamlConfig +from nf_core.utils import NFCoreTemplateConfig, NFCoreYamlConfig, custom_yaml_dumper TEST_DATA_DIR = Path(__file__).parent / "data" OLD_TRIMGALORE_SHA = "9b7a3bdefeaad5d42324aa7dd50f87bea1b04386" @@ -136,7 +136,7 @@ def create_tmp_pipeline(no_git: bool = False) -> Tuple[Path, Path, str, Path]: bump_version=None, ) with open(str(Path(pipeline_dir, ".nf-core.yml")), "w") as fh: - yaml.dump(nf_core_yml.model_dump(), fh) + yaml.dump(nf_core_yml.model_dump(), fh, Dumper=custom_yaml_dumper()) nf_core.pipelines.create.create.PipelineCreate( pipeline_name, "it is mine", "me", no_git=no_git, outdir=pipeline_dir, force=True From 709e67ff4e395419b3de91dcf1b9b242f7689241 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 11:46:35 +0100 Subject: [PATCH 06/11] Remove Dumpler from ruamel yaml --- nf_core/pipelines/bump_version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nf_core/pipelines/bump_version.py b/nf_core/pipelines/bump_version.py index d8346e0861..664d7a22a3 100644 --- a/nf_core/pipelines/bump_version.py +++ b/nf_core/pipelines/bump_version.py @@ -12,7 +12,7 @@ import nf_core.utils from nf_core.pipelines.rocrate import ROCrate -from nf_core.utils import Pipeline, custom_yaml_dumper +from nf_core.utils import Pipeline log = logging.getLogger(__name__) stderr = rich.console.Console(stderr=True, force_terminal=nf_core.utils.rich_force_colors()) @@ -257,7 +257,7 @@ def update_yaml_file(fn: Path, patterns: List[Tuple[str, str]], yaml_key: List[s if new_value != current_value: target[last_key] = new_value with open(fn, "w") as file: - yaml.dump(yaml_content, file, Dumper=custom_yaml_dumper()) + yaml.dump(yaml_content, file) log.info(f"Updated version in YAML file '{fn}'") log_change(str(current_value), str(new_value)) except KeyError as e: From ac703bfed375f14c1c00798a9eba7260b0c57355 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 11:58:43 +0100 Subject: [PATCH 07/11] don't create rocrate file when we skip the feature --- nf_core/pipelines/create/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index 62df453044..1c1821793c 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -367,7 +367,7 @@ def render_template(self) -> None: # Make a logo and save it, if it is a nf-core pipeline self.make_pipeline_logo() - if self.config.skip_features is None or "ro-crate" not in self.config.skip_features: + if self.config.skip_features is None or "rocrate" not in self.config.skip_features: # Create the RO-Crate metadata file rocrate_obj = ROCrate(self.outdir) rocrate_obj.create_rocrate(json_path=self.outdir / "ro-crate-metadata.json") From 13e553fca62efd06c810363625787396fe0e387c Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 12:08:20 +0100 Subject: [PATCH 08/11] fix more prettier modifications form the template --- nf_core/pipeline-template/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/nf_core/pipeline-template/README.md b/nf_core/pipeline-template/README.md index 2552a64812..4cd41de368 100644 --- a/nf_core/pipeline-template/README.md +++ b/nf_core/pipeline-template/README.md @@ -48,13 +48,13 @@ workflows use the "tube map" design for that. See https://nf-co.re/docs/contributing/design_guidelines#examples for examples. --> -{% if fastqc %}1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)){% endif %} -{% if multiqc %}2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)){% endif %} +{%- if fastqc %}1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)){% endif %} +{%- if multiqc %}2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)){% endif %} ## Usage > [!NOTE] -> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. {% if test_config %}Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.{% endif %} +> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. {%- if test_config %}Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.{% endif %} -{% if citations %} +{%- if citations %} An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. -{% endif %} +{%- endif %} + {% if is_nfcore -%} You can cite the `nf-core` publication as follows: From d19e3e071e7a792354221664f0b0b0ba4e409625 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 12:11:49 +0100 Subject: [PATCH 09/11] don't try running pre-commit if code-linters or github are not used in the template --- nf_core/pipeline-template/nextflow_schema.json | 4 ++-- nf_core/pipelines/create/create.py | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/nf_core/pipeline-template/nextflow_schema.json b/nf_core/pipeline-template/nextflow_schema.json index 97359a1f93..e2aac58cc0 100644 --- a/nf_core/pipeline-template/nextflow_schema.json +++ b/nf_core/pipeline-template/nextflow_schema.json @@ -243,10 +243,10 @@ { "$ref": "#/$defs/input_output_options" }, - {% if igenomes %}{ + {%- if igenomes %}{ "$ref": "#/$defs/reference_genome_options" },{% endif %} - {% if nf_core_configs %}{ + {%- if nf_core_configs %}{ "$ref": "#/$defs/institutional_config_options" },{% endif %} { diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index 1c1821793c..bcc0fbd6b5 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -267,10 +267,15 @@ def init_pipeline(self): if not self.no_git: self.git_init_pipeline() # Run prettier on files - current_dir = Path.cwd() - os.chdir(self.outdir) - run_prettier_on_file([str(f) for f in self.outdir.glob("**/*")]) - os.chdir(current_dir) + if ( + self.config.skip_features is None + or "code_linters" not in self.config.skip_features + or "github" not in self.config.skip_features + ): + current_dir = Path.cwd() + os.chdir(self.outdir) + run_prettier_on_file([str(f) for f in self.outdir.glob("**/*")]) + os.chdir(current_dir) if self.config.is_nfcore and not self.is_interactive: log.info( From 2c78c5ebc5fec773649e1f00ec5cc71f4c0f06a0 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 12:28:59 +0100 Subject: [PATCH 10/11] more template prittier fixing --- nf_core/pipeline-template/nextflow_schema.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nf_core/pipeline-template/nextflow_schema.json b/nf_core/pipeline-template/nextflow_schema.json index e2aac58cc0..c28929b47d 100644 --- a/nf_core/pipeline-template/nextflow_schema.json +++ b/nf_core/pipeline-template/nextflow_schema.json @@ -243,10 +243,12 @@ { "$ref": "#/$defs/input_output_options" }, - {%- if igenomes %}{ + {%- if igenomes %} + { "$ref": "#/$defs/reference_genome_options" },{% endif %} - {%- if nf_core_configs %}{ + {%- if nf_core_configs %} + { "$ref": "#/$defs/institutional_config_options" },{% endif %} { From d44bcdf7e2065bd3ac281b27bcb33800e9af602d Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 16 Dec 2024 13:06:36 +0100 Subject: [PATCH 11/11] more prettier fixes --- nf_core/pipeline-template/CITATIONS.md | 2 +- nf_core/pipeline-template/docs/output.md | 11 +++++------ nf_core/pipeline-template/docs/usage.md | 2 +- nf_core/pipelines/create/create.py | 14 +++++++++----- nf_core/pipelines/create/template_features.yml | 6 ++++++ 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/nf_core/pipeline-template/CITATIONS.md b/nf_core/pipeline-template/CITATIONS.md index 16da9a4207..c355fd6129 100644 --- a/nf_core/pipeline-template/CITATIONS.md +++ b/nf_core/pipeline-template/CITATIONS.md @@ -18,7 +18,7 @@ {%- endif %} -{% if multiqc %}- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) +{%- if multiqc %}- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. diff --git a/nf_core/pipeline-template/docs/output.md b/nf_core/pipeline-template/docs/output.md index 83d5d23fe3..a9be6620e1 100644 --- a/nf_core/pipeline-template/docs/output.md +++ b/nf_core/pipeline-template/docs/output.md @@ -2,7 +2,7 @@ ## Introduction -This document describes the output produced by the pipeline. {% if multiqc %}Most of the plots are taken from the MultiQC report, which summarises results at the end of the pipeline.{% endif %} +This document describes the output produced by the pipeline.{% if multiqc %} Most of the plots are taken from the MultiQC report, which summarises results at the end of the pipeline.{% endif %} The directories listed below will be created in the results directory after the pipeline has finished. All paths are relative to the top-level results directory. @@ -14,9 +14,8 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d {% if fastqc -%} -- [FastQC](#fastqc) - Raw read QC - {%- endif %} - {%- if multiqc %} +- [FastQC](#fastqc) - Raw read QC{% endif %} + {%- if multiqc -%} - [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline {%- endif %} - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution @@ -35,7 +34,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d [FastQC](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/) gives general quality metrics about your sequenced reads. It provides information about the quality score distribution across your reads, per base sequence content (%A/T/G/C), adapter contamination and overrepresented sequences. For further reading and documentation see the [FastQC help pages](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/). -{%- endif %} +{%- endif -%} {% if multiqc -%} @@ -54,7 +53,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d [MultiQC](http://multiqc.info) is a visualization tool that generates a single HTML report summarising all samples in your project. Most of the pipeline QC results are visualised in the report and further statistics are available in the report data directory. Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQC. The pipeline has special steps which also allow the software versions to be reported in the MultiQC output for future traceability. For more information about how to use MultiQC reports, see . -{%- endif %} +{%- endif -%} ### Pipeline information diff --git a/nf_core/pipeline-template/docs/usage.md b/nf_core/pipeline-template/docs/usage.md index fb7f8557c1..bbc8a828c4 100644 --- a/nf_core/pipeline-template/docs/usage.md +++ b/nf_core/pipeline-template/docs/usage.md @@ -115,7 +115,7 @@ It is a good idea to specify the pipeline version when running the pipeline on y First, go to the [{{ name }} releases page](https://github.com/{{ name }}/releases) and find the latest pipeline version - numeric only (eg. `1.3.1`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.3.1`. Of course, you can switch to another version by changing the number after the `-r` flag. -This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. {% if multiqc %}For example, at the bottom of the MultiQC reports.{% endif %} +This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future.{% if multiqc %} For example, at the bottom of the MultiQC reports.{% endif %} To further assist in reproducibility, you can use share and reuse [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. diff --git a/nf_core/pipelines/create/create.py b/nf_core/pipelines/create/create.py index bcc0fbd6b5..4f90ca17f9 100644 --- a/nf_core/pipelines/create/create.py +++ b/nf_core/pipelines/create/create.py @@ -267,10 +267,8 @@ def init_pipeline(self): if not self.no_git: self.git_init_pipeline() # Run prettier on files - if ( - self.config.skip_features is None - or "code_linters" not in self.config.skip_features - or "github" not in self.config.skip_features + if self.config.skip_features is None or not ( + "code_linters" in self.config.skip_features or "github" in self.config.skip_features ): current_dir = Path.cwd() os.chdir(self.outdir) @@ -415,7 +413,13 @@ def fix_linting(self): if config_fn is not None and nf_core_yml is not None: nf_core_yml.lint = NFCoreYamlLintConfig(**lint_config) with open(self.outdir / config_fn, "w") as fh: - yaml.dump(nf_core_yml.model_dump(exclude_none=True), fh, Dumper=custom_yaml_dumper()) + yaml.dump( + nf_core_yml.model_dump(exclude_none=True), + fh, + sort_keys=False, + default_flow_style=False, + Dumper=custom_yaml_dumper(), + ) def make_pipeline_logo(self): """Fetch a logo for the new pipeline from the nf-core website""" diff --git a/nf_core/pipelines/create/template_features.yml b/nf_core/pipelines/create/template_features.yml index 9841879e83..fa24debffe 100644 --- a/nf_core/pipelines/create/template_features.yml +++ b/nf_core/pipelines/create/template_features.yml @@ -148,6 +148,10 @@ is_nfcore: - "docs/images/nf-core-{{short_name}}_logo_light.png" - "docs/images/nf-core-{{short_name}}_logo_dark.png" - ".github/ISSUE_TEMPLATE/bug_report.yml" + - ".github/CONTRIBUTING.md" + - ".github/PULL_REQUEST_TEMPLATE.md" + - "assets/email_template.txt" + - "docs/README.md" nextflow_config: - "manifest.name" - "manifest.homePage" @@ -445,6 +449,8 @@ rocrate: linting: files_warn: - "ro-crate-metadata.json" + files_unchanged: + - ".prettierignore" vscode: skippable_paths: - ".vscode"