Skip to content

Releases: oxc-project/oxc

oxlint v0.11.1

09 Nov 12:18
68dc899
Compare
Choose a tag to compare

[0.11.1] - 2024-11-09

Features

  • 4dd9b60 editor/vscode: Replace existing output channel and trace output channel with a single LogOutputChannel (#7196) (Nicholas Rayburn)
  • 1fcd709 linter: Add jsx support for only-used-in-recursion (#7120) (no-yan)
  • 4d577cf linter: Add import/first rule (#7180) (Dmitry Zakharov)
  • 9b8973f linter: Add import/unambiguous rule (#7187) (Dmitry Zakharov)
  • 5ab1ff6 linter: Implement @typescript-eslint/no-unsafe-function-type (#6989) (Orenbek)

Bug Fixes

  • eea8879 editor/vscode: Update language client id to fix the resolution of the oxc.trace.server setting (#7181) (Nicholas Rayburn)
  • b73cfd9 linter: Fix is_method_call with parentheses and chain expression (#7095) (tbashiyy)

Refactor

  • 8c0a362 linter: Use ctx.source_range(comment.content_span()) API (#7155) (Boshen)
  • c5485ae semantic: Add ancestor_kinds iterator function (#7217) (camchenry)
  • abf1602 semantic: Rename iter_parents to ancestors (#7216) (camchenry)
  • 42171eb semantic: Rename ancestors to ancestor_ids (#7215) (camchenry)

oxlint v0.11.0

03 Nov 03:43
2d40b07
Compare
Choose a tag to compare

[0.11.0] - 2024-11-03

  • 9fd9f4f linter: [BREAKING] Sync sindresorhus/globals; removed Object.prototype properties from builtin and es* globals (#6991) (Boshen)

Features

  • 6b619da editor: Listen to config file changes and trigger a didChangeConfiguration update (#6964) (Nicholas Rayburn)
  • 7872927 editor/vscode: Support window/showMessage event (#7085) (Nicholas Rayburn)
  • 2184588 linter: Do not bail for unmatched rules yet (#7093) (Boshen)
  • a6fcd81 linter: Add import/no-commonjs rule (#6978) (Dmitry Zakharov)
  • 1691cab linter: Support user-configurable secrets for oxc-security/api-keys (#5938) (DonIsaac)
  • 610621c linter: Implement react/style-prop-object (#6342) (Albert Kaaman)
  • 1e2f012 linter: Add oxc/no-map-spread (#6751) (DonIsaac)
  • 1c66473 linter: Implement eslint/prefer-object-has-own (#6905) (tomoya yanagibashi)

Bug Fixes

  • ebf3753 editor: Fix onConfigChange to send the correct config for didChangeConfiguration notification (#6962) (Nicholas Rayburn)
  • 79bf74a linter: Check is_reference_to_global_variable in no-array-constructor (#7067) (Naoya Yoshizawa)
  • 38d1f78 linter: Remove confusing help text for now (#7081) (Cam McHenry)
  • 147e2e4 linter: Allow replacing rule when none are enabled yet (#7014) (camchenry)
  • 7aa496a linter: Remove unsafe fixer of no-useless-spread (#6655) (dalaoshu)
  • f5a7134 linter/no-unused-vars: False positive for discarded reads within sequences (#6907) (DonIsaac)

Documentation

Refactor

  • a8dc75d linter: Remove unused CLI result types (#7088) (camchenry)
  • 8f1460e linter: Move LintPlugins from LintOptions to LintConfig (#6932) (DonIsaac)

Testing

  • c35d3f2 linter: Improve test failure output (#6975) (camchenry)

oxlint v0.10.3

26 Oct 09:28
1ea0be1
Compare
Choose a tag to compare

[0.10.3] - 2024-10-26

This release warns unmatched rules, for example

  ! The following rules do not match the currently supported rules:
  | no-test-callback
  | prefer-rest-params
  | no-danger

Features

  • a73c5af linter: Add fixer for jsx-a11y/no-access-key rule (#6781) (Tapan Prakash)
  • 2aa763c linter: Warn unmatched rule names (#6782) (Tapan Prakash)
  • 0acca58 linter: Support --print-config all to print config file for project (#6579) (mysteryven)

Bug Fixes

  • cb5cb62 linter: Eprintln unmatched rules warning (#6916) (Boshen)
  • f49b3e2 linter: react/iframe-missing-sandbox ignores vanilla JS APIs (#6872) (DonIsaac)
  • 54a5032 linter: Correct false positive in no-duplicates (#6748) (dalaoshu)
  • a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen)

Documentation

  • 3923e63 linter: Add schema to config examples (#6838) (Dmitry Zakharov)

Refactor

  • a148023 linter: Dereference IDs as soon as possible (#6821) (overlookmotel)
  • 423d54c rust: Remove the annoying clippy::wildcard_imports (#6860) (Boshen)

oxlint v0.10.2

22 Oct 05:18
9648e98
Compare
Choose a tag to compare

[0.10.2] - 2024-10-22

Features

  • dbe1972 linter: Import/no-cycle should turn on ignore_types by default (#6761) (Boshen)
  • 619d06f linter: Fix suggestion for eslint:no_empty_static_block rule (#6732) (Tapan Prakash)

Bug Fixes

Performance

  • 8387bac linter: Apply small file optimization, up to 30% faster (#6600) (camchenry)

Refactor

  • b884577 linter: All ast_util functions take Semantic (#6753) (DonIsaac)
  • 744aa74 linter: Impl Deref<Target = Semantic> for LintContext (#6752) (DonIsaac)
  • 6ffdcc0 oxlint: Lint/mod.rs -> lint.rs (#6746) (Boshen)

Testing

oxlint v0.10.1

21 Oct 05:03
abb4ff3
Compare
Choose a tag to compare

[0.10.1] - 2024-10-21

Features

  • af25752 linter: Add unicorn/prefer-math-min-max (#6621) (Brian Liu)
  • 5095f02 linter: Added fixer for duplicate prefix in valid title jest rule (#6699) (Tapan Prakash)
  • e9976d4 linter: Add title whitespace fixer for jest valid title rule (#6669) (Tapan Prakash)
  • 45f02d5 linter: Add unicorn/consistent-empty-array-spread (#6695) (Brian Liu)
  • 01a35bb linter/eslint: Show ignore patterns in eslint/no-unused-vars diagnostic messages (#6696) (DonIsaac)

Bug Fixes

  • 1bcd707 editor: Update config sent to language server (#6724) (Nicholas Rayburn)
  • ce25c45 linter: Panic in disable-directives (#6677) (dalaoshu)
  • a5de230 linter/import: import/no-duplicates handles namespace imports correctly (#6694) (DonIsaac)
  • b0b6ac7 linter/no-cond-assign: False positive when assignment is in body statement (#6665) (camchenry)

Performance

  • 6a76ea8 linter/no-unused-vars: Use default IgnorePattern when /^_/ is provided as a pattern (#6697) (DonIsaac)

Refactor

  • d6609e9 linter: Use run_on_jest_node for existing lint rules (#6722) (camchenry)
  • 97195ec linter: Add run_on_jest_node to run rules on only jest nodes (#6721) (camchenry)
  • 155fe7e linter: Allow Semantic to be passed for collecting Jest nodes (#6720) (camchenry)
  • ad8f281 linter: Use iter for collecting jest nodes (#6719) (camchenry)
  • dc19a8f linter: Use iterator for collecting jest imports (#6718) (camchenry)
  • 29c1447 linter: jest/valid-title fixer to use Span::shrink method (#6703) (Tapan Prakash)
  • 2eb984a linter: Add missing should_run implementations (#6666) (camchenry)
  • 23f88b3 linter/import: Better diagnostic messages for import/no-duplicates (#6693) (DonIsaac)

oxlint v0.10.0

19 Oct 01:26
70c6f24
Compare
Choose a tag to compare

[0.10.0] - 2024-10-19

Oxlint v0.10 Migration Guide

  • 7f6b219 editor/vscode: [BREAKING] Unify configuration logic (#6630) (DonIsaac)

  • 80266d8 linter: [BREAKING] Support plugins in oxlint config files (#6088) (DonIsaac)

Features

  • 6f22538 ecmascript: Add ToBoolean, ToNumber, ToString (#6502) (Boshen)
  • 1e7fab3 linter: Implement no-callback-in-promise (#6157) (dalaoshu)
  • c56343d linter: Promote no_unsafe_optional_chaining to correctness (#6491) (Boshen)
  • 454874a linter: Implement react/iframe-missing-sandbox (#6383) (Radu Baston)
  • c8174e2 linter: Add suggestions for no-plusplus (#6376) (camchenry)
  • 6e3224d linter: Configure by category in config files (#6120) (DonIsaac)
  • c5e66e1 linter/no-unused-vars: Report own type references within class, interface, and type alias declarations (#6557) (DonIsaac)
  • 8c78f97 linter/node: Implement no-new-require (#6165) (Jelle van der Waa)

Bug Fixes

  • cf92730 editor: Use human-readable output channel names (#6629) (DonIsaac)
  • d9159a2 editor: Misaligned command prefixes (#6628) (DonIsaac)
  • b9c94bb editors/vscode: Temporarily solve oxc_language_server issue on windows (#6384) (dalaoshu)
  • e340424 linter: Support import type with namespaced import in import/no-duplicates (#6650) (Dmitry Zakharov)
  • a668397 linter: Panic in no-else-return (#6648) (dalaoshu)
  • 41dc8e3 linter: Stack overflow in oxc/no-async-endpoint-handlers (#6614) (DonIsaac)
  • d07a9b0 linter: Panic in no-zero-fractions (#6607) (dalaoshu)
  • d6a0d2e linter: Fix file name checking behavior of unicorn/filename-case (#6463) (camchenry)
  • 0784e74 linter: Error fixer of switch-case-braces (#6474) (dalaoshu)
  • e811812 linter: Error diagnostic message based on parameter length of valid-expect (#6455) (dalaoshu)
  • f71c91e linter: Move eslint/sort-keys to style category (#6377) (DonIsaac)
  • 2b86de9 linter/no-control-regex: False negative for flags in template literals (#6531) (DonIsaac)
  • 685a590 linter/no-control-regex: Better diagnostic messages (#6530) (DonIsaac)
  • 6d5a9f2 linter/no-control-regex: Allow capture group references (#6529) (DonIsaac)
  • ba53bc9 linter/no-unused-vars: False positives in TS type assertions (#6397) (DonIsaac)
  • d3e59c6 linter/no-unused-vars: False positive in some default export cases (#6395) (DonIsaac)
  • e08f956 linter/no-unused-vars: False positive for functions and classes in arrays (#6394) (DonIsaac)
  • b9d7c5f no-unused-vars: Consider functions within conditional expressions usable (#6553) (Brian Donovan)

Performance

  • 0cbd4d0 linter: Avoid megamorphism in RuleFixer methods (#6606) (DonIsaac)
  • 725f9f6 linter: Get fewer parent nodes in unicorn/prefer-dom-node-text-content (#6467) (camchenry)
  • c00f669 linter: Use NonZeroUsize for pending module cache entries (#6439) (DonIsaac)
  • a1a2721 linter: Replace ToString::to_string with CompactStr in remaining rules (#6407) (camchenry)
  • c5c69d6 linter: Use CompactStr in valid-title (#6406) (camchenry)
  • d66e826 linter: Use CompactStr in prefer-lowercase-title (#6405) (camchenry)
  • 889400c linter: Use CompactStr for get_node_name in Jest rules (#6403) (camchenry)
  • 9906849 linter: Use CompactStr in no-large-snapshots (#6402) (camchenry)
  • c382ec4 linter: Use CompactStr in no-hooks (#6401) (camchenry)
  • 24a5d9b linter: Use CompactStr in expect-expect (#6400) (camchenry)
  • 71dbdad linter: Use CompactStr in no-console (#6399) (camchenry)
  • f5f00a1 linter: Use CompactStr in no-bitwise (#6398) (camchenry)
  • 62afaa9 linter/jsx-no-comment-textnodes: Remove regex for checking comment patterns (#6534) (camchenry)
  • b3d0cce linter/no-unescaped-entities: Add fast path to check if char should be replaced (#6594) (camchenry)
  • ee73f56 linter/no-unused-vars: Do not construct Regex for default ignore pattern (#6590) (camchenry)
  • 77ddab8 linter/numeric-separators-style: Replace regex with number parser (#6546) (camchenry)
  • 8f47cd0 linter/react: Remove regex patterns in no-unknown-property (#6536) (camchenry)

Documentation

  • 557f941 linter: Add docs to no-unused-vars and Tester (#6558) (DonIsaac)

Refactor

  • ecce5c5 linter: Improve recursive argument handling and diagnostics creation (#6513) (no-yan)
  • f960e9e linter: Add suggested file names for unicorn/filename-case (#6465) (camchenry)
  • 7240ee2 linter: Make advertised fix kinds consistent (#6461) (Alexander S.)
  • b48c368 linter: no_global_assign rule: reduce name lookups (#6460) (overlookmotel)
  • 2566ce7 linter: Remove OxlintOptions (#6098) (DonIsaac)
  • 002078a linter: Make Runtime's members private (#6440) (DonIsaac)
  • 6a0a533 linter: Move module cache logic out of Runtime (#6438) (DonIsaac)
  • c18c6e9 linter: Split service code into separate modules (#6437) (DonIsaac)
  • 5ea9ef7 linter: Improve labels and help message for eslint/no-useless-constructor (#6389) (DonIsaac)
  • 2c32dac linter/no-control-regex: Remove duplicate code (#6527) (DonIsaac)
  • 435a89c oxc: Remove useless allocator.alloc(program) calls (#6571) (Boshen)
  • f70e93b oxc: Ban index methods on std::str::Chars (#6075) (dalaoshu)

Testing

  • a6cae98 linter: Make sure all auto-fixing rules have fixer test (#6378) (DonIsaac)
  • 06b09b2 linter/no-unused-vars: Enable now-passing tests (#6556) (DonIsaac)
  • badd11c linter/no-unused-vars: Ignored catch parameters (#6555) (DonIsaac)
  • 84aa2a2 linter/no-useless-constructor: Add cases for initializers in subclass constructors (#6390) (DonIsaac)

oxlint v0.9.10

08 Oct 05:45
62d45bf
Compare
Choose a tag to compare

[0.9.10] - 2024-10-08

  • 95ca01c cfg: [BREAKING] Make BasicBlock::unreachable private (#6321) (DonIsaac)

  • 5a73a66 regular_expression: [BREAKING] Simplify public APIs (#6262) (leaysgur)

Features

  • f272137 editors/vscode: Clear diagnostics on file deletion (#6326) (dalaoshu)
  • 1a5f293 editors/vscode: Update VSCode extention to use project's language server (#6132) (dalaoshu)
  • 376cc09 linter: Implement no-throw-literal (#6144) (dalaoshu)
  • 5957214 linter: Allow fixing in files with source offsets (#6197) (camchenry)
  • a089e19 linter: Eslint/no-else-return (#4305) (yoho)
  • 183739f linter: Implement prefer-await-to-callbacks (#6153) (dalaoshu)
  • ae539af linter: Implement no-return-assign (#6108) (Radu Baston)

Bug Fixes

  • 00df6e5 linter: Friendly diagnostic messages for no-else-return (#6349) (DonIsaac)
  • 71ad5d3 linter: no-else-return fixer fails when else has no trailing whitespace (#6348) (DonIsaac)
  • 9e9808b linter: Fix regression when parsing ts in vue files (#6336) (Boshen)
  • 93c6db6 linter: Improve docs and diagnostics message for no-else-return (#6327) (DonIsaac)
  • e0a3378 linter: Correct false positive in unicorn/prefer-string-replace-all (#6263) (H11)
  • ea28ee9 linter: Improve the fixer of prefer-namespace-keyword (#6230) (dalaoshu)
  • f6a3450 linter: Get correct source offsets for astro files (#6196) (camchenry)
  • be0030c linter: Allow whitespace control characters in no-control-regex (#6140) (camchenry)
  • e7e8ead linter: False positive in no-return-assign (#6128) (DonIsaac)

Performance

  • ac0a82a linter: Reuse allocator when there are multiple source texts (#6337) (Boshen)
  • 50a0029 linter: Do not concat vec in no-useless-length-check (#6276) (camchenry)

Documentation

  • 7ca70dd linter: Add docs for ContextHost and LintContext (#6272) (camchenry)
  • a949ecb linter: Improve docs for eslint/getter-return (#6229) (DonIsaac)
  • 14ba263 linter: Improve docs for eslint-plugin-import rules (#6131) (dalaoshu)

Refactor

  • 40932f7 cfg: Use IndexVec for storing basic blocks (#6323) (DonIsaac)
  • 642725c linter: Rename vars from ast_node_id to node_id (#6305) (overlookmotel)
  • 8413175 linter: Move shared function from utils to rule (#6127) (dalaoshu)
  • ba9c372 linter: Make jest/vitest rule mapping more clear (#6273) (camchenry)
  • 82b8f21 linter: Add schemars and serde traits to AllowWarnDeny and RuleCategories (#6119) (DonIsaac)
  • ea908f7 linter: Consolidate file loading logic (#6130) (DonIsaac)
  • db751f0 linter: Use regexp AST visitor in no-control-regex (#6129) (camchenry)
  • 3aa7e42 linter: Use RegExp AST visitor for no-hex-escape (#6117) (camchenry)
  • 9d5b44a linter: Use regex visitor in no-regex-spaces (#6063) (camchenry)
  • 0d44cf7 linter: Use regex visitor in no-useless-escape (#6062) (camchenry)
  • eeb8873 linter: Use regex visitor in no-empty-character-class (#6058) (camchenry)

Testing

  • d883562 linter: Invalid eslint/no-unused-vars options (#6228) (DonIsaac)

oxlint v0.9.9

01 Oct 00:23
3ef248a
Compare
Choose a tag to compare

[0.9.9] - 2024-09-27

Bug Fixes

  • bd8f786 linter: Rule and generic filters do not re-configure existing rules (#6087) (DonIsaac)
  • c5cdb4c linter: Disable all rules in a plugin when that plugin gets turned off (#6086) (DonIsaac)
  • 6c855af linter: Only write fix results if source code has changed (#6096) (DonIsaac)
  • 8759528 linter: Category filters not re-configuring already-enabled rules (#6085) (DonIsaac)
  • c2616f7 linter: Fix panic in fixer for oxc/only-used-in-recursion (#6070) (camc314)
  • 3da3845 linter: Malformed snippets in eslint/for-direction docs (#6060) (DonIsaac)
  • c047d42 linter: no-useless-escape: do not crash on backslash character (#6048) (camchenry)
  • 6f76ebe linter: Ignore invalid or partial disable directives (#6045) (camchenry)
  • 09a24cd linter: Fix false positives for generics in no-unexpected-multiline (#6039) (camchenry)
  • d05fd20 linter: Newline in type parameters causing false positive in no-unexpected-multiline (#6031) (DonIsaac)
  • 01b9c4b npm/oxlint: Make bin/oxc_language_server an executable (#6066) (Boshen)

Performance

  • f8464a3 linter: no-magic-numbers remove redudant checks in is_array_index (#6033) (Alexander S.)
  • c16ae60 linter: jest/prefer-hooks-in-order: rewrite rule to allocate less and iterate fewer times (#6030) (camchenry)

Documentation

  • d4bed9a linter: Improve docs for node/security/tree_shaking rules (#6097) (dalaoshu)
  • a4fdf1b linter: Improve docs for promise rules (#6051) (dalaoshu)
  • 21cdb78 linter: Fix incorrect "bad" example in only-used-in-recursion (#6029) (Boshen)

Refactor

  • 1f92d61 linter: jest/prefer-hooks-in-order: improve diagnostic messages (#6036) (camchenry)

Testing

  • 55949eb linter: Add OxlintRules::override_rules tests (#6081) (DonIsaac)
  • 1a6923a linter: Add filter parsing test cases (#6080) (DonIsaac)
  • 58d333a linter: Add more test cases for disable directives (#6047) (camchenry)

oxlint v0.9.8

24 Sep 12:18
539751c
Compare
Choose a tag to compare

[0.9.8] - 2024-09-24

Bug Fixes

  • e3c8a12 linter: Fix panic in sort-keys (#6017) (Boshen)
  • 4771492 linter: Fix import/no_cycle with ignoreTypes (#5995) (Boshen)

Performance

  • 5ae3f36 linter: no-fallthrough: Use string matching instead of Regex for default comment pattern (#6008) (camchenry)
  • 65d8f9e linter, ast-tools, coverage: Use FxHashSet instead of std::collections::HashSet (#6001) (Cam McHenry)
  • 2b17003 linter, prettier, diagnostics: Use FxHashMap instead of std::collections::HashMap (#5993) (camchenry)

oxlint v0.9.7

23 Sep 08:05
859227e
Compare
Choose a tag to compare

[0.9.7] - 2024-09-23

Features

  • d24985e linter: Add oxc-security/api-keys (#5906) (DonIsaac)
  • f9b44c5 linter: Add unicode sets support to no-useless-escape rule (#5974) (camchenry)
  • 0f19848 linter: Implement no-unexpected-multiline rule (#5911) (camchenry)
  • 16fe383 linter: Implement no-extend-native rule (#5867) (Cam McHenry)

Bug Fixes

  • eed9ac7 linter: Include actual span size in no-regex-spaces diagnostic (#5957) (camchenry)
  • 40c89c2 linter: Move promise/avoid-new to style category (#5961) (DonIsaac)

Performance

  • 608d637 linter: Use aho-corasick instead of regex for string matching in jsx-a11y/img-redundant-alt (#5892) (camchenry)
  • 3148d4b linter: Check file path after checking node kind for nextjs/no-head-element (#5868) (Cam McHenry)

Refactor

  • 0a5a4a9 linter: Use parsed patterns for unicorn/no-hex-escape (#5985) (camchenry)
  • 2cf2edd linter: Use parsed patterns in no-empty-character-class rule (#5980) (camchenry)
  • a9a8e2a linter: Use regex parser in eslint/no-regex-spaces (#5952) (camchenry)
  • 05f592b linter: Use parsed patterns in unicorn/prefer-string-starts-ends-with (#5949) (camchenry)
  • 3273b64 linter: Use parsed patterns for unicorn/prefer-string-replace-all rule (#5943) (camchenry)
  • ba7b01f linter: Add LinterBuilder (#5714) (DonIsaac)
  • db4f16a semantic: Call with_trivias before build_with_jsdoc (#5875) (Boshen)
  • 3d13c6d semantic: Impl IntoIterator for &AstNodes (#5873) (DonIsaac)

Testing

  • b681c9a linter: Import test cases for no-empty-character-class (#5981) (camchenry)
  • 767602b linter: Add regression test for #5227 (#5975) (camchenry)