Releases: oxc-project/oxc
Releases · oxc-project/oxc
oxlint v0.16.0
Announcing Oxlint Beta: https://oxc.rs/blog/2025-03-15-oxlint-beta.html
[0.16.0] - 2025-03-16
- 225e266 linter: [BREAKING] Enable
--experimental-nested-config
by default and add--disable-nested-config
option (#9760) (camchenry)
Features
- 27d6e9b editor: Only watch .oxlintrc.json or user supplied config paths (#9731) (Nicholas Rayburn)
- 8dd6809 linter: Add
eslint/no-lonely-if
(#9660) (therewillbecode) - c22276e oxc_linter: Sort rules by plugin and rule name when outputting resolved config as a JSON string (#9799) (Nicholas Rayburn)
Bug Fixes
- 22f18ac linter: Improve
jsx-a11y/anchor-ambiguous-text
diagnostic message (#9789) (1zumii) - 6c11740 linter: False positive in
unicorn/catch-error-name
(#9763) (shulaoda)
Documentation
- ea6b6d9 linter: Improve docs for
eslint-valid-typeof
(#9797) (therewillbecode) - 2c48fba linter: Fix typo in
oxc/bad-min-max-func
(#9791) (Flo) - 210b876 linter: Improve
eslint-no-async-promise-executor
(#9778) (therewillbecode) - f8628bc linter: Improve
eslint-no-class-assign
(#9779) (therewillbecode) - faca7a8 linter: Improve
eslint-no-self-assign
(#9768) (therewillbecode)
Refactor
- 227d203 linter: Improve
typescript-no-unnecessary-type-constraint
(#9798) (therewillbecode) - 05fe2cd linter: Use
is_lexical
when checking for lexical decl (#9781) (camc314) - fcdd810 linter: Remove if let nesting from
unicorn-no-date-clone
(#9767) (therewillbecode) - 5a9e1b9 linter: Improve
typescript-no-misused-new
(#9766) (therewillbecode) - 9df5565 linter: Improve
unicorn/filename-case
(#9762) (shulaoda) - b0b1f18 linter: Remove if let nesting from
nextjs-no-async-client-component
(#9764) (therewillbecode)
oxlint v0.15.15
[0.15.15] - 2025-03-13
This release introduces a new multi-file analysis runtime that addresses numerous bugs reported by the import plugin.
Features
Bug Fixes
- 6c0978b linter: No-single-promise-in-promise-methods: do not fix Promise.all when chained (#9697) (camchenry)
- ab594f1 linter: Turn oxc/no-redundant-constructor-init into typescript/no-unnecessary-parameter-property-assignment (#9618) (Uli)
- 91c009a linter: Add missing fail cases in
eslint-no-array-constructor
(#9659) (therewillbecode) - 2810e5b linter: Add missing fail cases in eslint/no-self-compare (#9693) (therewillbecode)
Performance
- bcbb468 linter: Use
OsStr
for faster path comparison and hashing (#9685) (Boshen)
Refactor
oxlint v0.15.14
[0.15.14] - 2025-03-11
Features
- 0815fe8 linter: Add
promise/no-return-wrap
(#9537) (therewillbecode) - ae7bb75 linter: Add react/jsx-filename-extension rule (#9474) (Cédric DIRAND)
- 50327f3 linter: Add import/exports-last (#9578) (yefan)
- 75e4b8d linter: Add import/no-anonymous-default-export rule (#9481) (yefan)
- 2f08b16 linter: Add
promise/prefer-catch
(#9488) (therewillbecode) - 41f32ea linter: Allow adding more overrides via
extends
configs (#9475) (camchenry) - fb7cf10 linter: Allowing
plugins
to be extended withextends
(#9473) (camchenry) - fc74849 linter: Inherit
rules
via the extended config files (#9308) (camchenry) - 3fce826 linter: Add support for
extends
property in oxlintrc (#9217) (camchenry) - 6b95d25 parser: Disallow
TSInstantiationExpression
inSimpleAssignmentTarget
(#9586) (Boshen)
Bug Fixes
- 2d42569 linter: Rule
eslint/no-unsafe-optional-chaining
(#9632) (therewillbecode) - a9d7df9 linter: False positive in
unicorn/escape-case
(#9638) (shulaoda) - 3831819 linter: Fix example lint declaration and macro syntax (#9626) (Uli)
- 4ca62ab linter: Output right file line and column for
.vue
,.astro
and.svelte
files (#9484) (Sysix) - 3105159 linter: Do not output number of rules with nested configs (#9476) (camchenry)
- 5ecda01 linter: Support nested extending (#9472) (camchenry)
Documentation
- b7c61e9 linter: Improve docs for
eslint-guard-for-in
(#9658) (therewillbecode) - 1cc43f7 linter: Improve the documentation of
eslint-no-console
(#9612) (therewillbecode) - 608bb77 linter: Improve the docs and add test case for
typescript-no-extra-non-null-assertion
(#9609) (therewillbecode) - 43add5d linter: Better docs for
typescript-no-non-null-asserted-nullish-coalescing
rule (#9610) (therewillbecode) - bd90ce6 linter: Improve the docs and add test cases for
eslint-no-shadow-restricted-names
(#9597) (therewillbecode) - a0c9f7c linter: Improve the documentation of
eslint-no-func-assign
(#9596) (therewillbecode) - ec922e9 linter: Improve the documentation of
typescript-consistent-type-definitions
(#9575) (therewillbecode) - 165c89d linter: Improve the documentation of
typescript-no-namespace
(#9545) (therewillbecode)
Refactor
- c174600 linter: Improve
eslint/no-duplicate-imports
(#9627) (therewillbecode) - 31ba425 linter: Improve
eslint/no-self-assign
(#9635) (therewillbecode) - 03a40df linter: Access scoping from
ctx
directly (#9624) (Boshen) - be5e5dc linter: Improve
unicorn/escape-case
(#9568) (shulaoda) - b7f82fc linter: Improve
unicorn/error-message
(#9560) (shulaoda) - 069ef2d linter: Improve
promise/no-nesting
(#9544) (therewillbecode)
Testing
oxlint v0.15.13
[0.15.13] - 2025-03-04
Features
- 7bb0121 linter: Add
react/no-namespace
(#9404) (Mikhail Baev) - 0a7ca20 linter: Support allowable method diagnostic for eslint/no-console (#9454) (Boshen)
- d99bc51 linter: Add import/no-absolute-path rule (#9415) (yefan)
- 8c71590 linter: Add import/no-mutable-exports rule (#9434) (yefan)
- b65f8a5 linter: Add
promise/no-nesting
(#9345) (Tom) - d38e6de linter: Add
eslint/no-spaced-func
(#9360) (Tom) - 25392de linter: Add eslint/operator-assignment rule (#9208) (yefan)
- bf77167 linter: Add
curly
rule (#8123) (Yuichiro Yamashita) - e3b6eeb linter: Add
unicorn/consistent-date-clone
(#9346) (Amol Bhave) - 5ee2cab linter: Improve no_invalid_fetch_options (#9347) (Brooooooklyn)
- 4ad328b linter: Add oxc/no-redundant-constructor-init (#9299) (Ben Jones)
Bug Fixes
- c4624a6 linter: Fix panic in
import/no-absolute-path
(#9500) (camc314) - 4b0327b linter: False positive in
eslint/curly
(#9471) (Kevin Deng 三咲智子) - 8804555 linter: Skip
no-absolute-path
tests on windows (#9435) (Cameron) - 06fe76d linter: Rule
no-restricted-imports
use right span for exports statements (#9442) (Sysix) - 3da3565 linter: Rule
unicorn/no-invalid-fetch-options
(#9416) (Tom) - 85fbe8c linter: Rule
eslint/radix
look into globals config (#9407) (Sysix) - 1113e3b linter: Rule
eslint/no-object-constructor
look into globals config (#9406) (Sysix) - 0217ebb linter: Support more cases for no_redundant_constructor_init (#9364) (Ben Jones)
Documentation
- 24850e7 linter: Add example of how configure rule (#9469) (Cédric DIRAND)
- acb1e2c linter: Add end code tag on rule doc (#9470) (Cédric DIRAND)
- d43b456 linter: Add full documentation to rule
no-restricted-imports
(#9440) (Sysix)
Refactor
- ffec3f6 linter: Improve
eslint/no-new
(#9423) (Tom) - 7c27f10 linter: Move rule
no-restricted-imports
to categoryrestriction
(#9443) (Sysix) - 7e118a3 linter: Improve
typescript/explicit-function-return-type
(#9439) (Tom) - 5318cf2 linter: Improve
eslint/no-spaced-func
(#9419) (shulaoda) - 802f00e linter: Use the
javascript-globals
crate (#9412) (Boshen) - bff83c9 linter: Improve
eslint/no-unsafe-negation
(#9362) (dalaoshu) - 228bf99 linter: Improve
unicorn/empty-brace-spaces
(#9341) (dalaoshu) - 55d071b linter: Improve
unicorn/consistent-existence-index-check
(#9339) (dalaoshu) - 17acece linter: Improve
eslint/no-template-curly-in-string
(#9090) (dalaoshu)
oxlint v0.15.12
[0.15.12] - 2025-02-24
Features
- 914dd46 linter: Add eslint/max-depth (#9173) (ikkz)
- 0b08159 linter: Add eslint/max-lines-per-function (#9161) (ikkz)
- cc8dd48 linter: Add unicorn/no-invalid-fetch-options rule (#9212) (Mikhail Baev)
- af13b1b linter: Promote
eslint/no-eval
tocorrectness
(#9231) (dalaoshu) - 542bbd7 linter: Support
import-x
plugin name (#9074) (Sysix) - d266c29 linter: Add eslint/max-nested-callbacks (#9172) (ikkz)
- 86795d0 linter: Implement grouped-accessor-pairs (#9065) (yefan)
- d70bad3 linter: Add eslint/no-unneeded-ternary rule (#9160) (Cédric DIRAND)
- 4bd86e6 linter: Add
fixer
forunicorn/catch-error-name
(#9165) (dalaoshu)
Bug Fixes
- 94bd2d8 language_server: Fix
clippy::significant_drop_in_scrutinee
warning (#9234) (Boshen) - 69091c0 linter: Correct default for
eslint/no-eval
(#9312) (dalaoshu) - 3031845 linter: Add option "allowTypeImports" for rule "no-restricted-imports" (#7894) (Alexander S.)
Documentation
- 6c0f006 linter: Improve the documentation of eslint/no-useless-concat (#9179) (Tom)
- 3414824 oxc: Enable
clippy::too_long_first_doc_paragraph
(#9237) (Boshen)
Refactor
oxlint v0.15.11
[0.15.11] - 2025-02-16
Features
- d93bf0e linter: Implement func-style rule (#8977) (yefan)
- a870526 linter: Add vitest/no-standalone-expect rule (#8986) (Tyler Earls)
- addaa8e linter: Support es2025 env (#8985) (Sysix)
- 5d508a4 linter: Support
env
andglobals
inoverrides
configuration (#8915) (Sysix) - 41ad42a linter: Add init-declarations rule (#8909) (yefan)
- 125d610 minifier: Fold String::charAt / String::charCodeAt more precisely (#9082) (sapphi-red)
Bug Fixes
- 47c1649 linter: Output line/column for
--format=stylish
instead of offset + length (#9136) (Sysix) - b68e240 linter: Rule
unicorn/new-for-builtins
do not look intoglobals
(#9146) (Sysix) - 490c77d linter: Rule
no-constant-binary-expression
do not look intoglobals
(#9145) (Sysix) - b36734c linter: Rule
promise/avoid-new
do not look intoglobals
(#9144) (Sysix) - 091a5c1 linter: Rule
no-new-native-nonconstructor
do not look into globals (#9143) (Sysix) - 1c1d2e6 linter: Rule
symbol-description
do not look intoglobals
(#9142) (Sysix) - 6d15153 linter: Rule
prefer-object-spreads
do not look intoglobals
(#9141) (Sysix) - 9214661 linter: Rule
valid-typeof
do not check forglobals
(#9140) (Sysix) - 29141d6 linter: Rule
no-restricted-globals
: do not check forglobals
entries (#9139) (Sysix) - 23d0d95 linter: Report
no-console
when theglobals.console
isoff
(#9138) (Sysix) - 157e1a1 linter: False positive in
jest/no-conditional-expect
(#9053) (dalaoshu) - 28b5990 linter: Rule
no-restricted-imports
: improve diagnostics (#8113) (Alexander S.) - b191390 linter:
no-global-assign
look intoglobals
config (#8963) (Sysix) - 44d985b linter: Correct the
is_reference_to_global_variable
(#8920) (dalaoshu)
Documentation
Refactor
oxlint v0.15.10
[0.15.10] - 2025-02-06
Features
- d6d80f7 linter: Add suggestion fixer for
eslint/no-iterator
(#8894) (dalaoshu) - 7e8568b linter: Junit reporter (#8756) (Tapan Prakash)
- f4662a9 oxc_language_server: Implement
oxc.fixAll
workspace command (#8858) (Marek Vospel)
Bug Fixes
- baf3e4e linter: Correctly replace rule severity with duplicate rule name configurations (#8840) (dalaoshu)
Performance
- 8a4988d linter: Use parallel iterator directly instead of iter and parallel bridge (#8831) (Cam McHenry)
Refactor
oxlint v0.15.9
[0.15.9] - 2025-02-01
Features
- 1a41181 linter: Implement
eslint/prefer-object-spread
(#8216) (tbashiyy) - adb8ebd linter: Implement no-useless-call rule (#8789) (keita hino)
- 3790933 linter: Add vitest/prefer-lowercase-title rule (#8152) (Tyler Earls)
- e8e6917 linter: Unicorn/switch-cases-braces support options (#8704) (1zumii)
Bug Fixes
- 8ce21d1 linter: Can't disable
no-nested-ternary
rule anymore (#8600) (dalaoshu) - e929f26 linter: Output
LintCommandInfo
forCliRunResult::LintNoFilesFound
(#8714) (Sysix) - 4f30a17 linter: Unicorn/switch-case-braces mangles code when applying fix (#8758) (Tyler Earls)
- 9cc9d5f linter:
ignorePatterns
does not work when files are provided as command arguments (#8590) (dalaoshu) - 1de6f85 linter: No-lone-blocks erroring on block statements containing comments (#8720) (Tyler Earls)
- 77ef61a linter: Fix diagnostic spans for
oxc/no-async-await
(#8721) (camchenry) - f15bdce linter: Catch
Promise
intypescript/array-type
rule (#8702) (Rintaro Itokawa) - 5041cb3 vscode: Fix commands by reverting commit
259a47b
(#8819) (Alexander S.)
Performance
Documentation
Refactor
- c2fdfc4 linter: Correctly handle loose options for
eslint/eqeqeq
(#8798) (dalaoshu) - 0aeaedd linter: Support loose options for
eslint/eqeqeq
(#8790) (dalaoshu) - 194a5ff linter: Remove
LintResult
(#8712) (Sysix) - 4a2f2a9 linter: Move default
all_rules
output to trait (#8710) (Sysix) - 741fb40 linter: Move stdout outside LintRunner (#8694) (Sysix)
- 10e5920 linter: Move finishing default diagnostic message to
GraphicalReporter
(#8683) (Sysix) - 9731c56 oxlint: Move output from
CliRunResult::InvalidOption
to outside and use more Enums for different invalid options (#8778) (Sysix) - fe45bee oxlint: Create different
CliRunResult
instead of passingExitCode
to it (#8777) (Sysix) - 2378fef oxlint: Move ConfigFileInit output outside CliRunResult, exit code 1 when it fails (#8776) (Sysix)
- f4cecb5 oxlint: Remove unused
CliRunResult::PathNotFound
(#8775) (Sysix)
Testing
- ad35e82 linter: Use snapshot testing instead of LintResult (#8711) (Sysix)
- bf895eb linter: Add diagnostic format test snapshots (#8696) (Alexander S.)
- 34d3d72 linter: Add snapshot tester for cli (#8695) (Sysix)
- 0bf2bcf oxlint: Test two real rules with same name but from different plugins (#8821) (dalaoshu)
- 2b83b71 oxlint: Improve disabling "no-nested-ternary" tests (#8814) (Alexander S.)
- 45648e7 oxlint: Fix InvalidOptionTsConfig tests for windows (#8791) (Alexander S.)
- 48bfed9 oxlint: Ignore windows path mismatch (Boshen)
- 6f4a023 oxlint: Remove "--print-config" test (#8792) (Sysix)
- 55c2025 oxlint: Add
CliRunResult
to snapshot (#8780) (Sysix)
oxlint v0.15.8
[0.15.8] - 2025-01-24
Features
- 79ba9b5 linter: Added support to run in Node.JS legacy versions (#8648) (Luiz Felipe Weber)
- dcaebe6 linter: Add "strict" option to
promise/prefer-await-to-then
rule (#8674) (Neil Fisher) - 4ae568e linter: Add DiagnosticResult to the Reporters for receiving a sub part result (#8666) (Alexander S.)
- 8a0eb2a oxlint: Add stylish formatter (#8607) (Andrew Powell)
Bug Fixes
- 40316af linter: Fix github
endColumn
output (#8647) (Alexander S.) - dc912fa linter: Added missing $schema property to default config (#8625) (Tapan Prakash)
Refactor
- a3dc4c3 crates: Clean up snapshot files (#8680) (Boshen)
- e66da9f isolated_declarations, linter, minifier, prettier, semantic, transformer: Remove unnecessary
ref
/ref mut
syntax (#8643) (overlookmotel) - 23b49a6 linter: Use
cow_to_ascii_lowercase
insteadcow_to_lowercase
(#8678) (Boshen) - b8d9a51 span: Deal only in owned
Atom
s (#8641) (overlookmotel) - ac4f98e span: Derive
Copy
onAtom
(#8596) (branchseer) - 259a47b vscode: Move commands and
findBinary
to separate files (#8605) (Alexander S.)
oxlint v0.15.7
[0.15.7] - 2025-01-19
Features
- 01ac773 linter: Support
ignoreTypeOfTestName
forjest/valid-title
(#8589) (dalaoshu) - 538b24a linter: Format the configuration documentation correctly (#8583) (Tapan Prakash)
- 7ab14cc linter: Add more Vitest compatible Jest rules (#8445) (Anson Heung)
- d178360 linter: Implement
eslint/prefer-promise-reject-errors
(#8254) (tbashiyy) - 4ac2e99 oxlint: Implement
--init
cli option (#8453) (Tapan Prakash)
Bug Fixes
- 855c839 codegen: Shorthand assignment target identifier consider mangled names (#8536) (Boshen)
- c15af02 linter: False positive in
eslint/no-lone-blocks
(#8587) (dalaoshu) - 41f2070 linter: Rule
no-restricted-imports
support missing options (#8076) (Alexander S.) - 869bc73 linter: Enhance
default_param_last
rule to handle optional parameters (#8563) (Tapan Prakash) - c6260c2 linter: Support rest params for
prefer_promise_reject_errors
(#8468) (Yuichiro Yamashita) - 2be1e82 linter/no-unused-vars: False positives when variable and type have same name (#8465) (Dunqing)
Performance
- 250bbd1 linter/react-exhaustive-deps: Use stack of
AstType
s instead ofAstKind
s (#8522) (overlookmotel)
Refactor
- 40f5165 linter: Improve
eslint/no-lone-blocks
(#8588) (dalaoshu) - b4c87e2 linter: Move DiagnosticsReporters to oxlint (#8454) (Alexander S.)
- bf00f82 linter: Move rule
prefer-each
from vitest to jest + remapping (#8448) (Alexander S.) - 8dd0013 linter/consistent-function-scoping: Remove
Visit::enter_node
usage (#8538) (overlookmotel) - 30c0689 linter/no-map-spread: Remove
Visit::enter_node
usage (#8537) (overlookmotel) - b5ed58e span: All methods take owned
Span
(#8297) (overlookmotel)