Upgrade to release 0.17.4:
Preview features:
- [flake8-logging-format] Avoid behavior changes and syntax errors
in fixes (G004)
- [security] Implement tarfile-ignore-zeros-true
Bug fixes:
- Accept a bare raise before a semicolon
- Allow match identifiers after a semicolon
- Fix panic on BOM-prefixed files in diagnostic renderer
- [flake8-simplify] Report collapsible elif clauses after a
multi-statement if branch (SIM102)
Rule changes:
- Show more nonprinting characters in diagnostic fix diffs
Performance:
- Coalesce source slices when formatting attributes
- Collect return statements with a statement-only visitor
- [pyflakes] Defer value comparisons for repeated dictionary keys
(F601, F602)
- Format node fields directly when comment handling is unnecessary
- Reduce formatter source-slice overhead
- Reuse a callee's qualified name across lint rules
- Skip invalid string character checks when the source contains
none
- Use a Bloom filter for formatter comment lookups
- Use a concrete buffer for ordinary writes
CLI:
- Give NO_COLOR precedence in Ruff and ty diagnostics
- Honor CLICOLOR=0 in Ruff and ty diagnostics
Documentation:
- Correct the documented version and src defaults for ruff-action
- [flake8-bugbear] Make B014 example error out-of-the-box
- [flake8-no-pep420] Document preview behavior (INP001)
- [isort] Expand I001 documentation
Other changes:
- [syntax-errors] Extend __debug__ write check to attribute targets
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.17.3:
Preview features:
- [suspicious] Add shared-clock-mock
Bug fixes:
- [pyupgrade] Avoid incorrect conversions to f-strings (UP032)
Performance:
- Buffer stdout in ruff format
- Specialize ASCII identifier lexing
- Speed up identifier and keyword lexing
Documentation:
- [flake8-bandit] Describe what the rule actually checks for
httpx (S113)
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 0.17.2:
Preview features:
- [complexity] Add unnecessary-regular-expression-compile
Bug fixes:
- Avoid syntax errors for type variables with starred constraints
(UP040, UP046, UP047, RUF053)
- [pydocstyle] Treat backslash-escaped *args and kwargs as
documented (D417)
- [pylint] Avoid false positive on starred elements (PLE0643)
- [pylint] Mark fixes unsafe when deleting comments (PLR5501,PLW0120)
- [pyupgrade] Mark fix unsafe when deleting comments (UP035)
Performance:
- Avoid intermediate names in lint name resolution
- Prefilter bidirectional Unicode checks by UTF-8 leading bytes
- Share postfix parsing and reduce expression copies
Configuration:
- [pylint] Add a configurable allowlist for magic-value-comparison
(PLR2004)
Documentation:
- Clarify documentation and correct stale guidance
- [pyupgrade] Remove mentions of variance related to fix safety
(UP040, UP047)
This work was sponsored by GOVCERT.LU.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
std only provides AtomicU64 on targets with 64-bit atomics, so ruff
fails to build for riscv32:
error[E0432]: unresolved import `std::sync::atomic::AtomicU64`
--> crates/ruff/src/cache.rs:7:25
Add a patch that uses portable-atomic's AtomicU64 for the cache
timestamp on such targets, archived in the same on-disk format.
AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>