Astral wydał Ruff v0.16.0, która drastycznie zwiększa domyślny zestaw reguł kontroli kodu Python - z 59 do 413 reguł. Nowa konfiguracja domyślna obowiązuje po raz pierwszy od wersji v0.1.0, a całkowita liczba dostępnych reguł w narzędziu wzrosła z 708 do 968. Wiele z tych nowych reguł domyślnych wykrywa poważne problemy, takie jak błędy składni czy błędy runtime, których poprzednio system nie zgłaszał, jeśli użytkownik ich nie konfigurował.
Zmiana spowodowała łańcuch zepsutych budów CI - deweloperzy, którzy nie przypinali konkretnych wersji Ruffa w zależnościach, natrafili na setki nowych ostrzeżeń. Jeden z użytkowników narzędzia uruchomił je na trzech swoich dużych projektach - Datasette, sqlite-utils i LLM - i odkrył po kilkaset problematycznych linijek kodu. Polecenie `uvx ruff@latest check . --fix --unsafe-fixes` pozwoliło na automatyczne naprawienie większości błędów, na przykład w sqlite-utils naprawa obejmowała 1538 z 1618 znalezionych problemów.
Aktualizacja jest ważna, bo pokazuje, jak szybko ewoluuje tooling ekosystemu Python. Dla projektów z dobrym pokryciem testami działającymi na wielu wersjach Pythona (3.10-3.14) taka zmiana jest stosunkowo bezpieczna, ale stanowi wyzwanie dla słabo utrzymywanych repozytoriów. Ruff oferuje szczegółowe wyjaśnienia dla każdego znalezionego problemu, co ułatwia przeprowadzenie takich migracji.