Migrating to Ruff 0.16.0
Version 0.16.0 introduces 3 breaking changes. This guide details how to update your code.
Released: 7/23/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
ruff formatruff checkJSON output formatBreaking Changes
●Issue #1
Ruff now enables a much larger set of rules by default (413, up from 59). Users should consult the blog post for details and the new Default Rules page for a full listing of enabled rules.
●Issue #2
Ruff can now format Python code blocks in Markdown files by default. Refer to the documentation for details on Markdown code formatting.
●Issue #3
The `filename`, `location`, `end_location`, `fix.edits[].location`, and `fix.edits[].end_location` fields in the JSON output format may now be `null` instead of defaulting to the empty string and row 1, column 1, respectively.
Migration Steps
- 1Review the enabled rules due to the significant increase in default rules. Consult the blog post and the Default Rules documentation.
- 2Update configurations or scripts that rely on the previous behavior of `filename`, `location`, `end_location`, `fix.edits[].location`, and `fix.edits[].end_location` in JSON output to handle potential `null` values.
Release Summary
Ruff v0.16.0 significantly expands default rules, introduces Markdown code formatting, and enhances the `format --check` output. It also stabilizes several rules and behaviors.
Need More Details?
View the full release notes and all changes for Ruff 0.16.0.
View Full Changelog