From e71334d943a841ca42c222cfd7101a164b59fbeb Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 11:40:17 -0600 Subject: [PATCH 1/9] style: Add sort-simple-yaml This fixes an issue with the Seqera containers naming. The Seqera containers site doesn't care about the context of what module the image is for. It just sorts the dependencies. This avoids having multiple containers with a bunch of different names. Should probably handle that on the wave-cli side. --- .pre-commit-config.yaml | 5 +++++ modules/nf-core/ensemblvep/environment.yml | 2 -- modules/nf-core/gatk4/variantstotable/environment.yml | 2 +- modules/nf-core/regtools/junctionsextract/environment.yml | 2 ++ modules/nf-core/snpeff/environment.yml | 5 +++-- modules/nf-core/trgt/merge/environment.yml | 2 ++ modules/nf-core/trgt/plot/environment.yml | 2 ++ 7 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b6517edd7421..7dc2c2a56994 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,3 +30,8 @@ repos: hooks: - id: editorconfig-checker alias: ec + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: sort-simple-yaml + files: ^.*/environment\.yml diff --git a/modules/nf-core/ensemblvep/environment.yml b/modules/nf-core/ensemblvep/environment.yml index e94bfeb2cb08..7818cfa6bd48 100644 --- a/modules/nf-core/ensemblvep/environment.yml +++ b/modules/nf-core/ensemblvep/environment.yml @@ -1,5 +1,3 @@ -# You can use this file to create a conda environment for this module: -# conda env create -f environment.yml channels: - conda-forge - bioconda diff --git a/modules/nf-core/gatk4/variantstotable/environment.yml b/modules/nf-core/gatk4/variantstotable/environment.yml index d04a469c944d..0fab9f885c54 100644 --- a/modules/nf-core/gatk4/variantstotable/environment.yml +++ b/modules/nf-core/gatk4/variantstotable/environment.yml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json + --- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda diff --git a/modules/nf-core/regtools/junctionsextract/environment.yml b/modules/nf-core/regtools/junctionsextract/environment.yml index 2b615890f84d..c210e4c0a048 100644 --- a/modules/nf-core/regtools/junctionsextract/environment.yml +++ b/modules/nf-core/regtools/junctionsextract/environment.yml @@ -1,4 +1,6 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json + +--- channels: - conda-forge - bioconda diff --git a/modules/nf-core/snpeff/environment.yml b/modules/nf-core/snpeff/environment.yml index 6ac55ab765af..4c7a46b77ffa 100644 --- a/modules/nf-core/snpeff/environment.yml +++ b/modules/nf-core/snpeff/environment.yml @@ -1,5 +1,6 @@ -# You can use this file to create a conda environment for this module: -# conda env create -f environment.yml +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json + +--- channels: - conda-forge - bioconda diff --git a/modules/nf-core/trgt/merge/environment.yml b/modules/nf-core/trgt/merge/environment.yml index 614dc872b7b0..6f2e029e311f 100644 --- a/modules/nf-core/trgt/merge/environment.yml +++ b/modules/nf-core/trgt/merge/environment.yml @@ -1,4 +1,6 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json + +--- channels: - conda-forge - bioconda diff --git a/modules/nf-core/trgt/plot/environment.yml b/modules/nf-core/trgt/plot/environment.yml index 614dc872b7b0..6f2e029e311f 100644 --- a/modules/nf-core/trgt/plot/environment.yml +++ b/modules/nf-core/trgt/plot/environment.yml @@ -1,4 +1,6 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json + +--- channels: - conda-forge - bioconda From 372c260506ae5f91562697b296a59916380e7b1a Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 12:21:12 -0600 Subject: [PATCH 2/9] fix: This isn't working --- .pre-commit-config.yaml | 10 +++++----- modules/nf-core/bowtie/align/environment.yml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7dc2c2a56994..66a2fbb869cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,6 +17,11 @@ repos: files: ^subworkflows/nf-core/.*/meta\.yml$ args: ["--schemafile", "subworkflows/yaml-schema.json"] - id: check-github-workflows + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: sort-simple-yaml + files: ^modules/nf-core/.*/environment\.yml$ # use ruff for python files - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.7.3 @@ -30,8 +35,3 @@ repos: hooks: - id: editorconfig-checker alias: ec - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 - hooks: - - id: sort-simple-yaml - files: ^.*/environment\.yml diff --git a/modules/nf-core/bowtie/align/environment.yml b/modules/nf-core/bowtie/align/environment.yml index 61bd69c2c7a8..b5a02be1cc8b 100644 --- a/modules/nf-core/bowtie/align/environment.yml +++ b/modules/nf-core/bowtie/align/environment.yml @@ -2,7 +2,7 @@ channels: - conda-forge - bioconda dependencies: - # renovate: datasource=conda depName=bioconda/bowtie - - bioconda::bowtie=1.3.1 # renovate: datasource=conda depName=bioconda/samtools - bioconda::samtools=1.20 + # renovate: datasource=conda depName=bioconda/bowtie + - bioconda::bowtie=1.3.1 From 3d87140b1183626c3c8131f969672e94961c0155 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:23:59 -0600 Subject: [PATCH 3/9] style: Copy conda env sorter script hook https://github.com/MarcoGorelli/madforhooks has been archived so I just copied this into the repo to make it simple to use --- .github/scripts/conda_env_sorter.py | 49 +++++++++++++++++++++++++++++ .pre-commit-config.yaml | 12 ++++--- 2 files changed, 57 insertions(+), 4 deletions(-) create mode 100755 .github/scripts/conda_env_sorter.py diff --git a/.github/scripts/conda_env_sorter.py b/.github/scripts/conda_env_sorter.py new file mode 100755 index 000000000000..0ad295ea9d05 --- /dev/null +++ b/.github/scripts/conda_env_sorter.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "ruamel.yaml", +# ] +# /// + +"""Sort dependencies in conda environment files.""" + +import argparse +from pathlib import Path +from typing import Optional, Sequence + +import ruamel.yaml + +yaml = ruamel.yaml.YAML() + + +def main(argv: Optional[Sequence[str]] = None) -> None: + """Sort dependencies in conda environment files.""" + parser = argparse.ArgumentParser() + parser.add_argument("paths", nargs="*", type=Path) + args = parser.parse_args(argv) + for path in args.paths: + doc = yaml.load(path) + dicts = [] + others = [] + + for term in doc["dependencies"]: + if isinstance(term, dict): + dicts.append(term) + else: + others.append(term) + others.sort(key=str) + for dict_term in dicts: + for value in dict_term.values(): + if isinstance(value, list): + value.sort(key=str) + dicts.sort(key=str) + doc["dependencies"].clear() + doc["dependencies"].extend(others) + doc["dependencies"].extend(dicts) + + yaml.dump(doc, path) + + +if __name__ == "__main__": + main() diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 66a2fbb869cf..b1bead87e7b2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,11 +17,15 @@ repos: files: ^subworkflows/nf-core/.*/meta\.yml$ args: ["--schemafile", "subworkflows/yaml-schema.json"] - id: check-github-workflows - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + - repo: local hooks: - - id: sort-simple-yaml - files: ^modules/nf-core/.*/environment\.yml$ + - id: conda-env-sorter + name: Sort dependencies in conda environment files. + entry: ./.github/scripts/conda_env_sorter.py + language: python + files: environment + types: [yaml] + additional_dependencies: ["ruamel.yaml"] # use ruff for python files - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.7.3 From 35ada8c8e1b5d91dd7fb62272c7a2bc60e8ccee5 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:32:02 -0600 Subject: [PATCH 4/9] chore: Remove empty environment yamls --- modules/nf-core/basicpy/environment.yml | 3 --- modules/nf-core/cellrangeratac/count/environment.yml | 3 --- modules/nf-core/cellrangeratac/mkfastq/environment.yml | 3 --- modules/nf-core/cellrangeratac/mkref/environment.yml | 3 --- modules/nf-core/coreograph/environment.yml | 3 --- modules/nf-core/fastk/histex/environment.yml | 3 --- modules/nf-core/fastk/merge/environment.yml | 3 --- modules/nf-core/fcs/fcsgx/environment.yml | 3 --- modules/nf-core/genescopefk/environment.yml | 3 --- modules/nf-core/ilastik/multicut/environment.yml | 3 --- modules/nf-core/ilastik/pixelclassification/environment.yml | 3 --- modules/nf-core/merquryfk/katcomp/environment.yml | 3 --- modules/nf-core/merquryfk/katgc/environment.yml | 3 --- modules/nf-core/universc/environment.yml | 3 --- 14 files changed, 42 deletions(-) delete mode 100644 modules/nf-core/basicpy/environment.yml delete mode 100644 modules/nf-core/cellrangeratac/count/environment.yml delete mode 100644 modules/nf-core/cellrangeratac/mkfastq/environment.yml delete mode 100644 modules/nf-core/cellrangeratac/mkref/environment.yml delete mode 100644 modules/nf-core/coreograph/environment.yml delete mode 100644 modules/nf-core/fastk/histex/environment.yml delete mode 100644 modules/nf-core/fastk/merge/environment.yml delete mode 100644 modules/nf-core/fcs/fcsgx/environment.yml delete mode 100644 modules/nf-core/genescopefk/environment.yml delete mode 100644 modules/nf-core/ilastik/multicut/environment.yml delete mode 100644 modules/nf-core/ilastik/pixelclassification/environment.yml delete mode 100644 modules/nf-core/merquryfk/katcomp/environment.yml delete mode 100644 modules/nf-core/merquryfk/katgc/environment.yml delete mode 100644 modules/nf-core/universc/environment.yml diff --git a/modules/nf-core/basicpy/environment.yml b/modules/nf-core/basicpy/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/basicpy/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/cellrangeratac/count/environment.yml b/modules/nf-core/cellrangeratac/count/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/cellrangeratac/count/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/cellrangeratac/mkfastq/environment.yml b/modules/nf-core/cellrangeratac/mkfastq/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/cellrangeratac/mkfastq/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/cellrangeratac/mkref/environment.yml b/modules/nf-core/cellrangeratac/mkref/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/cellrangeratac/mkref/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/coreograph/environment.yml b/modules/nf-core/coreograph/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/coreograph/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/fastk/histex/environment.yml b/modules/nf-core/fastk/histex/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/fastk/histex/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/fastk/merge/environment.yml b/modules/nf-core/fastk/merge/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/fastk/merge/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/fcs/fcsgx/environment.yml b/modules/nf-core/fcs/fcsgx/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/fcs/fcsgx/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/genescopefk/environment.yml b/modules/nf-core/genescopefk/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/genescopefk/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/ilastik/multicut/environment.yml b/modules/nf-core/ilastik/multicut/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/ilastik/multicut/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/ilastik/pixelclassification/environment.yml b/modules/nf-core/ilastik/pixelclassification/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/ilastik/pixelclassification/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/merquryfk/katcomp/environment.yml b/modules/nf-core/merquryfk/katcomp/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/merquryfk/katcomp/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/merquryfk/katgc/environment.yml b/modules/nf-core/merquryfk/katgc/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/merquryfk/katgc/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/universc/environment.yml b/modules/nf-core/universc/environment.yml deleted file mode 100644 index 3cebeff05bfc..000000000000 --- a/modules/nf-core/universc/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda From 1e88c21e285eba530f999f02a47e74ba536472d5 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:34:49 -0600 Subject: [PATCH 5/9] chore: Add missing environment.yml --- modules/nf-core/hlala/preparegraph/environment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nf-core/hlala/preparegraph/environment.yml b/modules/nf-core/hlala/preparegraph/environment.yml index 3cebeff05bfc..3e7bf59bb496 100644 --- a/modules/nf-core/hlala/preparegraph/environment.yml +++ b/modules/nf-core/hlala/preparegraph/environment.yml @@ -1,3 +1,5 @@ channels: - conda-forge - bioconda +dependencies: + - bioconda::hla-la=1.0.4 From 5ef0c996486f7b4194c3dbbec04c69ccb8ec8a09 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:43:05 -0600 Subject: [PATCH 6/9] style: Run conda-env-sorter, then prettier conda-env-sorter doesn't make the files pretty --- .pre-commit-config.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b1bead87e7b2..3ad4957f8ea7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,13 @@ repos: + - repo: local + hooks: + - id: conda-env-sorter + name: Sort dependencies in conda environment files. + entry: ./.github/scripts/conda_env_sorter.py + language: python + files: environment + types: [yaml] + additional_dependencies: ["ruamel.yaml"] - repo: https://github.com/pre-commit/mirrors-prettier rev: "v3.1.0" hooks: @@ -17,15 +26,6 @@ repos: files: ^subworkflows/nf-core/.*/meta\.yml$ args: ["--schemafile", "subworkflows/yaml-schema.json"] - id: check-github-workflows - - repo: local - hooks: - - id: conda-env-sorter - name: Sort dependencies in conda environment files. - entry: ./.github/scripts/conda_env_sorter.py - language: python - files: environment - types: [yaml] - additional_dependencies: ["ruamel.yaml"] # use ruff for python files - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.7.3 From df36cac5d9bd099f63c5287328485f6256329ce8 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:52:00 -0600 Subject: [PATCH 7/9] style: Check for yaml-language-server in environment.ymls --- .github/scripts/conda_env_sorter.py | 24 +++++++++++++++++-- .../regtools/junctionsextract/environment.yml | 5 +--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.github/scripts/conda_env_sorter.py b/.github/scripts/conda_env_sorter.py index 0ad295ea9d05..7baa37965100 100755 --- a/.github/scripts/conda_env_sorter.py +++ b/.github/scripts/conda_env_sorter.py @@ -23,7 +23,25 @@ def main(argv: Optional[Sequence[str]] = None) -> None: parser.add_argument("paths", nargs="*", type=Path) args = parser.parse_args(argv) for path in args.paths: - doc = yaml.load(path) + with path.open() as f: + lines = f.readlines() + + # Define the schema lines to be added if missing + schema_lines = [ + "---\n", + "# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json\n", + ] + + # Check if the first two lines match the expected schema lines + if lines[:2] == schema_lines: + header = lines[:2] + content = lines[2:] + else: + # Add schema lines if they are missing + header = schema_lines + content = lines + + doc = yaml.load("".join(content)) dicts = [] others = [] @@ -42,7 +60,9 @@ def main(argv: Optional[Sequence[str]] = None) -> None: doc["dependencies"].extend(others) doc["dependencies"].extend(dicts) - yaml.dump(doc, path) + with path.open("w") as f: + f.writelines(header) + yaml.dump(doc, f) if __name__ == "__main__": diff --git a/modules/nf-core/regtools/junctionsextract/environment.yml b/modules/nf-core/regtools/junctionsextract/environment.yml index c210e4c0a048..d6cbfc1e9826 100644 --- a/modules/nf-core/regtools/junctionsextract/environment.yml +++ b/modules/nf-core/regtools/junctionsextract/environment.yml @@ -1,8 +1,5 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json - ---- channels: - conda-forge - bioconda dependencies: - - "bioconda::regtools=1.0.0" + - bioconda::regtools=1.0.0 From ce2aab5f85deb06a1c51d58e5e47c2a887fcdfbb Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 13:54:02 -0600 Subject: [PATCH 8/9] style: Have conda_env_sorter use 2 spaces --- .github/scripts/conda_env_sorter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/scripts/conda_env_sorter.py b/.github/scripts/conda_env_sorter.py index 7baa37965100..6c42e65f0cd7 100755 --- a/.github/scripts/conda_env_sorter.py +++ b/.github/scripts/conda_env_sorter.py @@ -15,6 +15,7 @@ import ruamel.yaml yaml = ruamel.yaml.YAML() +yaml.indent(mapping=2, sequence=2, offset=2) # Set indentation to 2 spaces def main(argv: Optional[Sequence[str]] = None) -> None: From 8e4537e40554ae77da23d4ed290be1362fa8a611 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 25 Nov 2024 19:40:35 -0600 Subject: [PATCH 9/9] style: Check version snapshot --- .github/scripts/check_version_snapshot.py | 39 +++++++++++++++++++++++ .pre-commit-config.yaml | 9 ++++++ 2 files changed, 48 insertions(+) create mode 100755 .github/scripts/check_version_snapshot.py diff --git a/.github/scripts/check_version_snapshot.py b/.github/scripts/check_version_snapshot.py new file mode 100755 index 000000000000..85abb816418c --- /dev/null +++ b/.github/scripts/check_version_snapshot.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# /// script +# requires-python = ">=3.10" +# dependencies = [] +# /// + +"""Check that versions are captured not hashed.""" + +import argparse +import re +from pathlib import Path +from typing import Optional, Sequence + + +def check_snapshotting(lines: list[str], path: Path) -> None: + """Check each line for proper snapshotting.""" + good_pattern = re.compile( + r'snapshot\(path\(process\.out\.versions\.get\(0\)\)\.yaml\)\.match\("versions"\)|path\(process\.out\.versions\.get\(0\)\)\.yaml' + ) + bad_pattern = re.compile(r"process\.out\.versions|snapshot\(process\.out\)\.match\(\)") + + for line_number, line in enumerate(lines, start=1): + if bad_pattern.search(line) and not good_pattern.search(line): + print(f"Improper snapshotting in {path} at line {line_number}: {line.strip()}") + + +def main(argv: Optional[Sequence[str]] = None) -> None: + """Check that versions are captured not hashed.""" + parser = argparse.ArgumentParser() + parser.add_argument("paths", nargs="*", type=Path) + args = parser.parse_args(argv) + for path in args.paths: + with path.open() as f: + lines = f.readlines() + check_snapshotting(lines, path) + + +if __name__ == "__main__": + main() diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3ad4957f8ea7..c6d913aba53c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,15 @@ repos: files: environment types: [yaml] additional_dependencies: ["ruamel.yaml"] + - repo: local + hooks: + - id: check-version-snapshot + name: Versions are captured not hashed + entry: ./.github/scripts/check_version_snapshot.py + language: python + files: \.nf\.test$ + types: [file] + additional_dependencies: [] - repo: https://github.com/pre-commit/mirrors-prettier rev: "v3.1.0" hooks: