TD003: remove issue code length restriction (#15175)

Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
Mike Bernard 2025-01-03 01:42:04 -08:00 committed by GitHub
parent 1218bc65ed
commit 0dbfa8d0e0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 40 additions and 34 deletions

View file

@ -5,6 +5,12 @@
# TODO: this comment has an issue # TODO: this comment has an issue
# TDO-3870 # TDO-3870
# TODO: the link has an issue code of the minimum length
# T-001
# TODO: the issue code can be arbitrarily long
# ABCDEFGHIJKLMNOPQRSTUVWXYZ-001
# TDO003 - errors # TDO003 - errors
# TODO: this comment has no # TODO: this comment has no
# link after it # link after it

View file

@ -91,7 +91,7 @@ impl Violation for MissingTodoAuthor {
/// # TODO(charlie): this comment has a 3-digit issue code /// # TODO(charlie): this comment has a 3-digit issue code
/// # 003 /// # 003
/// ///
/// # TODO(charlie): this comment has an issue code of (up to) 6 characters, then digits /// # TODO(charlie): this comment has an issue code (matches the regex `[A-Z]+\-?\d+`)
/// # SIXCHR-003 /// # SIXCHR-003
/// ``` /// ```
#[derive(ViolationMetadata)] #[derive(ViolationMetadata)]
@ -228,7 +228,7 @@ static ISSUE_LINK_REGEX_SET: LazyLock<RegexSet> = LazyLock::new(|| {
RegexSet::new([ RegexSet::new([
r"^#\s*(http|https)://.*", // issue link r"^#\s*(http|https)://.*", // issue link
r"^#\s*\d+$", // issue code - like "003" r"^#\s*\d+$", // issue code - like "003"
r"^#\s*[A-Z]{1,6}\-?\d+$", // issue code - like "TD003" r"^#\s*[A-Z]+\-?\d+$", // issue code - like "TD003"
]) ])
.unwrap() .unwrap()
}); });

View file

@ -2,48 +2,48 @@
source: crates/ruff_linter/src/rules/flake8_todos/mod.rs source: crates/ruff_linter/src/rules/flake8_todos/mod.rs
snapshot_kind: text snapshot_kind: text
--- ---
TD003.py:9:3: TD003 Missing issue link on the line following this TODO TD003.py:15:3: TD003 Missing issue link on the line following this TODO
| |
8 | # TDO003 - errors 14 | # TDO003 - errors
9 | # TODO: this comment has no 15 | # TODO: this comment has no
| ^^^^ TD003 | ^^^^ TD003
10 | # link after it 16 | # link after it
| |
TD003.py:12:3: TD003 Missing issue link on the line following this TODO TD003.py:18:3: TD003 Missing issue link on the line following this TODO
| |
10 | # link after it 16 | # link after it
11 | 17 |
12 | # TODO: here's a TODO with no link after it 18 | # TODO: here's a TODO with no link after it
| ^^^^ TD003 | ^^^^ TD003
13 | def foo(x): 19 | def foo(x):
14 | return x 20 | return x
|
TD003.py:25:3: TD003 Missing issue link on the line following this TODO
|
23 | # TDO-3870
24 |
25 | # TODO: here's a TODO without an issue link
| ^^^^ TD003
26 | # TODO: followed by a new TODO with an issue link
27 | # TDO-3870
|
TD003.py:29:9: TD003 Missing issue link on the line following this TODO
|
27 | # TDO-3870
28 |
29 | # foo # TODO: no link!
| ^^^^ TD003
30 |
31 | # TODO: here's a TODO on the last line with no link
| |
TD003.py:31:3: TD003 Missing issue link on the line following this TODO TD003.py:31:3: TD003 Missing issue link on the line following this TODO
| |
29 | # foo # TODO: no link! 29 | # TDO-3870
30 | 30 |
31 | # TODO: here's a TODO on the last line with no link 31 | # TODO: here's a TODO without an issue link
| ^^^^ TD003
32 | # TODO: followed by a new TODO with an issue link
33 | # TDO-3870
|
TD003.py:35:9: TD003 Missing issue link on the line following this TODO
|
33 | # TDO-3870
34 |
35 | # foo # TODO: no link!
| ^^^^ TD003
36 |
37 | # TODO: here's a TODO on the last line with no link
|
TD003.py:37:3: TD003 Missing issue link on the line following this TODO
|
35 | # foo # TODO: no link!
36 |
37 | # TODO: here's a TODO on the last line with no link
| ^^^^ TD003 | ^^^^ TD003
| |