Skip to content

Releases: oxc-project/oxc

oxlint v0.16.0

16 Mar 02:41
fef680a
Compare
Choose a tag to compare

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

13 Mar 00:15
b5f8222
Compare
Choose a tag to compare

[0.15.15] - 2025-03-13

This release introduces a new multi-file analysis runtime that addresses numerous bugs reported by the import plugin.

  • 474a57b linter: A new multi-file analysis runtime (#9383) (branchseer)

Features

  • 2ddad59 linter: Add unicorn/require-post-message-target-origin rule (#9684) (yefan)

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

  • b9ab60b linter: Remove if let nesting from bad-min-max-function (#9722) (therewillbecode)
  • 90b0227 linter: Remove if let nesting from eslint-operator-assignment (#9721) (therewillbecode)
  • 5ef578e linter: Improve jest/no-alias-methods (#9694) (therewillbecode)

oxlint v0.15.14

11 Mar 08:27
75d33e8
Compare
Choose a tag to compare

[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 with extends (#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 in SimpleAssignmentTarget (#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

  • 934a387 linter: Remove test dependency on oxlint (#9513) (camchenry)

oxlint v0.15.13

04 Mar 02:05
a84f6c2
Compare
Choose a tag to compare

[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 category restriction (#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

24 Feb 08:02
6764b8d
Compare
Choose a tag to compare

[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 to correctness (#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 for unicorn/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

  • fb7df52 linter: Allow indirect eval by default for eslint/no-eval (#9302) (dalaoshu)
  • b6fc0f6 linter: Improve unicorn/consistent-function-scoping (#9163) (dalaoshu)

oxlint v0.15.11

16 Feb 01:36
7f5c5d2
Compare
Choose a tag to compare

[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 and globals in overrides 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 into globals (#9146) (Sysix)
  • 490c77d linter: Rule no-constant-binary-expression do not look into globals (#9145) (Sysix)
  • b36734c linter: Rule promise/avoid-new do not look into globals (#9144) (Sysix)
  • 091a5c1 linter: Rule no-new-native-nonconstructor do not look into globals (#9143) (Sysix)
  • 1c1d2e6 linter: Rule symbol-description do not look into globals (#9142) (Sysix)
  • 6d15153 linter: Rule prefer-object-spreads do not look into globals (#9141) (Sysix)
  • 9214661 linter: Rule valid-typeof do not check for globals (#9140) (Sysix)
  • 29141d6 linter: Rule no-restricted-globals: do not check for globals entries (#9139) (Sysix)
  • 23d0d95 linter: Report no-console when the globals.console is off (#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 into globals config (#8963) (Sysix)
  • 44d985b linter: Correct the is_reference_to_global_variable (#8920) (dalaoshu)

Documentation

  • 02cb45b linter: Add prettier-ignore where formatting ruins code (#8978) (camchenry)

Refactor

  • 9ca22f4 linter: Improve jsx-a11y/heading-has-content (#9089) (dalaoshu)

oxlint v0.15.10

06 Feb 06:58
6942d2d
Compare
Choose a tag to compare

[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

  • bb9d763 linter: Remove usage of url crate (#8833) (camchenry)
  • 4fcf719 linter: Replace MIME guessing with extension check (#8832) (camchenry)

oxlint v0.15.9

01 Feb 14:19
0063318
Compare
Choose a tag to compare

[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 for CliRunResult::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 in typescript/array-type rule (#8702) (Rintaro Itokawa)
  • 5041cb3 vscode: Fix commands by reverting commit 259a47b (#8819) (Alexander S.)

Performance

  • d318238 linter: Remove sorting of rules in cache (#8718) (camchenry)

Documentation

  • 57b7ca8 ast: Add documentation for all remaining JS AST methods (#8820) (Cam McHenry)

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 passing ExitCode 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

24 Jan 10:22
b977678
Compare
Choose a tag to compare

[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 instead cow_to_lowercase (#8678) (Boshen)
  • b8d9a51 span: Deal only in owned Atoms (#8641) (overlookmotel)
  • ac4f98e span: Derive Copy on Atom (#8596) (branchseer)
  • 259a47b vscode: Move commands and findBinary to separate files (#8605) (Alexander S.)

oxlint v0.15.7

19 Jan 01:16
66c8720
Compare
Choose a tag to compare

[0.15.7] - 2025-01-19

Features

  • 01ac773 linter: Support ignoreTypeOfTestName for jest/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 AstTypes instead of AstKinds (#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)

Styling

  • 3789d2f linter/react-exhaustive-deps: Fix indentation (#8520) (overlookmotel)