Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]¶
0.1a4 – Bug fixes and Node API ergonomics¶
Added¶
Nodeergonomics helpers on the abstract_NodeTypeMixincontract.Node.docstringproperty and import alias helpers (iter_import_aliases,ImportAlias).rude.testing.assert_fixandassert_no_fixacceptoptionsandfilenamekeyword arguments.
Fixed¶
F507: gate on tuple-literal right-hand side to avoid false positives on dynamic format arguments.
E703 autofix uses byte length on UTF-8 lines so multi-byte characters no longer break the replacement range.
Location.columnreports character offsets instead of byte offsets, matching the documented contract.E231 fires on dict and annotation colons (previously skipped).
File finder loads nested
.gitignorefiles, not just the repository root.Percent format rules (E.g. F501) strip
r/b/fstring prefixes before parsing.Analyzer strips the string prefix when parsing
__all__literals so prefixed string entries are tracked.Batch mode surfaces unreadable and unparsable files as diagnostics instead of silently skipping them.
Worker enforces
timeout_per_fileper file (previously applied to the whole batch).
0.1a3 – README image rendering on PyPI¶
Fixed¶
README images now render on PyPI by using absolute URLs instead of repo-relative paths.
0.1a2 – Initial public release¶
First public release of Rude.
Highlights¶
104 built-in rules: pyflakes (F), pycodestyle (E/W), and mccabe (C901)
Rust-powered semantic analysis via PyO3 (scopes, bindings, qualified names)
Autofix engine with atomic conflict detection and import management
Plugin system via the
rude.pluginsentry-point groupLocal rules via
[tool.rude]configurationFrozen pyclass API surface (
Binding,Scope,ImportInfo,NodeEntry,LineInfo) with named fieldsMulti-process mode (
--jobs=N) and a streaming single-process path that honors--max-errors/--fail-fastPublic test helpers in
rude.testing(assert_fix,assert_no_fix)Output formats: text, compact, and JSON
Vendored tree-sitter (no separate
tree-sitterPython dependency)abi3 wheels for CPython 3.11+ on Linux (manylinux + musllinux), macOS, and Windows