Skip to content

fix(oxlint)!: Deprecate "always" and "as-needed" options of the radix rule#19408

Merged
graphite-app[bot] merged 1 commit intomainfrom
02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule
Feb 17, 2026
Merged

fix(oxlint)!: Deprecate "always" and "as-needed" options of the radix rule#19408
graphite-app[bot] merged 1 commit intomainfrom
02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule

Conversation

@Sysix
Copy link
Member

@Sysix Sysix commented Feb 15, 2026

upstream PR: eslint/eslint#20223

found here: https://github.com/oxc-project/eslint-plugin-oxlint/actions/runs/22040552727/job/63680629647?pr=632

updated the test via just new-rule radix, there is a simpler command, but it works :)

+ little optimization for the fixer. Some variables are only needed there :)

Copy link
Member Author

Sysix commented Feb 15, 2026


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • 0-merge - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions bot added A-linter Area - Linter C-bug Category - Bug labels Feb 15, 2026
@codspeed-hq
Copy link

codspeed-hq bot commented Feb 15, 2026

Merging this PR will not alter performance

✅ 47 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule (ff3b9e4) with main (5707e5c)

Open in CodSpeed

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@Sysix Sysix force-pushed the 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule branch from 19b3611 to f058856 Compare February 15, 2026 19:29
@Sysix Sysix marked this pull request as ready for review February 15, 2026 19:32
@Sysix Sysix requested a review from camc314 as a code owner February 15, 2026 19:32
Copilot AI review requested due to automatic review settings February 15, 2026 19:32
@Sysix Sysix changed the title fix(oxlint)!: fix!: Deprecate "always" and "as-needed" options of the radix rule fix(oxlint)!: Deprecate "always" and "as-needed" options of the radix rule Feb 15, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the eslint/radix rule implementation in oxc_linter to align with ESLint v10 behavior by removing the historical "always" / "as-needed" configuration modes and updating expected diagnostics/snapshots accordingly.

Changes:

  • Removes rule configuration parsing/types for radix and treats the rule as unconfigured (matching ESLint v10’s deprecation of options).
  • Drops the “redundant radix parameter” diagnostic path and updates tests to reflect the new behavior matrix.
  • Refreshes the snapshot output and expands fixer test cases (e.g., Number.parseInt* / optional chaining).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
crates/oxc_linter/src/rules/eslint/radix.rs Simplifies rule config and behavior to match ESLint v10; updates diagnostics, fixer behavior, and unit tests.
crates/oxc_linter/src/snapshots/eslint_radix.snap Updates snapshot output to match the revised test cases and diagnostics ordering/content.

@connorshea
Copy link
Member

connorshea commented Feb 15, 2026

My concern is that this will cause people's configs to error when they upgrade or migrate. I think this may be premature to remove entirely. #18809

@camc314
Copy link
Contributor

camc314 commented Feb 15, 2026

Shall we just make the option not do anything instead?

@Sysix
Copy link
Member Author

Sysix commented Feb 15, 2026

Shall we just make the option not do anything instead?

Sounds good for me. I will go to bed, feel free to update the PR to merge it before the next release :)

@connorshea
Copy link
Member

That works for me as well

@Sysix Sysix force-pushed the 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule branch from f058856 to ed64301 Compare February 16, 2026 17:30
@Sysix Sysix force-pushed the 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule branch from ed64301 to ff3b9e4 Compare February 16, 2026 18:31
@Sysix Sysix requested review from camc314 and connorshea February 16, 2026 18:47
Copy link
Member

@connorshea connorshea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, checked the docs and this gets rid of the config options from the page!

@camc314 camc314 added the 0-merge Merge with Graphite Merge Queue label Feb 17, 2026
Copy link
Contributor

camc314 commented Feb 17, 2026

Merge activity

…adix rule (#19408)

upstream PR: eslint/eslint#20223

found here: https://github.com/oxc-project/eslint-plugin-oxlint/actions/runs/22040552727/job/63680629647?pr=632

updated the test via `just new-rule radix`, there is a simpler command, but it works :)

\+ little optimization for the fixer. Some variables are only needed there :)
@graphite-app graphite-app bot force-pushed the 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule branch from ff3b9e4 to 4315594 Compare February 17, 2026 16:57
@graphite-app graphite-app bot merged commit 4315594 into main Feb 17, 2026
21 checks passed
@graphite-app graphite-app bot deleted the 02-15-fix_oxlint_fix_deprecate_always_and_as-needed_options_of_the_radix_rule branch February 17, 2026 17:04
@graphite-app graphite-app bot removed the 0-merge Merge with Graphite Merge Queue label Feb 17, 2026
camc314 added a commit that referenced this pull request Feb 19, 2026
# Oxlint
### 💥 BREAKING CHANGES

- 4315594 oxlint: [**BREAKING**] Deprecate `"always"` and `"as-needed"`
options of the radix rule (#19408) (Sysix)
- d4c7af3 linter: [**BREAKING**] Remove
`allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing` option (#19451)
(camc314)

### 🚀 Features

- 82ca5c3 linter: Add typescript/dot-notation rule (#19442) (camc314)
- 6db0811 linter: Implement
eslint-plugin-vitest/no-importing-vitest-globals (#18694) (Said
Atrahouch)
- c7fe8ae linter: Implement eslint-plugin-vitest/prefer-import-in-mock
(#17966) (Said Atrahouch)
- 0abb39a linter: Implement
eslint-vitest-jest-plugin/prefer-mock-return-shorthand (#18002) (Said
Atrahouch)
- 2b95537 linter: Implement `n/no-path-concat` rule (#19502) (Mikhail
Baev)
- 735d0e4 linter: Implement typescript/no-useless-default-assignment
(#19488) (camc314)
- 31c3a93 linter: Add typescript/no-unnecessary-type-parameters rule
(#19450) (camc314)
- c948090 linter: Add typescript/consistent-return rule (#19449)
(camc314)
- 9f87df0 linter: Add typescript/prefer-string-starts-ends-with rule
(#19448) (camc314)
- 04536be linter: Add typescript/prefer-regexp-exec rule (#19447)
(camc314)
- 56a7feb linter: Add typescript/prefer-readonly rule (#19446) (camc314)
- a1cea63 linter: Add typescript/no-unnecessary-qualifier rule (#19445)
(camc314)
- e3144d2 linter: Add typescript/prefer-find rule (#19444) (camc314)
- 13c7408 linter: Add typescript/prefer-readonly-parameter-types rule
(#19443) (camc314)
- 9b17d44 linter: Add typescript/strict-void-return rule (#19441)
(camc314)
- ed821b4 linter: Add typescript/consistent-type-exports rule (#19440)
(camc314)

### 🐛 Bug Fixes

- daad7bc linter/array-callback-return: Check `allowVoid` option
(#19506) (Said Atrahouch)
- 638cf94 linter: Add help text to eslint rule diagnostics (#19508)
(Kyle Tse)
- 79fc6d7 linter: Move no-use-before-define to eslint plugin (#19438)
(camc314)
- c832a9f linter: Add `onScrollEnd` and `onScrollEndCapture` to
`react/no-unknown-property`. (#19536) (connorshea)
- 999a0db linter: Add help text to `symbol-description` diagnostics
(#19538) (Anthony Amaro)
- f064482 linter: Add help text to eslint rule diagnostics (#19539)
(Anthony Amaro)
- fd11073 linter/react/no-unknown-property: Add missing `fetchPriority`
prop (#19525) (João Pedro Schmitz)
- a9bb604 linter/no-shadow: Align initializer shadow handling with
typescript-eslint (#19462) (camc314)
- 32e6eb9 linter: Handle typed arrays/array buffers in `prefer-spread`
rule. (#19478) (connorshea)
- e309f84 linter: Handle additional cases in
`typescript/consistent-generic-constructors` rule. (#19477) (connorshea)
- 71db91a linter/array-callback-return: Check `fromAsync`, update test
cases (#19483) (Said Atrahouch)
- 2a12d74 linter: Handle optional chaining in
`no-array-method-this-argument` rule. (#19476) (connorshea)
- f65310b linter: Handle optional chaining in
`prefer-object-from-entries` rule. (#19475) (connorshea)
- 840acf4 linter: Handle optional chain in
`no-unnecessary-array-flat-depth` rule. (#19471) (connorshea)
- 85a19e9 linter: Skip string literal imports in `consistent-assert`
rule. (#19474) (connorshea)

### ⚡ Performance

- 6155ac4 linter/constructor-super: Use node_id over nodes loop (#19489)
(camc314)
- a02496d linter/consistent-index-object-style: Resolve circular type
refs semantically (#19490) (camc314)
# Oxfmt
### 🚀 Features

- 652c346 oxfmt/lsp: Support `untitled://` schema (#19287) (Sysix)

### 🐛 Bug Fixes

- 6c61b70 oxfmt: Fix outdated `sortImports.groups` doc comments (#19513)
(leaysgur)

Co-authored-by: camc314 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-linter Area - Linter C-bug Category - Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments