From 6b209f09da0ee1d9541dadde73d9cd9e3589a126 Mon Sep 17 00:00:00 2001 From: Andrew Frantz Date: Tue, 25 Jun 2024 10:01:04 -0400 Subject: [PATCH] feat: LineWidth rule (#99) --- Arena.toml | 525 ++++++++++++++++++ Gauntlet.toml | 2 +- wdl-lint/CHANGELOG.md | 1 + wdl-lint/RULES.md | 2 + wdl-lint/src/lib.rs | 1 + wdl-lint/src/rules.rs | 2 + wdl-lint/src/rules/line_width.rs | 149 +++++ .../tests/lints/double-quotes/source.errors | 20 +- wdl-lint/tests/lints/double-quotes/source.wdl | 8 +- .../lints/matching-param-meta/source.errors | 24 +- .../lints/matching-param-meta/source.wdl | 3 +- 11 files changed, 714 insertions(+), 23 deletions(-) create mode 100644 wdl-lint/src/rules/line_width.rs diff --git a/Arena.toml b/Arena.toml index a06052e3..2e159a0e 100644 --- a/Arena.toml +++ b/Arena.toml @@ -30,11 +30,21 @@ document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" message = "ww-fastq-to-cram.wdl:134:6: warning[SnakeCase]: task name `ValidateCram` is not snake_case" permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L134" +[[diagnostics]] +document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" +message = "ww-fastq-to-cram.wdl:14:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L14" + [[diagnostics]] document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" message = "ww-fastq-to-cram.wdl:165:5: note[MatchingParameterMeta]: task `ValidateCram` has an extraneous parameter metadata key named `validation`" permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L165" +[[diagnostics]] +document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" +message = "ww-fastq-to-cram.wdl:16:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L16" + [[diagnostics]] document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" message = "ww-fastq-to-cram.wdl:170:6: note[MissingMetas]: task `MergeBamsToCram` is missing a `meta` section" @@ -75,6 +85,21 @@ document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" message = "ww-fastq-to-cram.wdl:2:1: note[PreambleWhitespace]: expected a blank line after the version statement" permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L2" +[[diagnostics]] +document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" +message = "ww-fastq-to-cram.wdl:34:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L34" + +[[diagnostics]] +document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" +message = "ww-fastq-to-cram.wdl:35:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L35" + +[[diagnostics]] +document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" +message = "ww-fastq-to-cram.wdl:48:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-fastq-to-cram/blob/7dd6c4c7c8c9fc6dcd4eb5ff8f3262cd26d5e7cc/ww-fastq-to-cram.wdl/#L48" + [[diagnostics]] document = "getwilds/ww-fastq-to-cram:/ww-fastq-to-cram.wdl" message = "ww-fastq-to-cram.wdl:57:13: warning[Whitespace]: line contains trailing whitespace" @@ -160,6 +185,11 @@ document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" message = "ww-star-deseq2.wdl:159:6: warning[SnakeCase]: task name `STARalignTwoPass` is not snake_case" permalink = "https://github.com/getwilds/ww-star-deseq2/blob/3de83fa91db1b2d1b0d91dfc20e3ca71303c8d15/ww-star-deseq2.wdl/#L159" +[[diagnostics]] +document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" +message = "ww-star-deseq2.wdl:183:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-star-deseq2/blob/3de83fa91db1b2d1b0d91dfc20e3ca71303c8d15/ww-star-deseq2.wdl/#L183" + [[diagnostics]] document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" message = "ww-star-deseq2.wdl:192:10: warning[SnakeCase]: output name `geneCounts` is not snake_case" @@ -205,6 +235,11 @@ document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" message = "ww-star-deseq2.wdl:218:5: note[MatchingParameterMeta]: task `STARalignTwoPass` has an extraneous parameter metadata key named `SJout`" permalink = "https://github.com/getwilds/ww-star-deseq2/blob/3de83fa91db1b2d1b0d91dfc20e3ca71303c8d15/ww-star-deseq2.wdl/#L218" +[[diagnostics]] +document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" +message = "ww-star-deseq2.wdl:224:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-star-deseq2/blob/3de83fa91db1b2d1b0d91dfc20e3ca71303c8d15/ww-star-deseq2.wdl/#L224" + [[diagnostics]] document = "getwilds/ww-star-deseq2:/ww-star-deseq2.wdl" message = "ww-star-deseq2.wdl:225:6: note[MissingMetas]: task `RNASeQC` is missing a `meta` section" @@ -430,6 +465,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:262:6: note[MissingMetas]: task `annovar` is missing both meta and parameter_meta sections" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L262" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:282:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L282" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:298:6: note[MissingMetas]: task `ApplyBaseRecalibrator` is missing both meta and parameter_meta sections" @@ -470,6 +510,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:306:17: warning[SnakeCase]: input name `known_indels_sites_VCFs` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L306" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:336:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L336" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:342:10: warning[SnakeCase]: output name `sortOrder` is not snake_case" @@ -520,6 +565,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:409:10: warning[SnakeCase]: output name `meanQC` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L409" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:40:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L40" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:420:6: note[MissingMetas]: task `BwaMem` is missing both meta and parameter_meta sections" @@ -530,6 +580,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:420:6: warning[SnakeCase]: task name `BwaMem` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L420" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:441:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L441" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:456:6: note[MissingMetas]: task `CollectHsMetrics` is missing both meta and parameter_meta sections" @@ -600,6 +655,16 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:49:61: warning[Whitespace]: line contains trailing whitespace" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L49" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:4:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L4" + +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:503:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L503" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:507:10: warning[SnakeCase]: output name `consensusTSV` is not snake_case" @@ -655,6 +720,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:558:6: warning[SnakeCase]: task name `MergeBamAlignment` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L558" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:571:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L571" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:596:6: note[MissingMetas]: task `Mutect2TumorOnly` is missing both meta and parameter_meta sections" @@ -690,6 +760,11 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:64:12: warning[SnakeCase]: private declaration name `sampleName` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L64" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:650:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L650" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:65:12: warning[SnakeCase]: private declaration name `molecularID` is not snake_case" @@ -720,6 +795,21 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:709:6: warning[SnakeCase]: task name `MarkDuplicates` is not snake_case" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L709" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:717:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L717" + +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:718:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L718" + +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:719:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L719" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:745:6: note[MissingMetas]: task `SortSam` is missing both meta and parameter_meta sections" @@ -735,11 +825,56 @@ document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:771:2: warning[EndingNewline]: multiple empty lines at the end of file" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L771" +[[diagnostics]] +document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" +message = "ww-vc-trio.wdl:7:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L7" + [[diagnostics]] document = "getwilds/ww-vc-trio:/ww-vc-trio.wdl" message = "ww-vc-trio.wdl:96:1: warning[Whitespace]: line contains only whitespace" permalink = "https://github.com/getwilds/ww-vc-trio/blob/ee08634f28810e5d6fd1a904fc83f4e67821550e/ww-vc-trio.wdl/#L96" +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:129:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L129" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:12:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L12" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:13:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L13" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:14:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L14" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:173:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L173" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:182:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L182" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:206:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L206" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:2:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L2" + [[diagnostics]] document = "stjudecloud/workflows:/data_structures/read_group.wdl" message = "read_group.wdl:32:12: warning[SnakeCase]: struct member name `ID` is not snake_case" @@ -780,6 +915,11 @@ document = "stjudecloud/workflows:/data_structures/read_group.wdl" message = "read_group.wdl:39:13: warning[SnakeCase]: struct member name `LB` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L39" +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:3:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L3" + [[diagnostics]] document = "stjudecloud/workflows:/data_structures/read_group.wdl" message = "read_group.wdl:40:13: warning[SnakeCase]: struct member name `PG` is not snake_case" @@ -810,6 +950,81 @@ document = "stjudecloud/workflows:/data_structures/read_group.wdl" message = "read_group.wdl:45:13: warning[SnakeCase]: struct member name `SM` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L45" +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:7:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L7" + +[[diagnostics]] +document = "stjudecloud/workflows:/data_structures/read_group.wdl" +message = "read_group.wdl:8:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/data_structures/read_group.wdl/#L8" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:140:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L140" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:143:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L143" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:174:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L174" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:193:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L193" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:195:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L195" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:257:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L257" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/arriba.wdl" +message = "arriba.wdl:263:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/arriba.wdl/#L263" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/bwa.wdl" +message = "bwa.wdl:242:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/bwa.wdl/#L242" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/cellranger.wdl" +message = "cellranger.wdl:3:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/cellranger.wdl/#L3" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/cellranger.wdl" +message = "cellranger.wdl:61:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/cellranger.wdl/#L61" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/cellranger.wdl" +message = "cellranger.wdl:62:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/cellranger.wdl/#L62" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/estimate.wdl" +message = "estimate.wdl:39:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/estimate.wdl/#L39" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/fastqc.wdl" +message = "fastqc.wdl:59:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/fastqc.wdl/#L59" + [[diagnostics]] document = "stjudecloud/workflows:/tools/gatk4.wdl" message = "gatk4.wdl:107:14: warning[SnakeCase]: input name `dbSNP_vcf` is not snake_case" @@ -820,6 +1035,21 @@ document = "stjudecloud/workflows:/tools/gatk4.wdl" message = "gatk4.wdl:108:14: warning[SnakeCase]: input name `dbSNP_vcf_index` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L108" +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:117:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L117" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:122:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L122" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:186:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L186" + [[diagnostics]] document = "stjudecloud/workflows:/tools/gatk4.wdl" message = "gatk4.wdl:249:14: warning[SnakeCase]: input name `dbSNP_vcf` is not snake_case" @@ -830,6 +1060,66 @@ document = "stjudecloud/workflows:/tools/gatk4.wdl" message = "gatk4.wdl:250:14: warning[SnakeCase]: input name `dbSNP_vcf_index` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L250" +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:259:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L259" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:264:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L264" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/gatk4.wdl" +message = "gatk4.wdl:42:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/gatk4.wdl/#L42" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/htseq.wdl" +message = "htseq.wdl:118:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/htseq.wdl/#L118" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/htseq.wdl" +message = "htseq.wdl:159:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/htseq.wdl/#L159" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/htseq.wdl" +message = "htseq.wdl:184:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/htseq.wdl/#L184" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/htseq.wdl" +message = "htseq.wdl:94:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/htseq.wdl/#L94" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/htseq.wdl" +message = "htseq.wdl:96:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/htseq.wdl/#L96" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/ngsderive.wdl" +message = "ngsderive.wdl:257:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/ngsderive.wdl/#L257" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/ngsderive.wdl" +message = "ngsderive.wdl:259:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/ngsderive.wdl/#L259" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/picard.wdl" +message = "picard.wdl:1032:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/picard.wdl/#L1032" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/qualimap.wdl" +message = "qualimap.wdl:81:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/qualimap.wdl/#L81" + [[diagnostics]] document = "stjudecloud/workflows:/tools/star.wdl" message = "star.wdl:552:13: warning[SnakeCase]: input name `out_QS_conversion_add` is not snake_case" @@ -875,6 +1165,26 @@ document = "stjudecloud/workflows:/tools/star.wdl" message = "star.wdl:62:13: warning[SnakeCase]: input name `genome_SA_sparse_d` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L62" +[[diagnostics]] +document = "stjudecloud/workflows:/tools/star.wdl" +message = "star.wdl:694:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L694" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/star.wdl" +message = "star.wdl:695:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L695" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/star.wdl" +message = "star.wdl:701:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L701" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/star.wdl" +message = "star.wdl:734:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L734" + [[diagnostics]] document = "stjudecloud/workflows:/tools/star.wdl" message = "star.wdl:818:9: warning[SnakeCase]: struct member name `GT_AG_and_CT_AC_motif` is not snake_case" @@ -890,6 +1200,146 @@ document = "stjudecloud/workflows:/tools/star.wdl" message = "star.wdl:820:9: warning[SnakeCase]: struct member name `AT_AC_and_GT_AT_motif` is not snake_case" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/star.wdl/#L820" +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:613:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L613" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:618:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L618" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:637:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L637" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:649:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L649" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:693:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L693" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:706:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L706" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:717:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L717" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:718:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L718" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:719:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L719" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:720:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L720" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:721:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L721" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:722:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L722" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:723:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L723" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:725:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L725" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:726:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L726" + +[[diagnostics]] +document = "stjudecloud/workflows:/tools/util.wdl" +message = "util.wdl:728:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/tools/util.wdl/#L728" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/chipseq/chipseq-standard.wdl" +message = "chipseq-standard.wdl:10:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/chipseq/chipseq-standard.wdl/#L10" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/chipseq/chipseq-standard.wdl" +message = "chipseq-standard.wdl:11:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/chipseq/chipseq-standard.wdl/#L11" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/chipseq/chipseq-standard.wdl" +message = "chipseq-standard.wdl:12:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/chipseq/chipseq-standard.wdl/#L12" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/dnaseq/dnaseq-core.wdl" +message = "dnaseq-core.wdl:115:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/dnaseq/dnaseq-core.wdl/#L115" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/dnaseq/dnaseq-standard-fastq.wdl" +message = "dnaseq-standard-fastq.wdl:134:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/dnaseq/dnaseq-standard-fastq.wdl/#L134" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/dnaseq/dnaseq-standard-fastq.wdl" +message = "dnaseq-standard-fastq.wdl:51:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/dnaseq/dnaseq-standard-fastq.wdl/#L51" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/general/alignment-post.wdl" +message = "alignment-post.wdl:6:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/general/alignment-post.wdl/#L6" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/general/samtools-merge.wdl" +message = "samtools-merge.wdl:24:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/general/samtools-merge.wdl/#L24" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/general/samtools-merge.wdl" +message = "samtools-merge.wdl:35:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/general/samtools-merge.wdl/#L35" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/qc/quality-check-standard.wdl" +message = "quality-check-standard.wdl:110:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/qc/quality-check-standard.wdl/#L110" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/qc/quality-check-standard.wdl" +message = "quality-check-standard.wdl:150:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/qc/quality-check-standard.wdl/#L150" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/qc/quality-check-standard.wdl" +message = "quality-check-standard.wdl:435:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/qc/quality-check-standard.wdl/#L435" + [[diagnostics]] document = "stjudecloud/workflows:/workflows/reference/gatk-reference.wdl" message = "gatk-reference.wdl:101:15: warning[SnakeCase]: output name `dbSNP_vcf` is not snake_case" @@ -940,6 +1390,41 @@ document = "stjudecloud/workflows:/workflows/rnaseq/rnaseq-variant-calling.wdl" message = "rnaseq-variant-calling.wdl:4:1: note[ImportSort]: imports are not sorted lexicographically" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/rnaseq/rnaseq-variant-calling.wdl/#L4" +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:28:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L28" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:29:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L29" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:32:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L32" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:35:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L35" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:36:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L36" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:37:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L37" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" +message = "10x-bam-to-fastqs.wdl:38:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L38" + [[diagnostics]] document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" message = "10x-bam-to-fastqs.wdl:47:10: note[MissingMetas]: workflow `cell_ranger_bam_to_fastqs` is missing a `meta` section" @@ -950,7 +1435,47 @@ document = "stjudecloud/workflows:/workflows/scrnaseq/10x-bam-to-fastqs.wdl" message = "10x-bam-to-fastqs.wdl:87:6: note[MissingMetas]: task `parse_input` is missing a `meta` section" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/10x-bam-to-fastqs.wdl/#L87" +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:18:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L18" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:19:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L19" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:22:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L22" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:25:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L25" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:26:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L26" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:27:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L27" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:28:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L28" + [[diagnostics]] document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" message = "scrnaseq-standard.wdl:40:10: note[MissingMetas]: workflow `scrnaseq_standard` is missing a `meta` section" permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L40" + +[[diagnostics]] +document = "stjudecloud/workflows:/workflows/scrnaseq/scrnaseq-standard.wdl" +message = "scrnaseq-standard.wdl:5:1: note[LineWidth]: line exceeds maximum width of 90" +permalink = "https://github.com/stjudecloud/workflows/blob/46a77b33c99c1952396fcaaf0845f1fb5a015987/workflows/scrnaseq/scrnaseq-standard.wdl/#L5" diff --git a/Gauntlet.toml b/Gauntlet.toml index 3cf7cb5c..76468efb 100644 --- a/Gauntlet.toml +++ b/Gauntlet.toml @@ -49,7 +49,7 @@ filters = ["/template/task-templates.wdl"] [repositories."theiagen/public_health_bioinformatics"] identifier = "theiagen/public_health_bioinformatics" -commit_hash = "252b98cea3c1fbdd509c6bc3497a6e8060b9bf2a" +commit_hash = "d0377e139855252e15b57d7699aa6f5abb510996" [[diagnostics]] document = "aws-samples/amazon-omics-tutorials:/example-workflows/gatk-best-practices/workflows/somatic-snps-and-indels/mutec2.wdl" diff --git a/wdl-lint/CHANGELOG.md b/wdl-lint/CHANGELOG.md index cc38dcc8..89e00aa7 100644 --- a/wdl-lint/CHANGELOG.md +++ b/wdl-lint/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +* Added the `LineWidth` lint rule (#99). * Added the `ImportWhitespace` and `ImportSort` lint rules (#98). * Added the `MissingMetas` and `MissingOutput` lint rules (#96). * Added the `PascalCase` lint rule ([#90](https://github.com/stjude-rust-labs/wdl/pull/90)). diff --git a/wdl-lint/RULES.md b/wdl-lint/RULES.md index 203a4a5d..c82ecf07 100644 --- a/wdl-lint/RULES.md +++ b/wdl-lint/RULES.md @@ -24,3 +24,5 @@ be out of sync with released packages. | `PreambleWhitespace` | Spacing, Style | Ensures that documents have correct whitespace in the preamble. | | `SnakeCase` | Clarity, Naming, Style | Ensures that tasks, workflows, and variables are defined with snake_case names. | | `Whitespace` | Spacing, Style | Ensures that a document does not contain undesired whitespace. | +| `LineWidth` | Clarity, Spacing, Style | Ensures that lines do not exceed a certain width. | + diff --git a/wdl-lint/src/lib.rs b/wdl-lint/src/lib.rs index d84b86c7..99779953 100644 --- a/wdl-lint/src/lib.rs +++ b/wdl-lint/src/lib.rs @@ -92,6 +92,7 @@ pub fn rules() -> Vec> { Box::new(rules::MissingMetasRule), Box::new(rules::MissingOutputRule), Box::new(rules::ImportSortRule), + Box::new(rules::LineWidthRule::default()), ]; // Ensure all the rule ids are unique and pascal case diff --git a/wdl-lint/src/rules.rs b/wdl-lint/src/rules.rs index 625e52c3..3450e795 100644 --- a/wdl-lint/src/rules.rs +++ b/wdl-lint/src/rules.rs @@ -6,6 +6,7 @@ mod ending_newline; mod import_placement; mod import_sort; mod import_whitespace; +mod line_width; mod matching_parameter_meta; mod missing_metas; mod missing_output; @@ -23,6 +24,7 @@ pub use ending_newline::*; pub use import_placement::*; pub use import_sort::*; pub use import_whitespace::*; +pub use line_width::*; pub use matching_parameter_meta::*; pub use missing_metas::*; pub use missing_output::*; diff --git a/wdl-lint/src/rules/line_width.rs b/wdl-lint/src/rules/line_width.rs new file mode 100644 index 00000000..3bf85b5c --- /dev/null +++ b/wdl-lint/src/rules/line_width.rs @@ -0,0 +1,149 @@ +//! Ensures that lines do not exceed a certain width. + +use wdl_ast::AstToken; +use wdl_ast::Diagnostic; +use wdl_ast::Diagnostics; +use wdl_ast::Span; +use wdl_ast::Visitor; + +use crate::Rule; +use crate::Tag; +use crate::TagSet; + +/// The identifier for the line width rule. +const ID: &str = "LineWidth"; + +/// Creates a diagnostic for when a line exceeds the maximum width. +fn line_too_long(span: Span, max_width: usize) -> Diagnostic { + Diagnostic::note(format!("line exceeds maximum width of {}", max_width)) + .with_rule(ID) + .with_highlight(span) + .with_fix("split the line into multiple lines") +} + +/// Detects lines that exceed a certain width. +#[derive(Debug, Clone, Copy)] +pub struct LineWidthRule(usize); + +/// Implements the default line width rule. +impl Default for LineWidthRule { + fn default() -> Self { + Self(90) + } +} + +impl Rule for LineWidthRule { + fn id(&self) -> &'static str { + ID + } + + fn description(&self) -> &'static str { + "Ensures that lines do not exceed a certain width. That width is currently set to 90 \ + characters." + } + + fn explanation(&self) -> &'static str { + "Lines should not exceed a certain width to make it easier to read and understand the \ + code. Code within the either the meta or parameter meta sections is not checked. Comments \ + are included in the line width check. The current maximum width is 90 characters." + } + + fn tags(&self) -> TagSet { + TagSet::new(&[Tag::Style, Tag::Clarity, Tag::Spacing]) + } + + fn visitor(&self) -> Box> { + Box::new(LineWidthVisitor::new(self.0)) + } +} + +/// A visitor that detects lines that exceed a certain width. +#[derive(Debug, Clone, Copy)] +struct LineWidthVisitor { + /// The maximum width of a line. + max_width: usize, + /// The offset of the previous newline. + prev_newline_offset: usize, + /// Whether we are in a section that should be ignored. + should_ignore: bool, +} + +impl LineWidthVisitor { + /// Creates a new line width visitor. + fn new(max_width: usize) -> Self { + Self { + max_width, + prev_newline_offset: 0, + should_ignore: false, + } + } + + /// Detects lines that exceed a certain width. + fn detect_line_too_long(&mut self, state: &mut Diagnostics, text: &str, start: usize) { + let mut cur_newline_offset = start; + text.char_indices().for_each(|(i, c)| { + if c == '\n' { + cur_newline_offset = start + i; + if self.should_ignore { + self.prev_newline_offset = cur_newline_offset + 1; + return; + } + + if cur_newline_offset - self.prev_newline_offset > self.max_width { + state.add(line_too_long( + Span::new( + self.prev_newline_offset, + cur_newline_offset - self.prev_newline_offset, + ), + self.max_width, + )); + } + self.prev_newline_offset = cur_newline_offset + 1; + } + }); + } +} + +impl Visitor for LineWidthVisitor { + type State = Diagnostics; + + fn whitespace(&mut self, state: &mut Self::State, whitespace: &wdl_ast::Whitespace) { + self.detect_line_too_long(state, whitespace.as_str(), whitespace.span().start()); + } + + fn command_text(&mut self, state: &mut Self::State, text: &wdl_ast::v1::CommandText) { + self.detect_line_too_long(state, text.as_str(), text.span().start()) + } + + fn metadata_section( + &mut self, + _: &mut Self::State, + reason: wdl_ast::VisitReason, + _: &wdl_ast::v1::MetadataSection, + ) { + match reason { + wdl_ast::VisitReason::Enter => { + self.should_ignore = true; + } + wdl_ast::VisitReason::Exit => { + self.should_ignore = false; + } + } + } + + fn parameter_metadata_section( + &mut self, + _: &mut Self::State, + reason: wdl_ast::VisitReason, + _: &wdl_ast::v1::ParameterMetadataSection, + ) { + match reason { + wdl_ast::VisitReason::Enter => { + self.should_ignore = true; + } + wdl_ast::VisitReason::Exit => { + self.should_ignore = false; + } + } + } +} diff --git a/wdl-lint/tests/lints/double-quotes/source.errors b/wdl-lint/tests/lints/double-quotes/source.errors index ff867b47..048e1f14 100644 --- a/wdl-lint/tests/lints/double-quotes/source.errors +++ b/wdl-lint/tests/lints/double-quotes/source.errors @@ -7,18 +7,22 @@ warning[DoubleQuotes]: string defined with single quotes = fix: change the single quotes to double quotes warning[DoubleQuotes]: string defined with single quotes - ┌─ tests/lints/double-quotes/source.wdl:11:30 - │ -11 │ "this string is ok ~{'but this is not and ~{"while this one is okay ~{'this one is not'}"}'}!" - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - │ + ┌─ tests/lints/double-quotes/source.wdl:12:13 + │ +12 │ ╭ 'but this is not and ~{ +13 │ │ "while this one is okay ~{ +14 │ │ 'this one is not' +15 │ │ }" +16 │ │ }' + │ ╰──────────────^ + │ = fix: change the single quotes to double quotes warning[DoubleQuotes]: string defined with single quotes - ┌─ tests/lints/double-quotes/source.wdl:11:79 + ┌─ tests/lints/double-quotes/source.wdl:14:21 │ -11 │ "this string is ok ~{'but this is not and ~{"while this one is okay ~{'this one is not'}"}'}!" - │ ^^^^^^^^^^^^^^^^^ +14 │ 'this one is not' + │ ^^^^^^^^^^^^^^^^^ │ = fix: change the single quotes to double quotes diff --git a/wdl-lint/tests/lints/double-quotes/source.wdl b/wdl-lint/tests/lints/double-quotes/source.wdl index e48f3d01..343cf10f 100644 --- a/wdl-lint/tests/lints/double-quotes/source.wdl +++ b/wdl-lint/tests/lints/double-quotes/source.wdl @@ -8,6 +8,12 @@ workflow test { String good = "this string is okay" String bad = 'this string is not okay' String interpolated = # a comment! - "this string is ok ~{'but this is not and ~{"while this one is okay ~{'this one is not'}"}'}!" + "this string is ok ~{ + 'but this is not and ~{ + "while this one is okay ~{ + 'this one is not' + }" + }' + }!" output {} } diff --git a/wdl-lint/tests/lints/matching-param-meta/source.errors b/wdl-lint/tests/lints/matching-param-meta/source.errors index a756970d..b2ad6607 100644 --- a/wdl-lint/tests/lints/matching-param-meta/source.errors +++ b/wdl-lint/tests/lints/matching-param-meta/source.errors @@ -1,31 +1,31 @@ warning[MatchingParameterMeta]: task `t` is missing a parameter metadata key for input `does_not_exist` - ┌─ tests/lints/matching-param-meta/source.wdl:9:16 - │ -9 │ String does_not_exist - │ ^^^^^^^^^^^^^^ this input does not have an entry in the parameter metadata section - │ - = fix: add a `does_not_exist` key to the `parameter_meta` section with a detailed description of the input. + ┌─ tests/lints/matching-param-meta/source.wdl:10:16 + │ +10 │ String does_not_exist + │ ^^^^^^^^^^^^^^ this input does not have an entry in the parameter metadata section + │ + = fix: add a `does_not_exist` key to the `parameter_meta` section with a detailed description of the input. note[MatchingParameterMeta]: task `t` has an extraneous parameter metadata key named `extra` - ┌─ tests/lints/matching-param-meta/source.wdl:21:9 + ┌─ tests/lints/matching-param-meta/source.wdl:22:9 │ -21 │ extra: "this should not be here" +22 │ extra: "this should not be here" │ ^^^^^ this key does not correspond to any input declaration │ = fix: remove the extraneous parameter metadata entry warning[MatchingParameterMeta]: workflow `w` is missing a parameter metadata key for input `does_not_exist` - ┌─ tests/lints/matching-param-meta/source.wdl:34:16 + ┌─ tests/lints/matching-param-meta/source.wdl:35:16 │ -34 │ String does_not_exist +35 │ String does_not_exist │ ^^^^^^^^^^^^^^ this input does not have an entry in the parameter metadata section │ = fix: add a `does_not_exist` key to the `parameter_meta` section with a detailed description of the input. note[MatchingParameterMeta]: workflow `w` has an extraneous parameter metadata key named `extra` - ┌─ tests/lints/matching-param-meta/source.wdl:46:9 + ┌─ tests/lints/matching-param-meta/source.wdl:47:9 │ -46 │ extra: "this should not be here" +47 │ extra: "this should not be here" │ ^^^^^ this key does not correspond to any input declaration │ = fix: remove the extraneous parameter metadata entry diff --git a/wdl-lint/tests/lints/matching-param-meta/source.wdl b/wdl-lint/tests/lints/matching-param-meta/source.wdl index 98215cbc..8d634aac 100644 --- a/wdl-lint/tests/lints/matching-param-meta/source.wdl +++ b/wdl-lint/tests/lints/matching-param-meta/source.wdl @@ -1,4 +1,5 @@ -## This is a test for checking for missing and extraneous entries in a `parameter_meta` section. +## This is a test for checking for missing and extraneous entries +## in a `parameter_meta` section. version 1.1