// data & ai · giornale tecnico MILANO ● LIVE 00:00:00

Ruff 0.16.0 abilita 413 regole di default: cosa cambia per i progetti Python

Ruff 0.16.0 porta a 413 le regole abilitate di default: perché molte CI hanno iniziato a fallire e come gestire l’aggiornamento sui progetti Python.

Astral ha rilasciato Ruff 0.16.0 il 23 luglio 2026, e il cambiamento più rilevante non è una nuova feature ma una modifica ai default: il linter ora abilita 413 regole, contro le 59 delle versioni precedenti. Chi teneva una dipendenza non fissata su ruff se n’è accorto nel modo più diretto, con le pipeline di CI che hanno iniziato a fallire dopo l’aggiornamento automatico.

Il contesto conta. Dall’ultima revisione del set di regole di default (la v0.1.0), il numero totale di regole in Ruff è passato da 708 a 968. Molte intercettano problemi seri — syntax error e runtime error immediati — ma finora restavano disattivate salvo configurazione esplicita. Con la 0.16.0 vengono segnalate senza alcun setup.

Cosa aspettarsi su un progetto reale

Per provarlo su un progetto qualsiasi basta un comando: uvx ruff@latest check .. Simon Willison lo ha eseguito sui suoi tre progetti principali (Datasette, sqlite-utils e LLM), trovando centinaia di violazioni minori rispetto ai nuovi default. Su sqlite-utils la modalità di fix automatico (--fix --unsafe-fixes) ha riportato 1618 errori, di cui 1538 corretti e 80 rimasti da sistemare a mano.

Gli avvisi residui sono il tipo di cosa che vale la pena guardare: DTZ005 per datetime.now() senza timezone, BLE001 per un except Exception troppo generico, B018 per accessi ad attributi senza effetto. Ruff spiega ogni regola con riga e contesto, un formato pensato anche per essere consumato da un coding agent.

Non è un dettaglio casuale: dopo l’ingresso di Astral in OpenAI, l’output è ottimizzato per dare a un agente tutto ciò che serve per applicare i fix. Willison ha delegato l’aggiornamento proprio così — Codex (GPT-5.6 Sol high) su LLM e sqlite-utils, Claude Code (Opus 5) su Datasette.

La lezione pratica per chi mantiene progetti Python: fissare la versione di Ruff nei dev dependencies evita sorprese in CI. L’aggiornamento resta consigliabile, ma va pianificato — e una suite di test ampia, eseguita su più versioni di Python, rende la migrazione molto meno rischiosa.

In sintesi

  • Ruff 0.16.0 abilita 413 regole di default (erano 59); il totale delle regole è salito da 708 a 968.
  • Su sqlite-utils il fix automatico ha corretto 1538 dei 1618 problemi rilevati.
  • Fissare la versione di Ruff nei dev dependencies evita rotture impreviste nelle pipeline di CI.

Fonte: Ruff v0.16.0 — https://simonwillison.net/2026/Jul/25/ruff/

Condividi X Facebook LinkedIn WhatsApp Email

// scritto da

Fernando

Hai qualcosa da aggiungere? Unisciti alla discussione.

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Altri dell'autore

dalla stessa firma