Update fix safety FAQ to reflect --unsafe-fixes (#7969)

This commit is contained in:
Charlie Marsh 2023-10-16 14:34:55 -04:00 committed by GitHub
parent 134def0119
commit cac9754455
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 18 deletions

View file

@ -109,8 +109,6 @@ If you're wondering how to configure Ruff, here are some **recommended guideline
- Start with a small set of rules (`select = ["E", "F"]`) and add a category at-a-time. For example, - Start with a small set of rules (`select = ["E", "F"]`) and add a category at-a-time. For example,
you might consider expanding to `select = ["E", "F", "B"]` to enable the popular flake8-bugbear you might consider expanding to `select = ["E", "F", "B"]` to enable the popular flake8-bugbear
extension. extension.
- By default, Ruff's fixes are aggressive. If you find that it's too aggressive for your liking,
consider turning off fixes for specific rules or categories (see [_FAQ_](faq.md#ruff-tried-to-fix-something--but-it-broke-my-code)).
## Using `ruff.toml` ## Using `ruff.toml`

View file

@ -436,22 +436,13 @@ For more, see the [`dirs`](https://docs.rs/dirs/4.0.0/dirs/fn.config_dir.html) c
## Ruff tried to fix something — but it broke my code? ## Ruff tried to fix something — but it broke my code?
Ruff's fixes are a best-effort mechanism. Given the dynamic nature of Python, it's difficult to Ruff labels fixes as "safe" and "unsafe". By default, Ruff will fix all violations for which safe
have _complete_ certainty when making changes to code, even for the seemingly trivial fixes. fixes are available, while unsafe fixes can be enabled via the [`unsafe-fixes`](settings.md#unsafe-fixes)
setting, or passing the `--unsafe-fixes` flag to `ruff check`. For more, see [the fix documentation](configuration.md#fixes).
In the future, Ruff will support enabling fix behavior based on the safety of the patch. Even still, given the dynamic nature of Python, it's difficult to have _complete_ certainty when
making changes to code, even for seemingly trivial fixes. If a "safe" fix breaks your code, please
In the meantime, if you find that the fixes are too aggressive, you can disable it on a per-rule or [file an Issue](https://github.com/astral-sh/ruff/issues/new).
per-category basis using the [`unfixable`](settings.md#unfixable) mechanic.
For example, to disable the fix for some possibly-unsafe rules, you could add the following to your
`pyproject.toml`:
```toml
[tool.ruff]
unfixable = ["B", "SIM", "TRY", "RUF"]
```
If you find a case where Ruff's fix breaks your code, please file an Issue!
## How can I disable Ruff's color output? ## How can I disable Ruff's color output?