New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Treat convention as setting ignore, rather than select #1611
Conversation
\cc @stinodego - how does this look? |
4902779
to
cb1506b
Compare
Thanks @charliermarsh ! Exactly what I had in mind. Regarding the limitation of this approach: I believe this now matches how |
Perfect, thanks! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.209` -> `^0.0.210` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.210/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.210/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.210/compatibility-slim/0.0.209)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.210/confidence-slim/0.0.209)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.210`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.210) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.209...v0.0.210) #### What's Changed - Do not Change Quotation Style for `PT006` Autofix by [@​saadmk11](https://togithub.com/saadmk11) in [astral-sh/ruff#1600 - Implement autofix for `PT022` by [@​harupy](https://togithub.com/harupy) in [astral-sh/ruff#1604 - Add isort.order-by-type boolean setting by [@​mattoberle](https://togithub.com/mattoberle) in [astral-sh/ruff#1607 - Fix \*arg and \*\*kwarg handling for Google docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1608 - Associate inline comments with parenthesized `ImportFrom` statements by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1609 - Fix leftover whitespace when removing `pass` for `PIE790` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#1612 - Treat .pyi files as **future** annotations-enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1616 - Treat convention as setting ignore, rather than select by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1611 - Avoid byte-string conversions by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1618 - Implement missing fixes for `PT006` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#1622 - Implement `yield`-to-`yield from` conversion by [@​colin99d](https://togithub.com/colin99d) in [astral-sh/ruff#1544 - Add some more users to the README by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#1623 - Check `SIM118` in comprehension by [@​harupy](https://togithub.com/harupy) in [astral-sh/ruff#1627 #### New Contributors - [@​mattoberle](https://togithub.com/mattoberle) made their first contribution in [astral-sh/ruff#1607 **Full Changelog**: astral-sh/ruff@v0.0.209...v0.0.210 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC44MS4wIiwidXBkYXRlZEluVmVyIjoiMzQuODEuMCJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR treats the
convention
setting as an "ignore" directive, rather than a "select" directive, which leads to confusing settings and behavior.The new semantics are such that setting a convention force-disables any rules that are incompatible with that convention. (It's effectively as-if those rules don't exist.) You can then disable further rules via
ignore
directive.For example, this would now be a correct and reasonable configuration:
The biggest limitation here is that you can't enable rules that aren't compatible with the convention, as long as the convention is set. It's impossible. So for example, if you used
pep257
but wanted to enable a few of the checks thatpep257
excludes by default, you'd be out of luck. This is a limitation, and I considered a few other models (like lettingextend-select
override this behavior)... but honestly, it felt like an edge case, and all the other models had their own confusing behaviors. If you find yourself in that position, you can always avoid settingconvention
and select codes manually.See the discussion here: #1569. This approach also would've prevented this issue: #1603.