Skip to content

Commit 2117653

Browse files
authored
Merge branch 'dev' into pytest-requirements
2 parents 57bde0f + dc4e8f1 commit 2117653

4 files changed

Lines changed: 27 additions & 8 deletions

File tree

.github/workflows/create-lint-wf.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,13 @@ jobs:
8080
- name: nf-core modules update
8181
run: nf-core --log-file log.txt modules update --dir nf-core-testpipeline --all --no-preview
8282

83+
# Remove TODO statements
84+
- name: remove TODO
85+
run: find nf-core-testpipeline -type f -exec sed -i '/TODO nf-core:/d' {} \;
86+
8387
# Run nf-core linting
8488
- name: nf-core lint
85-
run: nf-core --log-file log.txt lint --dir nf-core-testpipeline --fail-ignored
89+
run: nf-core --log-file log.txt lint --dir nf-core-testpipeline --fail-ignored --fail-warned
8690

8791
# Run the other nf-core commands
8892
- name: nf-core list
@@ -98,7 +102,7 @@ jobs:
98102
run: nf-core --log-file log.txt bump-version --dir nf-core-testpipeline/ 1.1
99103

100104
- name: nf-core lint in release mode
101-
run: nf-core --log-file log.txt lint --dir nf-core-testpipeline --fail-ignored --release
105+
run: nf-core --log-file log.txt lint --dir nf-core-testpipeline --fail-ignored --fail-warned --release
102106

103107
- name: nf-core modules install
104108
run: nf-core --log-file log.txt modules install fastqc --dir nf-core-testpipeline/ --force

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
### General
1414

1515
- Updated the package requirements to prevent defunct installations of nf-core [#1620](https://github.com/nf-core/tools/pull/1620)
16+
- Add `--fail-warned` flag to `nf-core lint` to make warnings fail [#1593](https://github.com/nf-core/tools/pull/1593)
17+
- Add `--fail-warned` flag to pipeline linting workflow [#1593](https://github.com/nf-core/tools/pull/1593)
1618

1719
### Modules
1820

nf_core/__main__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,10 @@ def create(name, description, author, version, no_git, force, outdir):
301301
@click.option("-k", "--key", type=str, metavar="<test>", multiple=True, help="Run only these lint tests")
302302
@click.option("-p", "--show-passed", is_flag=True, help="Show passing tests on the command line")
303303
@click.option("-i", "--fail-ignored", is_flag=True, help="Convert ignored tests to failures")
304+
@click.option("-w", "--fail-warned", is_flag=True, help="Convert warn tests to failures")
304305
@click.option("--markdown", type=str, metavar="<filename>", help="File to write linting results to (Markdown)")
305306
@click.option("--json", type=str, metavar="<filename>", help="File to write linting results to (JSON)")
306-
def lint(dir, release, fix, key, show_passed, fail_ignored, markdown, json):
307+
def lint(dir, release, fix, key, show_passed, fail_ignored, fail_warned, markdown, json):
307308
"""
308309
Check pipeline code against nf-core guidelines.
309310
@@ -325,7 +326,7 @@ def lint(dir, release, fix, key, show_passed, fail_ignored, markdown, json):
325326
# Run the lint tests!
326327
try:
327328
lint_obj, module_lint_obj = nf_core.lint.run_linting(
328-
dir, release, fix, key, show_passed, fail_ignored, markdown, json
329+
dir, release, fix, key, show_passed, fail_ignored, fail_warned, markdown, json
329330
)
330331
if len(lint_obj.failed) + len(module_lint_obj.failed) > 0:
331332
sys.exit(1)

nf_core/lint/__init__.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,15 @@
2929

3030

3131
def run_linting(
32-
pipeline_dir, release_mode=False, fix=(), key=(), show_passed=False, fail_ignored=False, md_fn=None, json_fn=None
32+
pipeline_dir,
33+
release_mode=False,
34+
fix=(),
35+
key=(),
36+
show_passed=False,
37+
fail_ignored=False,
38+
fail_warned=False,
39+
md_fn=None,
40+
json_fn=None,
3341
):
3442
"""Runs all nf-core linting checks on a given Nextflow pipeline project
3543
in either `release` mode or `normal` mode (default). Returns an object
@@ -62,7 +70,7 @@ def run_linting(
6270
# Create the lint object
6371
pipeline_keys = list(set(key).intersection(set(PipelineLint._get_all_lint_tests(release_mode)))) if key else []
6472

65-
lint_obj = PipelineLint(pipeline_dir, release_mode, fix, pipeline_keys, fail_ignored)
73+
lint_obj = PipelineLint(pipeline_dir, release_mode, fix, pipeline_keys, fail_ignored, fail_warned)
6674

6775
# Load the various pipeline configs
6876
lint_obj._load_lint_config()
@@ -167,7 +175,7 @@ class PipelineLint(nf_core.utils.Pipeline):
167175
from .template_strings import template_strings
168176
from .version_consistency import version_consistency
169177

170-
def __init__(self, wf_path, release_mode=False, fix=(), key=(), fail_ignored=False):
178+
def __init__(self, wf_path, release_mode=False, fix=(), key=(), fail_ignored=False, fail_warned=False):
171179
"""Initialise linting object"""
172180

173181
# Initialise the parent object
@@ -179,6 +187,7 @@ def __init__(self, wf_path, release_mode=False, fix=(), key=(), fail_ignored=Fal
179187
self.lint_config = {}
180188
self.release_mode = release_mode
181189
self.fail_ignored = fail_ignored
190+
self.fail_warned = fail_warned
182191
self.failed = []
183192
self.ignored = []
184193
self.fixed = []
@@ -314,7 +323,10 @@ def _lint_pipeline(self):
314323
for test in test_results.get("fixed", []):
315324
self.fixed.append((test_name, test))
316325
for test in test_results.get("warned", []):
317-
self.warned.append((test_name, test))
326+
if self.fail_warned:
327+
self.failed.append((test_name, test))
328+
else:
329+
self.warned.append((test_name, test))
318330
for test in test_results.get("failed", []):
319331
self.failed.append((test_name, test))
320332
if test_results.get("could_fix", False):

0 commit comments

Comments
 (0)