Skip to content
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

Remove preview gating for newly-added stable fixes #9681

Merged
merged 1 commit into from
Jan 29, 2024

Conversation

charliermarsh
Copy link
Member

Summary

At present, our versioning policy forbids the addition of safe fixes to stable rules outside of a minor release, so we've accumulated a bunch of new fixes that are behind --preview, and can be ungated in v0.2.0.

To find these, I just grepped for preview.is_enabled() and identified all such cases. I then audited the preview_rules test fixtures and removed any tests that existed only to test this autofix behavior.

@charliermarsh charliermarsh requested a review from zanieb January 29, 2024 18:19
@charliermarsh charliermarsh marked this pull request as ready for review January 29, 2024 18:20
@charliermarsh
Copy link
Member Author

Big diff but a very mechanical change.

Copy link

codspeed-hq bot commented Jan 29, 2024

CodSpeed Performance Report

Merging #9681 will not alter performance

Comparing charlie/fix-stable (52af028) with release/0.2.0 (50fffcf)

Summary

✅ 30 untouched benchmarks

Copy link
Contributor

github-actions bot commented Jan 29, 2024

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+848 -0 violations, +6066 -0 fixes in 10 projects; 33 projects unchanged)

apache/airflow (+8 -0 violations, +186 -0 fixes)

ruff check --no-cache --exit-zero --no-preview --select ALL

- airflow/cli/commands/task_command.py:80:21: PYI030 Multiple literal members in a union. Use a single literal, e.g. `Literal[False, "db", "memory"]`
+ airflow/cli/commands/task_command.py:80:21: PYI030 [*] Multiple literal members in a union. Use a single literal, e.g. `Literal[False, "db", "memory"]`
+ airflow/configuration.py:1640:9: PLW0120 [*] `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
- airflow/configuration.py:1640:9: PLW0120 `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
- airflow/configuration.py:628:9: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ airflow/configuration.py:628:9: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
- airflow/jobs/backfill_job_runner.py:523:17: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ airflow/jobs/backfill_job_runner.py:523:17: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
- airflow/models/dag.py:1850:13: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ airflow/models/dag.py:1850:13: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
... 99 additional changes omitted for rule PLR5501
... 184 additional changes omitted for project

aws/aws-sam-cli (+0 -0 violations, +6 -0 fixes)

- tests/integration/logs/test_logs_command.py:218:17: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ tests/integration/logs/test_logs_command.py:218:17: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
- tests/unit/commands/deploy/test_deploy_context.py:10:47: F811 Redefinition of unused `DeployFailedError` from line 8
+ tests/unit/commands/deploy/test_deploy_context.py:10:47: F811 [*] Redefinition of unused `DeployFailedError` from line 8
- tests/unit/local/docker/test_lambda_image.py:8:27: F811 Redefinition of unused `parameterized` from line 5
+ tests/unit/local/docker/test_lambda_image.py:8:27: F811 [*] Redefinition of unused `parameterized` from line 5

bokeh/bokeh (+4 -0 violations, +2982 -0 fixes)

ruff check --no-cache --exit-zero --no-preview --select ALL

- examples/basic/annotations/arrow.py:1:1: D300 Use triple double quotes `"""`
+ examples/basic/annotations/arrow.py:1:1: D300 [*] Use triple double quotes `"""`
- examples/basic/annotations/arrowheads.py:1:1: D300 Use triple double quotes `"""`
+ examples/basic/annotations/arrowheads.py:1:1: D300 [*] Use triple double quotes `"""`
- examples/basic/annotations/band.py:1:1: D300 Use triple double quotes `"""`
+ examples/basic/annotations/band.py:1:1: D300 [*] Use triple double quotes `"""`
... 2941 additional changes omitted for rule D300
- setup.py:10:1: E401 Multiple imports on one line
+ setup.py:10:1: E401 [*] Multiple imports on one line
+ src/bokeh/application/handlers/code_runner.py:108:25: SIM910 [*] Use `d.get('__doc__')` instead of `d.get('__doc__', None)`
- src/bokeh/client/session.py:458:9: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ src/bokeh/client/session.py:458:9: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
- src/bokeh/core/query.py:210:17: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ src/bokeh/core/query.py:210:17: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
- src/bokeh/core/serialization.py:149:25: PYI030 Multiple literal members in a union. Use a single literal, e.g. `Literal["bool", "object"]`
+ src/bokeh/core/serialization.py:149:25: PYI030 [*] Multiple literal members in a union. Use a single literal, e.g. `Literal["bool", "object"]`
- src/bokeh/core/serialization.py:718:9: PLR5501 Use `elif` instead of `else` then `if`, to reduce indentation
+ src/bokeh/core/serialization.py:718:9: PLR5501 [*] Use `elif` instead of `else` then `if`, to reduce indentation
... 11 additional changes omitted for rule PLR5501
- src/bokeh/models/plots.py:471:17: SIM114 Combine `if` branches using logical `or` operator
+ src/bokeh/models/plots.py:471:17: SIM114 [*] Combine `if` branches using logical `or` operator
- src/bokeh/models/plots.py:478:17: SIM114 Combine `if` branches using logical `or` operator
+ src/bokeh/models/plots.py:478:17: SIM114 [*] Combine `if` branches using logical `or` operator
... 2965 additional changes omitted for project

demisto/content (+819 -0 violations, +2830 -0 fixes)

+ Documentation/common_server_docs.py:178:32: SIM910 [*] Use `PY_IRREGULAR_FUNCS.get(a)` instead of `PY_IRREGULAR_FUNCS.get(a, None)`
+ Documentation/common_server_docs.py:185:32: SIM910 [*] Use `PY_IRREGULAR_FUNCS.get(a)` instead of `PY_IRREGULAR_FUNCS.get(a, None)`
- Packs/AMP/Integrations/AMPv2/AMPv2.py:3240:11: UP007 Use `X | Y` for type annotations
+ Packs/AMP/Integrations/AMPv2/AMPv2.py:3240:11: UP007 [*] Use `X | Y` for type annotations
- Packs/AMP/Integrations/AMPv2/AMPv2.py:3241:16: UP007 Use `X | Y` for type annotations
+ Packs/AMP/Integrations/AMPv2/AMPv2.py:3241:16: UP007 [*] Use `X | Y` for type annotations
- Packs/AMP/Integrations/AMPv2/AMPv2.py:3242:12: UP007 Use `X | Y` for type annotations
+ Packs/AMP/Integrations/AMPv2/AMPv2.py:3242:12: UP007 [*] Use `X | Y` for type annotations
... 2491 additional changes omitted for rule UP007
- Packs/ANYRUN/Integrations/ANYRUN/ANYRUN.py:924:12: SIM118 Use `key in dict` instead of `key in dict.keys()`
+ Packs/ANYRUN/Integrations/ANYRUN/ANYRUN.py:924:12: SIM118 [*] Use `key in dict` instead of `key in dict.keys()`
+ Packs/AWS-EC2/Integrations/AWS-EC2/AWS-EC2.py:1498:29: SIM910 [*] Use `args.get('IpPermissionsFull')` instead of `args.get('IpPermissionsFull', None)`
+ Packs/AWS-EC2/Integrations/AWS-EC2/AWS-EC2.py:1524:29: SIM910 [*] Use `args.get('IpPermissionsFull')` instead of `args.get('IpPermissionsFull', None)`
+ Packs/AWS-EC2/Integrations/AWS-EC2/AWS-EC2.py:1607:29: SIM910 [*] Use `args.get('IpPermissionsFull')` instead of `args.get('IpPermissionsFull', None)`
+ Packs/AWS-Enrichment-Remediation/Scripts/AWSRecreateSG/AWSRecreateSG.py:339:19: SIM910 [*] Use `args.get('instance_id')` instead of `args.get('instance_id', None)`
... 814 additional changes omitted for rule SIM910
- Packs/Absolute/Integrations/Absolute/Absolute.py:331:8: SIM118 Use `key not in dict` instead of `key not in dict.keys()`
+ Packs/Absolute/Integrations/Absolute/Absolute.py:331:8: SIM118 [*] Use `key not in dict` instead of `key not in dict.keys()`
- Packs/AlienVault_OTX/Integrations/AlienVault_OTX_v2/AlienVault_OTX_v2.py:282:46: SIM118 Use `key not in dict` instead of `key not in dict.keys()`
+ Packs/AlienVault_OTX/Integrations/AlienVault_OTX_v2/AlienVault_OTX_v2.py:282:46: SIM118 [*] Use `key not in dict` instead of `key not in dict.keys()`
... 323 additional changes omitted for rule SIM118
+ Packs/Carbon_Black_Enterprise_Response/Scripts/CBLiveGetFile/CBLiveGetFile.py:142:1: PLW0120 [*] `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
- Packs/Carbon_Black_Enterprise_Response/Scripts/CBLiveGetFile/CBLiveGetFile.py:142:1: PLW0120 `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
- Packs/GoogleDocs/Integrations/GoogleDocs/GoogleDocs.py:315:20: UP006 Use `collections.defaultdict` instead of `typing.DefaultDict` for type annotation
+ Packs/GoogleDocs/Integrations/GoogleDocs/GoogleDocs.py:315:20: UP006 [*] Use `collections.defaultdict` instead of `typing.DefaultDict` for type annotation
+ Packs/ThreatQ/Integrations/ThreatQ_v2/ThreatQ_v2.py:589:5: PLW0120 [*] `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
- Packs/ThreatQ/Integrations/ThreatQ_v2/ThreatQ_v2.py:589:5: PLW0120 `else` clause on loop without a `break` statement; remove the `else` and dedent its contents
... 3625 additional changes omitted for project

ibis-project/ibis (+7 -0 violations, +0 -0 fixes)

+ ibis/backends/pandas/execution/temporal.py:133:11: SIM910 [*] Use `OFFSET_CLASS.get(unit)` instead of `OFFSET_CLASS.get(unit, None)`
+ ibis/backends/pandas/execution/temporal.py:145:11: SIM910 [*] Use `OFFSET_CLASS.get(unit)` instead of `OFFSET_CLASS.get(unit, None)`
+ ibis/backends/pandas/execution/temporal.py:157:11: SIM910 [*] Use `OFFSET_CLASS.get(unit)` instead of `OFFSET_CLASS.get(unit, None)`
+ ibis/backends/pandas/execution/temporal.py:169:11: SIM910 [*] Use `OFFSET_CLASS.get(unit)` instead of `OFFSET_CLASS.get(unit, None)`
+ ibis/backends/postgres/datatypes.py:76:25: SIM910 [*] Use `_postgres_interval_fields.get(field)` instead of `_postgres_interval_fields.get(field, None)`
+ ibis/backends/risingwave/datatypes.py:71:25: SIM910 [*] Use `_postgres_interval_fields.get(field)` instead of `_postgres_interval_fields.get(field, None)`
+ ibis/backends/tests/test_map.py:227:46: SIM910 [*] Use `value.get(x)` instead of `value.get(x, None)`

milvus-io/pymilvus (+7 -0 violations, +0 -0 fixes)

+ pymilvus/client/grpc_handler.py:1005:16: SIM910 [*] Use `info_dict.get("params")` instead of `info_dict.get("params", None)`
+ pymilvus/client/prepare.py:629:12: SIM910 [*] Use `param.get("metric_type")` instead of `param.get("metric_type", None)`
+ pymilvus/client/ts_utils.py:78:25: SIM910 [*] Use `kwargs.get("consistency_level")` instead of `kwargs.get("consistency_level", None)`
+ pymilvus/orm/collection.py:1263:20: SIM910 [*] Use `info_dict.get("params")` instead of `info_dict.get("params", None)`
+ pymilvus/orm/schema.py:312:12: SIM910 [*] Use `raw.get("auto_id")` instead of `raw.get("auto_id", None)`
+ pymilvus/orm/schema.py:313:33: SIM910 [*] Use `raw.get("auto_id")` instead of `raw.get("auto_id", None)`
+ pymilvus/orm/schema.py:316:34: SIM910 [*] Use `raw.get("element_type")` instead of `raw.get("element_type", None)`

mlflow/mlflow (+2 -0 violations, +0 -0 fixes)

+ mlflow/utils/import_hooks/__init__.py:211:13: SIM910 [*] Use `_post_import_hooks.get(name)` instead of `_post_import_hooks.get(name, None)`
+ mlflow/utils/import_hooks/__init__.py:222:13: SIM910 [*] Use `_import_error_hooks.get(module_name)` instead of `_import_error_hooks.get(module_name, None)`

reflex-dev/reflex (+0 -0 violations, +2 -0 fixes)

- scripts/pyi_generator.py:718:13: SIM114 Combine `if` branches using logical `or` operator
+ scripts/pyi_generator.py:718:13: SIM114 [*] Combine `if` branches using logical `or` operator

... Truncated remaining completed project reports due to GitHub comment length restrictions

Changes by rule (14 rules affected)

code total + violation - violation + fix - fix
D300 2946 0 0 2946 0
UP007 2498 0 0 2498 0
SIM910 848 848 0 0 0
SIM118 358 0 0 358 0
PLR5501 148 0 0 148 0
SIM114 60 0 0 60 0
PLW0120 26 0 0 26 0
PYI030 8 0 0 8 0
PIE800 8 0 0 8 0
TRY400 4 0 0 4 0
F811 4 0 0 4 0
B033 2 0 0 2 0
E401 2 0 0 2 0
UP006 2 0 0 2 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+180 -0 violations, +0 -0 fixes in 5 projects; 38 projects unchanged)

RasaHQ/rasa (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --preview

+ tests/utils/tensorflow/test_rasa_layers.py:832:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks

alteryx/featuretools (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --preview

+ featuretools/entityset/entityset.py:402:17: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks

bokeh/bokeh (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --preview --select ALL

+ examples/server/app/crossfilter/main.py:32:35: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks

ibis-project/ibis (+2 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --preview

+ ibis/backends/bigquery/tests/system/test_client.py:222:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ ibis/backends/bigquery/tests/system/test_client.py:223:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks

pandas-dev/pandas (+175 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --preview

+ pandas/core/_numba/extensions.py:52:8: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/algorithms.py:533:13: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/algorithms.py:790:36: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/algorithms.py:940:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/algorithms.py:940:38: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/array_algos/putmask.py:138:8: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/array_algos/putmask.py:44:13: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/datetimelike.py:661:40: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/datetimelike.py:774:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/datetimelike.py:780:20: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/datetimes.py:2426:10: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/interval.py:257:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/masked.py:968:30: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/numeric.py:164:8: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/string_arrow.py:656:32: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/timedeltas.py:1040:8: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/arrays/timedeltas.py:647:20: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/computation/expressions.py:200:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/construction.py:551:39: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/construction.py:605:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/construction.py:652:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/astype.py:103:10: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/astype.py:131:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/cast.py:1036:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/cast.py:1065:21: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/cast.py:1091:21: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/cast.py:1179:45: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/cast.py:1700:8: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/dtypes.py:450:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/dtypes/missing.py:643:10: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/frame.py:11535:33: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/frame.py:2482:24: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/frame.py:8129:20: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/groupby/generic.py:1670:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/groupby/groupby.py:1977:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexers/utils.py:321:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:5558:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7013:56: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7031:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7051:17: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7054:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7054:37: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:7124:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/base.py:873:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/indexes/datetimelike.py:156:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/internals/concat.py:371:12: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/internals/managers.py:509:16: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
+ pandas/core/nanops.py:1682:14: E721 Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks
... 127 additional changes omitted for project

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
E721 180 180 0 0 0

@charliermarsh
Copy link
Member Author

I think this regression is okay, since this is just us performing more fixes. But we should really try to get rid of the use of LibCST for dedenting, it's likely the cause of this entire regression. \cc @MichaReiser who noticed this in a previous PR as well.

@charliermarsh charliermarsh added this to the v0.2.0 milestone Jan 29, 2024
@charliermarsh charliermarsh force-pushed the charlie/fix-stable branch 2 times, most recently from 9179377 to 8d8a979 Compare January 29, 2024 19:21
@charliermarsh charliermarsh merged commit 10d0b3b into release/0.2.0 Jan 29, 2024
16 checks passed
@charliermarsh charliermarsh deleted the charlie/fix-stable branch January 29, 2024 19:32
@zanieb zanieb mentioned this pull request Jan 29, 2024
zanieb pushed a commit that referenced this pull request Jan 29, 2024
## Summary

At present, our versioning policy forbids the addition of safe fixes to
stable rules outside of a minor release, so we've accumulated a bunch of
new fixes that are behind `--preview`, and can be ungated in v0.2.0.

To find these, I just grepped for `preview.is_enabled()` and identified
all such cases. I then audited the `preview_rules` test fixtures and
removed any tests that existed only to test this autofix behavior.
zanieb added a commit that referenced this pull request Jan 30, 2024
## Summary

At present, our versioning policy forbids the addition of safe fixes to
stable rules outside of a minor release, so we've accumulated a bunch of
new fixes that are behind `--preview`, and can be ungated in v0.2.0.

To find these, I just grepped for `preview.is_enabled()` and identified
all such cases. I then audited the `preview_rules` test fixtures and
removed any tests that existed only to test this autofix behavior.
# Conflicts:
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM114_SIM114.py.snap
zanieb added a commit that referenced this pull request Feb 1, 2024
## Summary

At present, our versioning policy forbids the addition of safe fixes to
stable rules outside of a minor release, so we've accumulated a bunch of
new fixes that are behind `--preview`, and can be ungated in v0.2.0.

To find these, I just grepped for `preview.is_enabled()` and identified
all such cases. I then audited the `preview_rules` test fixtures and
removed any tests that existed only to test this autofix behavior.
# Conflicts:
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM114_SIM114.py.snap
zanieb added a commit that referenced this pull request Feb 1, 2024
## Summary

At present, our versioning policy forbids the addition of safe fixes to
stable rules outside of a minor release, so we've accumulated a bunch of
new fixes that are behind `--preview`, and can be ungated in v0.2.0.

To find these, I just grepped for `preview.is_enabled()` and identified
all such cases. I then audited the `preview_rules` test fixtures and
removed any tests that existed only to test this autofix behavior.
# Conflicts:
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap
#	crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM114_SIM114.py.snap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant