Oxc Release Notes

127 release notes curated from 1 source by the Releasebot Team. Last updated: May 11, 2026

Get this feed:
  • May 11, 2026
    • Date parsed from source:
      May 11, 2026
    • First seen by Releasebot:
      May 11, 2026
    Oxc logo

    Oxc

    oxlint_v1.64.0: fix(ci): pin mimalloc-safe to 0.1.58 (#22329)

    Oxc fixes its build by pinning the workspace mimalloc-safe dependency to 0.1.58 and updating Cargo.lock so libmimalloc-sys2 is downgraded to 0.1.54, unblocking the aarch64-pc-windows-msvc release job after a mimalloc regression.

    Summary

    Pins the workspace mimalloc-safe dependency to =0.1.58 and updates Cargo.lock so libmimalloc-sys2 is downgraded from 0.1.55 to 0.1.54.

    Why

    The Build Oxfmt aarch64-pc-windows-msvc release job started failing after the dependency set moved to mimalloc-safe 0.1.59 / libmimalloc-sys2 0.1.55. The failing log shows clang compiling mimalloc for aarch64-pc-windows-msvc and hitting undeclared MSVC ARM64 atomics (__ldar64 / __stlr64). The same workflow target passed on May 5 with mimalloc-safe 0.1.58 / libmimalloc-sys2 0.1.54.

    This is intended as a narrow release unblock while the upstream mimalloc-safe regression is handled separately.

    Original source
  • May 11, 2026
    • Date parsed from source:
      May 11, 2026
    • First seen by Releasebot:
      May 11, 2026
    Oxc logo

    Oxc

    oxfmt_v0.49.0: fix(ci): pin mimalloc-safe to 0.1.58 (#22329)

    Oxc fixes a release-blocking build issue by pinning the workspace mimalloc-safe dependency to 0.1.58 and updating Cargo.lock to downgrade libmimalloc-sys2, restoring the aarch64-pc-windows-msvc release job while an upstream regression is addressed separately.

    Summary

    Pins the workspace mimalloc-safe dependency to =0.1.58 and updates Cargo.lock so libmimalloc-sys2 is downgraded from 0.1.55 to 0.1.54.

    Why

    The Build Oxfmt aarch64-pc-windows-msvc release job started failing after the dependency set moved to mimalloc-safe 0.1.59 / libmimalloc-sys2 0.1.55. The failing log shows clang compiling mimalloc for aarch64-pc-windows-msvc and hitting undeclared MSVC ARM64 atomics (__ldar64 / __stlr64). The same workflow target passed on May 5 with mimalloc-safe 0.1.58 / libmimalloc-sys2 0.1.54.

    This is intended as a narrow release unblock while the upstream mimalloc-safe regression is handled separately.

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Oxc and hundreds of other software products.

    Create account
  • May 11, 2026
    • Date parsed from source:
      May 11, 2026
    • First seen by Releasebot:
      May 11, 2026
    Oxc logo

    Oxc

    oxc crates_v0.130.0

    Oxc adds TypeScript, minifier, codegen, parser, and transformer updates with safer enum evaluation, improved sourcemaps, better direct eval handling, preserved class and function names, and fixes for object rest spread, decorators, and optional chains.

    Features

    66c9b01 transformer/typescript: Debug_assert that enum_eval ran in semantic (#22252) (Dunqing)

    ffe6475 minifier: Fold Array constructor with safe spreads (#22215) (camc314)

    Bug Fixes

    d3d0b18 traverse: Handle ChainElement::TSNonNullExpression in GatherNodeParts (#22247) (leaysgur)

    4e880de transformer/object-rest-spread: Declare temp vars for computed keys (#22284) (camc314)

    a7c3e22 semantic: Clear member write target for computed keys (#22302) (camc314)

    6a8852d codegen: Emit newline after legal-comment orphan flush (#22304) (Dunqing)

    5da9fda transformer/explicit-resource-management: Preserve class names (#22306) (Dunqing)

    b5d970f transformer/explicit-resource-management: Preserve class names (#22290) (camc314)

    bc54fd4 minifier: Keep function / class names if direct eval is present in the scope (#22241) (sapphi-red)

    7a810c0 minifier: Refresh direct eval flags after DCE (#21787) (Dunqing)

    dd88726 transformer/legacy-decorator: Preserve accessor type annotation for emitDecoratorMetadata (#21966) (Dunqing)

    29a3cd7 codegen: Swap mapping/indent order for top-level decls (#22206) (Dunqing)

    73b4f40 minifier: Preserve catch binding with direct eval (#22221) (camc314)

    0e13d17 minifier: Preserve optional chain base side effects (#22219) (camc314)

    0c7c01c transformer/typescript: Inline optional-chain enum member access (#21834) (Dunqing)

    a6aff7e codegen: Emit block/array/object end mapping at close char (#22200) (Dunqing)

    a099b03 codegen: Emit call end mapping at ) position, not past it (#22199) (Dunqing)

    5753774 minifier: Cap if-return ternary collapse for firefox (#21841) (Gurupungav Narayanan)

    2493bdd codegen: Correct sourcemap end mappings for closing delimiters (#22001) (Mark Dalgleish)

    3b385e2 minifier: Bail optimizing Array with unknown arg count (#22188) (camc314)

    9fa2122 parser: Parse array computed class keys (#22159) (camc314)

    Documentation

    a4a6892 napi/parser: Correct code comment (#22278) (overlookmotel)

    9305373 oxc: Update README (#22178) (camc314)

    Original source
  • May 11, 2026
    • Date parsed from source:
      May 11, 2026
    • First seen by Releasebot:
      May 11, 2026
    Oxc logo

    Oxc

    oxlint v1.64.0 & oxfmt v0.49.0

    Oxc releases Oxlint v1.64.0 and Oxfmt v0.49.0 with breaking changes, new lint rules and LSP support, plus an experimental .svelte formatter. The update also improves bug fixes, performance, and documentation across linting and formatting.

    Table of Contents

    Oxlint v1.64.0

    Oxfmt v0.49.0

    Oxlint v1.64.0

    πŸ’₯ BREAKING CHANGES

    00ce512 oxlint/lsp: [BREAKING] Don't fix suggestions on fixAll code actions & command (#22195) (Sysix)

    πŸš€ Features

    0eeceaf linter/no-unused-vars: Rename parameter with initializer (#22308) (camc314)

    fa0232b linter/no-unused-vars: Add param rename suggestion (#22285) (Ryota Misumi)

    ae59305 linter/promise/no-promise-in-callback: Add exemptDeclarations option (#22275) (Mikhail Baev)

    60bed4a linter: Extends no-redundant-roles and prefer-tag-over-role support roles (#22069) (mehm8128)

    545c80f linter/eslint: Implement prefer-regex-literals rule (#22192) (Mikhail Baev)

    23abd22 linter/jsx-a11y: Implement no-noninteractive-element-to-interactive-role (#21264) (Pedro Tainha)

    fbb8f22 linter: Support ignores in overrides (#22148) (camc314)

    5a4414d oxlint/lsp: Support rulesCustomization lsp option (#21858) (Sysix)

    πŸ› Bug Fixes

    0e207b5 linter: Remove bulk supressions commands from CLI help (#22328) (camc314)

    7e93bf2 linter/import/no-named-as-default: Avoid same-binding false positive (#22321) (camc314)

    610f4c7 linter/no-unused-vars: Avoid renaming captured vars (#22310) (camc314)

    6b50f23 oxlint/cli: Load root config by searching up parent directories (#22272) (Sysix)

    31a5de7 linter: Rename override ignores to excludeFiles (#22283) (camc314)

    26d5d7b linter: Add missing vitest/valid-describe-callback functionality (#22279) (camchenry)

    784530f linter: valid-title: detect String.raw strings (#22271) (Sysix)

    080d90e linter: Move no-debugger fix to suggestion (#22256) (Sysix)

    25b7017 linter: Undocument override ignores option (#22213) (camc314)

    7bb00dd linter: Fix role-has-required-aria-props (#22097) (mehm8128)

    d25279e linter/disable-directives: Improve parsing of names, descriptions (#22184) (camc314)

    a59e447 linter/disable-directives: Ignore invalid enable suffixes (#22179) (camc314)

    aafef0f ci: Disable bulk supression test on big endian (#22175) (camc314)

    281daec linter/vue/define-props-destructuring: Add only-when-assigned config opt (#22142) (camc314)

    46ab679 linter/plugins: Trim leading newline for partial sources (#20928) (bab)

    29ff6d9 linter: Update docs for no_alias_methods rule to be Vitest-specific and add toThrowError alias (#22129) (camchenry)

    ⚑ Performance

    9414bee linter/role-has-required-aria-props: Avoid intermediate vec (#22212) (camc314)

    3883ea3 linter/no-useless-escape: Drop unnecessary Vec collect (#22171) (connorshea)

    42c3029 linter/check-property-names: Replace split-collect-pop-join with rfind (#22172) (connorshea)

    9551d53 linter: Remove unnecessary Vec collect in CFG edge traversal (#22167) (connorshea)

    26fa2fc linter/aria-role: Remove unnecessary string allocations in run method (#22168) (connorshea)

    c9ce045 linter/getter-return: Remove unnecessary Vec collect in CFG edge traversal (#22166) (connorshea)

    72bd846 linter/no-this-in-sfc: Reorder cheap name check, avoid String allocation (#22164) (connorshea)

    πŸ“š Documentation

    4da212a linter/no-unused-vars: Add docs to rename_unused_function_parameter (#22311) (camc314)

    27c4628 linter/forbid-dom-props: Escape jsx examples in lint rule docs (#22254) (4MBL)

    3f81147 linter: Improve the react/jsx-key rule docs. (#22162) (connorshea)

    07f03cc linter/consistent-return: Add note about noImplicitReturns coverage (#22156) (camc314)

    7c1e049 oxlint/lsp: Improve autogenerated lsp docs (#22154) (Sysix)

    87b3e38 linter: Update docs to be vitest-specific for consistent-test-it (#22128) (camchenry)

    Oxfmt v0.49.0

    πŸ’₯ BREAKING CHANGES

    5c6c390 oxfmt: [BREAKING] Respect more git ignore options, align with Oxlint (#22210) (leaysgur)

    πŸš€ Features

    6e8e818 oxfmt: Experimental .svelte support (#21700) (leaysgur)

    πŸ› Bug Fixes

    e2a20b6 formatter: Add space after commas in import attributes (#22274) (Leonabcd123)

    ⚑ Performance

    b756682 oxfmt: Optimize nested config prescan (#22232) (Jovi De Croock)

    f14e81e formatter/sort_imports: Skip sort for single import runs (#22204) (leaysgur)

    32255b1 formatter: Process ImportDeclarations in a run (#22079) (overlookmotel)

    πŸ“š Documentation

    4da6f4c formatter: Correct comment (#22217) (overlookmotel)

    ef3507d formatter/sort_imports: Refresh docs (#22203) (leaysgur)

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      May 6, 2026
    Oxc logo

    Oxc

    oxlint_v1.63.0: release(apps): oxlint v1.63.0 && oxfmt v0.48.0 (#22109)

    Oxc releases a broad linter and formatter update with new SARIF and agent output support, fresh ESLint, Vue, Jest and Vitest rules, clearer diagnostics, bug fixes, performance improvements and updated formatter behavior.

    Oxlint

    πŸš€ Features

    1d40d60 linter: Implement SARIF formatter (#22067) (camchenry)
    c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz)
    5699d53 linter: Add help text to agent formatter (#22064) (camchenry)
    fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock)
    fb2f052 linter: Suggest moving shared branch code (#22022) (camc314)
    5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314)
    8b4829b linter: Split no-negated-condition rule to unicorn & eslint (#21998) (Sysix)
    fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry)
    44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry)
    2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry)
    fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry)
    2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry)
    6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry)
    f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry)
    fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry)
    adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry)
    8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry)
    46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry)
    bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128)
    733b094 linter: Split prefer-to-have-been-called-times rule (#21898) (Said Atrahouch)
    8804425 linter/eslint: Implement logical-assignment-operators rule (#21900) (Mikhail Baev)
    296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry)
    38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry)
    6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab)
    dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry)
    a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry)
    f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry)
    4380812 linter: Split prefer-to-have-length rule (#21893) (Said Atrahouch)
    511bcc1 linter: Split jest require-hook rule (#21889) (Said Atrahouch)
    64a8180 linter: Split jest/prefer-snapshot-hint into a Jest rule and a Vitest rule. (#21881) (connorshea)
    ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab)
    0dfe8b3 linter: Split jest/require-to-throw-message into Jest and Vitest rules. (#21879) (connorshea)
    51229ff linter: Split jest valid-describe-callback rule (#21882) (Said Atrahouch)
    2d102fd linter: Split no-standalone-expect rule into jest and vitest (#21862) (Sysix)
    ee46a29 linter: Split no-restricted-matchers rule into jest and vitest (#21860) (Sysix)
    1f29459 linter: Split no-restricted-jest-methods rule into jest and vitest (#21859) (Sysix)
    e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea)
    89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch)

    πŸ› Bug Fixes

    0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314)
    d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094) (camc314)
    af2d26c linter/astro: Handle js --- after frontmatter in .astro files (#22091) (Andrew Powell)
    78d4ff0 linter/jsdoc/require-returns: Only look at the nearest jsdoc block (#22077) (camc314)
    fa88857 linter/no-map-spread: Use default codegen options for fix (#22074) (camc314)
    2047a35 linter: Treat adjacent fixes as overlapping (#22071) (camc314)
    75fc551 linter: Handle no-extra-boolean-cast edge cases (#22031) (camc314)
    e9d5284 linter/sort-keys: Don't autofix if comment could be misplaced (#22052) (Amund Eggen Svandal)
    d7230b0 linter/no-constant-condition: Handle generator yields (#22046) (camc314)
    e8dbc56 linter/array-type: Enable edge case tests (#22047) (camc314)
    d57b51f linter/no-constant-condition: Propagate config errors (#22045) (camc314)
    bdb6d95 linter/typescript: Remove duplicate rule tests (#22044) (camc314)
    0beaffc linter: Print resolved extended config (#22040) (camc314)
    192ad0e linter/react/only-export-components: Align rule with upstream cases (#22039) (camc314)
    cdf4c53 linter/only-export-components: Support tanstack router (#21937) (camc314)
    893e18f linter: Stop gitignore lookup at repo boundary (#22033) (camc314)
    7100712 linter/constructor-super: Clarify duplicate super diagnostics (#22035) (camc314)
    fce5b7c linter/constructor-super: Improve invalid super calls diagnostic (#22032) (camc314)
    b3de93c linter/rules-of-hooks: Clarify conditional diagnostics (#22030) (camc314)
    4f9f629 linter/rules-of-hooks: Clarify loop diagnostics (#22029) (camc314)
    e6f0978 linter/rules-of-hooks: Clarify async component diagnostics (#22024) (camc314)
    e262f51 linter/rules-of-hooks: Improve diagnostic for hook inside class component (#22023) (camc314)
    7b71b0d linter/no-restricted-imports: Report once per import declaration (#22021) (camc314)
    3d5ae3d linter/vitest/require-mock-type-parameters: Handle chained typed mocks (#22019) (camc314)
    959a2db linter/reporter/github: Omit empty file annotations (#22017) (camc314)
    16003a1 linter/unicorn: Remove duplicate rule tests (#22018) (camc314)
    86b7547 linter/no-unreachable: Suppress nested unreachable diagnostics (#22011) (camc314)
    1d92ae8 linter/oxc: Remove duplicate rule tests (#22013) (camc314)
    f270246 linter/branches-sharing-code: Ignore empty statements (#22012) (camc314)
    f1c25dd linter: Stabilize debug diagnostic comparison (#22010) (camc314)
    b6bc421 linter: Skip linting astro scripts with non JS script types (#21954) (camc314)
    a77547d linter: Support plugin-qualified disable directives (#21999) (camc314)
    079cfdd linter: Match disable directive rule names exactly, not by substring (#21906) (Christian Vuerings)
    11a4e67 linter: Comptibles rules need to be disabled in jest and vitest at same time (#21982) (Said Atrahouch)
    ce62f16 linter: jsx-a11y/prefer-tag-over-role detect more roles (#21933) (bab)
    024c390 linter/jest/vitest: Padding around after all blocks not working as expected (#21952) (kapobajza)
    05a8f75 linter/jest/no-standalone-expect: False positive with expect in an ObjectProperty (#21948) (Said Atrahouch)
    6a37c98 linter/no-unused-vars: Report unused re-exported imports (#21938) (camc314)
    2d5fc16 linter: jsx-a11y/media-has-caption report only once for self-closing tags (#21934) (bab)
    5adca29 linter: jsx-a11y/no-autofocus ignore false attribute values (#21918) (Sysix)
    2e5c18e linter/max-nested-describe: Reset nested describe depth (#21891) (camc314)

    ⚑ Performance

    a77f0f7 linter/require-returns: Avoid jsdoc tag vec allocation (#22081) (camc314)
    d9a1b32 linter/plugins: Avoid array lookups where possible in CFG visitor (#21940) (overlookmotel)
    fefefd8 linter/plugins: Replace addition with bitwise OR in CFG visitor (#21939) (overlookmotel)

    πŸ“š Documentation

    d58f594 oxlint/lsp: Auto generate docs for LSP options (#22082) (Sysix)
    9adc3b3 linter/no-misused-new: Clarify construct signatures behaviour (#22016) (camc314)
    1caf5ad linter/plugins: Reformat comments (#21873) (overlookmotel)

    Oxfmt

    πŸ› Bug Fixes

    ef0db6b formatter: Sequence expression in arrow function body collapses onto one line (#21183) (Justin Mecham)
    5d5d808 formatter: Preserve blank line after directive with trailing comment (#21153) (Justin Mecham)

    ⚑ Performance

    2fd907d formatter: Sort imports during IR construction (#22065) (overlookmotel)

    Co-authored-by: Boshen [email protected]
    Co-authored-by: Cameron Clark [email protected]

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      May 6, 2026
    Oxc logo

    Oxc

    oxfmt_v0.48.0: release(apps): oxlint v1.63.0 && oxfmt v0.48.0 (#22109)

    Oxc releases a broad linter and formatter update with a SARIF formatter, agent output mode, new ESLint, Vitest, Vue, and accessibility rules, plus bug fixes, performance improvements, and Oxfmt fixes for cleaner formatting and import handling.

    Oxlint

    πŸš€ Features

    1d40d60 linter: Implement SARIF formatter (#22067) (camchenry)
    c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz)
    5699d53 linter: Add help text to agent formatter (#22064) (camchenry)
    fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock)
    fb2f052 linter: Suggest moving shared branch code (#22022) (camc314)
    5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314)
    8b4829b linter: Split no-negated-condition rule to unicorn & eslint (#21998) (Sysix)
    fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry)
    44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry)
    2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry)
    fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry)
    2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry)
    6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry)
    f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry)
    fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry)
    adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry)
    8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry)
    46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry)
    bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128)
    733b094 linter: Split prefer-to-have-been-called-times rule (#21898) (Said Atrahouch)
    8804425 linter/eslint: Implement logical-assignment-operators rule (#21900) (Mikhail Baev)
    296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry)
    38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry)
    6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab)
    dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry)
    a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry)
    f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry)
    4380812 linter: Split prefer-to-have-length rule (#21893) (Said Atrahouch)
    511bcc1 linter: Split jest require-hook rule (#21889) (Said Atrahouch)
    64a8180 linter: Split jest/prefer-snapshot-hint into a Jest rule and a Vitest rule. (#21881) (connorshea)
    ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab)
    0dfe8b3 linter: Split jest/require-to-throw-message into Jest and Vitest rules. (#21879) (connorshea)
    51229ff linter: Split jest valid-describe-callback rule (#21882) (Said Atrahouch)
    2d102fd linter: Split no-standalone-expect rule into jest and vitest (#21862) (Sysix)
    ee46a29 linter: Split no-restricted-matchers rule into jest and vitest (#21860) (Sysix)
    1f29459 linter: Split no-restricted-jest-methods rule into jest and vitest (#21859) (Sysix)
    e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea)
    89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch)

    πŸ› Bug Fixes

    0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314)
    d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094) (camc314)
    af2d26c linter/astro: Handle js --- after frontmatter in .astro files (#22091) (Andrew Powell)
    78d4ff0 linter/jsdoc/require-returns: Only look at the nearest jsdoc block (#22077) (camc314)
    fa88857 linter/no-map-spread: Use default codegen options for fix (#22074) (camc314)
    2047a35 linter: Treat adjacent fixes as overlapping (#22071) (camc314)
    75fc551 linter: Handle no-extra-boolean-cast edge cases (#22031) (camc314)
    e9d5284 linter/sort-keys: Don't autofix if comment could be misplaced (#22052) (Amund Eggen Svandal)
    d7230b0 linter/no-constant-condition: Handle generator yields (#22046) (camc314)
    e8dbc56 linter/array-type: Enable edge case tests (#22047) (camc314)
    d57b51f linter/no-constant-condition: Propagate config errors (#22045) (camc314)
    bdb6d95 linter/typescript: Remove duplicate rule tests (#22044) (camc314)
    0beaffc linter: Print resolved extended config (#22040) (camc314)
    192ad0e linter/react/only-export-components: Align rule with upstream cases (#22039) (camc314)
    cdf4c53 linter/only-export-components: Support tanstack router (#21937) (camc314)
    893e18f linter: Stop gitignore lookup at repo boundary (#22033) (camc314)
    7100712 linter/constructor-super: Clarify duplicate super diagnostics (#22035) (camc314)
    fce5b7c linter/constructor-super: Improve invalid super calls diagnostic (#22032) (camc314)
    b3de93c linter/rules-of-hooks: Clarify conditional diagnostics (#22030) (camc314)
    4f9f629 linter/rules-of-hooks: Clarify loop diagnostics (#22029) (camc314)
    e6f0978 linter/rules-of-hooks: Clarify async component diagnostics (#22024) (camc314)
    e262f51 linter/rules-of-hooks: Improve diagnostic for hook inside class component (#22023) (camc314)
    7b71b0d linter/no-restricted-imports: Report once per import declaration (#22021) (camc314)
    3d5ae3d linter/vitest/require-mock-type-parameters: Handle chained typed mocks (#22019) (camc314)
    959a2db linter/reporter/github: Omit empty file annotations (#22017) (camc314)
    16003a1 linter/unicorn: Remove duplicate rule tests (#22018) (camc314)
    86b7547 linter/no-unreachable: Suppress nested unreachable diagnostics (#22011) (camc314)
    1d92ae8 linter/oxc: Remove duplicate rule tests (#22013) (camc314)
    f270246 linter/branches-sharing-code: Ignore empty statements (#22012) (camc314)
    f1c25dd linter: Stabilize debug diagnostic comparison (#22010) (camc314)
    b6bc421 linter: Skip linting astro scripts with non JS script types (#21954) (camc314)
    a77547d linter: Support plugin-qualified disable directives (#21999) (camc314)
    079cfdd linter: Match disable directive rule names exactly, not by substring (#21906) (Christian Vuerings)
    11a4e67 linter: Comptibles rules need to be disabled in jest and vitest at same time (#21982) (Said Atrahouch)
    ce62f16 linter: jsx-a11y/prefer-tag-over-role detect more roles (#21933) (bab)
    024c390 linter/jest/vitest: Padding around after all blocks not working as expected (#21952) (kapobajza)
    05a8f75 linter/jest/no-standalone-expect: False positive with expect in an ObjectProperty (#21948) (Said Atrahouch)
    6a37c98 linter/no-unused-vars: Report unused re-exported imports (#21938) (camc314)
    2d5fc16 linter: jsx-a11y/media-has-caption report only once for self-closing tags (#21934) (bab)
    5adca29 linter: jsx-a11y/no-autofocus ignore false attribute values (#21918) (Sysix)
    2e5c18e linter/max-nested-describe: Reset nested describe depth (#21891) (camc314)

    ⚑ Performance

    a77f0f7 linter/require-returns: Avoid jsdoc tag vec allocation (#22081) (camc314)
    d9a1b32 linter/plugins: Avoid array lookups where possible in CFG visitor (#21940) (overlookmotel)
    fefefd8 linter/plugins: Replace addition with bitwise OR in CFG visitor (#21939) (overlookmotel)

    πŸ“š Documentation

    d58f594 oxlint/lsp: Auto generate docs for LSP options (#22082) (Sysix)
    9adc3b3 linter/no-misused-new: Clarify construct signatures behaviour (#22016) (camc314)
    1caf5ad linter/plugins: Reformat comments (#21873) (overlookmotel)

    Oxfmt

    πŸ› Bug Fixes

    ef0db6b formatter: Sequence expression in arrow function body collapses onto one line (#21183) (Justin Mecham)
    5d5d808 formatter: Preserve blank line after directive with trailing comment (#21153) (Justin Mecham)

    ⚑ Performance

    2fd907d formatter: Sort imports during IR construction (#22065) (overlookmotel)

    Co-authored-by: Boshen [email protected]
    Co-authored-by: Cameron Clark [email protected]

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      May 6, 2026
    Oxc logo

    Oxc

    oxc crates_v0.129.0

    Oxc releases a new update with a breaking allocator change, JSX fragment source metadata, parser and codegen fixes, TypeScript class field improvements, and performance tweaks to Arena allocation.

    BREAKING CHANGES

    0ffbe0d allocator: [BREAKING] Remove Allocator::end_ptr method (#21871) (overlookmotel)

    Features

    9593ec8 transformer/jsx: Add jsxDEV source metadata for fragments (#21932) (Ido Rosenthal)

    Bug Fixes

    81e834c parser: Prevent multiple Parser instances in binary (#22120) (overlookmotel)
    429deac napi/parser: Export visitorKeys from wasm entrypoint (#21996) (NullVoxPopuli)
    e852911 codegen: Preserve legal comments orphaned by upstream passes (#21575) (Dunqing)
    e3399ec transformer/class-properties: Preserve RHS in logical-assignment to static private field (#21950) (Dunqing)
    c59c199 transformer/typescript: Emit class fields for parameter properties (#21831) (Dunqing)
    aaabde4 parser: Attach legal comments to following token (#21670) (Dunqing)

    Performance

    0bf0cb9 allocator: Per-platform Arena::new_fixed_size implementations (#22088) (overlookmotel)

    Documentation

    62ec410 allocator: Correct doc comment for Allocator::from_raw_parts (#22093) (overlookmotel)
    3e152c6 allocator: Correct typos in comments (#22092) (overlookmotel)
    e220855 allocator: Correct doc comment for Allocator::set_cursor_ptr (#21866) (overlookmotel)

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      May 6, 2026
    Oxc logo

    Oxc

    oxlint v1.63.0 & oxfmt v0.48.0

    Oxc ships Oxlint v1.63.0 and Oxfmt v0.48.0 with new lint rules, better autofix and SARIF output, more Vitest and Vue support, bug fixes, performance improvements, and updated formatter behavior.

    Table of Contents

    Oxlint v1.63.0

    Oxfmt v0.48.0

    Oxlint v1.63.0

    πŸš€ Features

    1884833 linter/plugins: Implement SourceCode.getDisableDirectives method (#21029) (Nicolas Le Cam)

    00f9a9d linter/sort-keys: Support autofix with comments (#22061) (Amund Eggen Svandal)

    5b9ea93 linter/eslint: Implement require-unicode-regexp rule (#22096) (Mikhail Baev)

    1d40d60 linter: Implement SARIF formatter (#22067) (camchenry)

    c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz)

    5699d53 linter: Add help text to agent formatter (#22064) (camchenry)

    fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock)

    fb2f052 linter: Suggest moving shared branch code (#22022) (camc314)

    5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314)

    8b4829b linter: Split no-negated-condition rule to unicorn & eslint (#21998) (Sysix)

    fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry)

    44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry)

    2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry)

    fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry)

    2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry)

    6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry)

    f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry)

    fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry)

    adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry)

    8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry)

    46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry)

    bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128)

    733b094 linter: Split prefer-to-have-been-called-times rule (#21898) (Said Atrahouch)

    8804425 linter/eslint: Implement logical-assignment-operators rule (#21900) (Mikhail Baev)

    296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry)

    38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry)

    6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab)

    dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry)

    a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry)

    f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry)

    4380812 linter: Split prefer-to-have-length rule (#21893) (Said Atrahouch)

    511bcc1 linter: Split jest require-hook rule (#21889) (Said Atrahouch)

    64a8180 linter: Split jest/prefer-snapshot-hint into a Jest rule and a Vitest rule. (#21881) (connorshea)

    ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab)

    0dfe8b3 linter: Split jest/require-to-throw-message into Jest and Vitest rules. (#21879) (connorshea)

    51229ff linter: Split jest valid-describe-callback rule (#21882) (Said Atrahouch)

    2d102fd linter: Split no-standalone-expect rule into jest and vitest (#21862) (Sysix)

    ee46a29 linter: Split no-restricted-matchers rule into jest and vitest (#21860) (Sysix)

    1f29459 linter: Split no-restricted-jest-methods rule into jest and vitest (#21859) (Sysix)

    e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea)

    89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch)

    πŸ› Bug Fixes

    7c9bf88 linter/no-single-promise-in-promise-methods: Avoid unused array fix (#22116) (camc314)

    0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314)

    d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094) (camc314)

    af2d26c linter/astro: Handle js --- after frontmatter in .astro files (#22091) (Andrew Powell)

    78d4ff0 linter/jsdoc/require-returns: Only look at the nearest jsdoc block (#22077) (camc314)

    fa88857 linter/no-map-spread: Use default codegen options for fix (#22074) (camc314)

    2047a35 linter: Treat adjacent fixes as overlapping (#22071) (camc314)

    75fc551 linter: Handle no-extra-boolean-cast edge cases (#22031) (camc314)

    e9d5284 linter/sort-keys: Don't autofix if comment could be misplaced (#22052) (Amund Eggen Svandal)

    d7230b0 linter/no-constant-condition: Handle generator yields (#22046) (camc314)

    e8dbc56 linter/array-type: Enable edge case tests (#22047) (camc314)

    d57b51f linter/no-constant-condition: Propagate config errors (#22045) (camc314)

    bdb6d95 linter/typescript: Remove duplicate rule tests (#22044) (camc314)

    0beaffc linter: Print resolved extended config (#22040) (camc314)

    192ad0e linter/react/only-export-components: Align rule with upstream cases (#22039) (camc314)

    cdf4c53 linter/only-export-components: Support tanstack router (#21937) (camc314)

    893e18f linter: Stop gitignore lookup at repo boundary (#22033) (camc314)

    7100712 linter/constructor-super: Clarify duplicate super diagnostics (#22035) (camc314)

    fce5b7c linter/constructor-super: Improve invalid super calls diagnostic (#22032) (camc314)

    b3de93c linter/rules-of-hooks: Clarify conditional diagnostics (#22030) (camc314)

    4f9f629 linter/rules-of-hooks: Clarify loop diagnostics (#22029) (camc314)

    e6f0978 linter/rules-of-hooks: Clarify async component diagnostics (#22024) (camc314)

    e262f51 linter/rules-of-hooks: Improve diagnostic for hook inside class component (#22023) (camc314)

    7b71b0d linter/no-restricted-imports: Report once per import declaration (#22021) (camc314)

    3d5ae3d linter/vitest/require-mock-type-parameters: Handle chained typed mocks (#22019) (camc314)

    959a2db linter/reporter/github: Omit empty file annotations (#22017) (camc314)

    16003a1 linter/unicorn: Remove duplicate rule tests (#22018) (camc314)

    86b7547 linter/no-unreachable: Suppress nested unreachable diagnostics (#22011) (camc314)

    1d92ae8 linter/oxc: Remove duplicate rule tests (#22013) (camc314)

    f270246 linter/branches-sharing-code: Ignore empty statements (#22012) (camc314)

    f1c25dd linter: Stabilize debug diagnostic comparison (#22010) (camc314)

    b6bc421 linter: Skip linting astro scripts with non JS script types (#21954) (camc314)

    a77547d linter: Support plugin-qualified disable directives (#21999) (camc314)

    079cfdd linter: Match disable directive rule names exactly, not by substring (#21906) (Christian Vuerings)

    11a4e67 linter: Comptibles rules need to be disabled in jest and vitest at same time (#21982) (Said Atrahouch)

    ce62f16 linter: jsx-a11y/prefer-tag-over-role detect more roles (#21933) (bab)

    024c390 linter/jest/vitest: Padding around after all blocks not working as expected (#21952) (kapobajza)

    05a8f75 linter/jest/no-standalone-expect: False positive with expect in an ObjectProperty (#21948) (Said Atrahouch)

    6a37c98 linter/no-unused-vars: Report unused re-exported imports (#21938) (camc314)

    2d5fc16 linter: jsx-a11y/media-has-caption report only once for self-closing tags (#21934) (bab)

    5adca29 linter: jsx-a11y/no-autofocus ignore false attribute values (#21918) (Sysix)

    2e5c18e linter/max-nested-describe: Reset nested describe depth (#21891) (camc314)

    ⚑ Performance

    a77f0f7 linter/require-returns: Avoid jsdoc tag vec allocation (#22081) (camc314)

    d9a1b32 linter/plugins: Avoid array lookups where possible in CFG visitor (#21940) (overlookmotel)

    fefefd8 linter/plugins: Replace addition with bitwise OR in CFG visitor (#21939) (overlookmotel)

    πŸ“š Documentation

    cacbc4a linter: Fix jest settings docs. (#22127) (connorshea)

    a15c5bb linter: Note that the --format flag accepts an agent option. (#22126) (connorshea)

    d58f594 oxlint/lsp: Auto generate docs for LSP options (#22082) (Sysix)

    9adc3b3 linter/no-misused-new: Clarify construct signatures behaviour (#22016) (camc314)

    1caf5ad linter/plugins: Reformat comments (#21873) (overlookmotel)

    πŸ›‘οΈ Security

    82dbbec deps: Update npm packages (major) (#21558) (renovate[bot])

    Oxfmt v0.48.0

    πŸ› Bug Fixes

    ef0db6b formatter: Sequence expression in arrow function body collapses onto one line (#21183) (Justin Mecham)

    5d5d808 formatter: Preserve blank line after directive with trailing comment (#21153) (Justin Mecham)

    ⚑ Performance

    2fd907d formatter: Sort imports during IR construction (#22065) (overlookmotel)

    πŸ›‘οΈ Security

    82dbbec deps: Update npm packages (major) (#21558) (renovate[bot])

    Original source
  • Apr 27, 2026
    • Date parsed from source:
      Apr 27, 2026
    • First seen by Releasebot:
      Apr 27, 2026
    Oxc logo

    Oxc

    oxlint_v1.62.0: release(apps): oxlint v1.62.0 && oxfmt v0.47.0 (#21838)

    Oxc releases major Oxlint and Oxfmt updates with breaking AST size reductions, new Vue, React, ESLint, Jest, and Vitest rules, better config discovery and lint fixes, plus performance and documentation improvements.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)

    5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)

    c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)

    πŸš€ Features

    b4acdbd linter/vue: Implement no-deprecated-delete-set rule (#21766) (bab)

    613bfef linter: Split jest/prefer-to-contain into a jest and a vitest rule. (#21821) (connorshea)

    c629719 linter/vue: Implement no-deprecated-events-api rule (#21793) (Alex Peshkov)

    f2a8528 linter: Split jest/require-top-level-describe rule into a Jest and a Vitest rule. (#21822) (connorshea)

    ea4b358 linter: Split jest/prefer-todo into a shared rule and a vitest-specific rule. (#21820) (connorshea)

    3a66819 linter: Split jest/no-mocks-import into vitest/no-mocks-import (#21818) (camchenry)

    0b3ffce linter: Split jest/no-large-snapshots into vitest/no-large-snapshots (#21814) (camchenry)

    d1cf22e linter: Split jest/no-interpolation-in-snapshots into vitest/no-interpolation-in-snapshots (#21812) (camchenry)

    bb0c359 linter: Split jest/no-identical-title into vitest/no-identical-title (#21810) (camchenry)

    c26ea41 linter: Split jest/no-hooks into vitest/no-hooks (#21809) (camchenry)

    46b32f2 linter: Split jest/no-focused-tests into vitest/no-focused-tests (#21804) (camchenry)

    acf41a8 linter: Split jest/no-duplicate-hooks into vitest/no-duplicate-hooks (#21803) (camchenry)

    54d787f linter: Split jest/no-disabled-tests into vitest/no-disabled-tests (#21802) (camchenry)

    9c9a676 linter/vue: Implement no-deprecated-data-object-declaration rule (#21764) (bab)

    4445855 linter: Split jest/no-conditional-in-test into vitest/no-conditional-in-test (#21763) (camchenry)

    b8604de linter: Split jest/no-conditional-expect into vitest/no-conditional-expect (#21762) (camchenry)

    0dbd650 linter: Split jest/no-commented-out-tests into vitest/no-commented-out-tests (#21761) (camchenry)

    7f1a97c linter: Split jest/no-alias-methods into vitest/no-alias-methods (#21760) (camchenry)

    eb97c49 linter: Split jest/max-nested-describe into vitest/max-nested-describe (#21759) (camchenry)

    d870cad linter: Split jest/max-expects into vitest/max-expects (#21758) (camchenry)

    1b97124 linter/vue: Implement no-deprecated-vue-config-keycodes rule (#21699) (bab)

    5f81883 linter/eslint: Implement func-name-matching rule (#21708) (Mikhail Baev)

    348f46c linter: Add respectEslintDisableDirectives option (#21384) (Christian Vuerings)

    63ec351 linter: Support nested vite+ config discovery (#21638) (camc314)

    560feb4 linter: Introduce Vite variant to DiscoveredConfigFile (#21637) (camc314)

    07dc41e linter/eslint: Implement no-underscore-dangle rule (#21630) (Paul-Arthur THIERY)

    e270d54 linter/react: Impl react/no-did-update-set-state (#17322) (Kenzo Wada)

    ca81199 linter/react: Implement forbid-component-props rule (#20005) (Mikhail Baev)

    6776403 linter/branches-sharing-code: Move rule from nursery to pedantic (#21621) (camc314)

    ce7a4dc linter/no-unreachable: Move rule from nursery to correctness (#21618) (camc314)

    e3b5e78 linter/getter-return: Move rule from nursery to correctness (#21617) (camc314)

    d3a7e9a linter/unicorn: Implement suggestion for no-useless-iterator-to-array rule (#21610) (Mikhail Baev)

    a0c883c oxlint/lsp: Add vite plus version to server info (#21587) (Sysix)

    67ff860 linter/no-unknown-property: Support React 19 precedence prop (#21590) (JoΓ£o Pedro Schmitz)

    πŸ› Bug Fixes

    aace797 linter: Detect Svelte TS and module scripts correctly (#20819) (mustafa0x)

    3612db1 linter/prefer-default-parameters: Skip reporting on object/class setters (#21836) (camc314)

    28c3521 oxlint/lsp: Remove overlapping edits for source.fixAllDangerous.oxc code action (#21785) (Sysix)

    705a82c linter/no-non-null-asserted-nullish-coalescing: Add fixer (#21827) (yyh)

    33f5535 linter: Add checks that Program is in current allocator chunk before JS plugins linting (#21774) (overlookmotel)

    d122877 linter/no-extra-non-null-assertions: Add fixer (#21744) (yyh)

    37f0731 linter: with_plugin_vitest(true) working realiable in test mode (#21769) (Said Atrahouch)

    e42e6a6 linter/role-supports-aria-props: False positive with combobox and haspopup (#21725) (Leonabcd123)

    e24324f linter: Iframe-has-title false positive for template literals (#21714) (Leonabcd123)

    41a6510 linter/vitest/hoisted-apis-on-top: Only check first member (#20068) (Sidharth Vinod)

    98ed888 linter: Check initializer for allowConstantExport in only-export-components (#20608) (EyΓΌp Can Akman)

    1946e8b linter: Avoid applying override plugin categories to eslint rules (#21521) (bab)

    3d1e83a linter: Parse <script> tag attributes with curly braces in Svelte files (#21089) (bab)

    bc6ade5 linter: Report actual disable directive prefix (#21682) (camc314)

    bf84466 linter: Respect category settings in overrides (#19411) (Connor Shea)

    52ec45b linter/vitest: Don't treat test.extend or it.extend as test functions (#21668) (Said Atrahouch)

    aa1a00c linter: Support jsx-a11y attributes setting in anchor-is-valid rule (#21665) (camchenry)

    30e0ad3 linter/prefer-default-parameters: Preserve TS annotations in fixer (#21655) (camc314)

    8c425db linter: Allow string for jest version in config schema (#21649) (camc314)

    3617864 linter/react/display-name: Fix false positive for named default class (#21643) (Mikhail Baev)

    f3a02cc linter/no-non-null-assertion: Improve diagnostic message (#21616) (Cameron)

    c2ada2c linter: Make --fix-dangerously fix dangerous fixes and suggestions as documented (#13366) (Ulrich Stark)

    8265ed9 linter/sort-keys: Handle CRLF separated groups (#21608) (camc314)

    96c559e linter/no-shadow: Add note explaining enum member shadowing (#21607) (camc314)

    3b49389 linter: No-irregular-whitespace: add config options (#21559) (camchenry)

    ⚑ Performance

    cdc9eae oxlint/lsp: Avoid clones on lsp options deserializion (#21748) (Sysix)

    be2db80 linter/sort-keys: Reduce allocations (#21560) (camchenry)

    πŸ“š Documentation

    453d647 linter: Remove now-unnecessary compatibility notes from shared Jest/Vitest rules. (#21826) (connorshea)

    b1574a2 linter: Fix the configuration docs for no-underscore-dangle rule. (#21801) (connorshea)

    6946aee linter: Remove no-longer-relevant documentation about vitest compatibility from shared Jest/Vitest rules. (#21799) (connorshea)

    0652ea2 linter: Misc grammar cleanup for Vitest rules. (#21755) (connorshea)

    99f0b68 linter: Improve docs for vitest/require-mock-type-parameters rule. (#21754) (connorshea)

    9e2796b linter: Improve the docs for the vitest/hoisted-apis-on-top rule. (#21753) (connorshea)

    2ccede2 linter: Improve function usage examples in doc comments (#21718) (overlookmotel)

    43adae9 linter: Add version section to rules page (#21601) (camchenry)

    d15dad2 linter: Export rule version metadata (#21588) (Old Autumn)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)

    5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)

    c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)

    πŸš€ Features

    3bc54a9 oxfmt: Respect nested config for --stdin-filepath (#21627) (leaysgur)

    144f27a oxfmt: Respect ignore settings for --stdin-filepath (#21625) (leaysgur)

    81c7ae4 oxfmt/lsp: Add vite plus version to server info (#21586) (Sysix)

    πŸ› Bug Fixes

    477435b formatter/sort_imports: Keep leading blank line when decreasing group transitions (#21835) (leaysgur)

    38d1e82 oxfmt/lsp: Format non file:// URIs without a authority (#21647) (Sysix)

    5eb8e2b formatter/sort_imports: Preserve blank lines around ignored side-effect imports (#21692) (leaysgur)

    0dce3c6 oxfmt: Handle invalid overrides config without panic (#21661) (Yuji Sugiura)

    9f82ed4 formatter: Escape backticks in JSDoc inline code spans (#21577) (bab)

    ⚑ Performance

    db6c603 oxfmt/lsp: Avoid clones on lsp options deserializion (#21749) (Sysix)

    6a96c76 formatter: Avoid heap alloc for jsdoc delimiter (#21597) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Co-authored-by: Cameron Clark [email protected]

    Original source
  • Apr 27, 2026
    • Date parsed from source:
      Apr 27, 2026
    • First seen by Releasebot:
      Apr 27, 2026
    Oxc logo

    Oxc

    oxfmt_v0.47.0: release(apps): oxlint v1.62.0 && oxfmt v0.47.0 (#21838)

    Oxc ships breaking AST size reductions, new lint rules for Vue, React, ESLint and Vitest, better config discovery, plus bug fixes, performance improvements and documentation updates across Oxlint and Oxfmt.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)

    5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)

    c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)

    πŸš€ Features

    b4acdbd linter/vue: Implement no-deprecated-delete-set rule (#21766) (bab)

    613bfef linter: Split jest/prefer-to-contain into a jest and a vitest rule. (#21821) (connorshea)

    c629719 linter/vue: Implement no-deprecated-events-api rule (#21793) (Alex Peshkov)

    f2a8528 linter: Split jest/require-top-level-describe rule into a Jest and a Vitest rule. (#21822) (connorshea)

    ea4b358 linter: Split jest/prefer-todo into a shared rule and a vitest-specific rule. (#21820) (connorshea)

    3a66819 linter: Split jest/no-mocks-import into vitest/no-mocks-import (#21818) (camchenry)

    0b3ffce linter: Split jest/no-large-snapshots into vitest/no-large-snapshots (#21814) (camchenry)

    d1cf22e linter: Split jest/no-interpolation-in-snapshots into vitest/no-interpolation-in-snapshots (#21812) (camchenry)

    bb0c359 linter: Split jest/no-identical-title into vitest/no-identical-title (#21810) (camchenry)

    c26ea41 linter: Split jest/no-hooks into vitest/no-hooks (#21809) (camchenry)

    46b32f2 linter: Split jest/no-focused-tests into vitest/no-focused-tests (#21804) (camchenry)

    acf41a8 linter: Split jest/no-duplicate-hooks into vitest/no-duplicate-hooks (#21803) (camchenry)

    54d787f linter: Split jest/no-disabled-tests into vitest/no-disabled-tests (#21802) (camchenry)

    9c9a676 linter/vue: Implement no-deprecated-data-object-declaration rule (#21764) (bab)

    4445855 linter: Split jest/no-conditional-in-test into vitest/no-conditional-in-test (#21763) (camchenry)

    b8604de linter: Split jest/no-conditional-expect into vitest/no-conditional-expect (#21762) (camchenry)

    0dbd650 linter: Split jest/no-commented-out-tests into vitest/no-commented-out-tests (#21761) (camchenry)

    7f1a97c linter: Split jest/no-alias-methods into vitest/no-alias-methods (#21760) (camchenry)

    eb97c49 linter: Split jest/max-nested-describe into vitest/max-nested-describe (#21759) (camchenry)

    d870cad linter: Split jest/max-expects into vitest/max-expects (#21758) (camchenry)

    1b97124 linter/vue: Implement no-deprecated-vue-config-keycodes rule (#21699) (bab)

    5f81883 linter/eslint: Implement func-name-matching rule (#21708) (Mikhail Baev)

    348f46c linter: Add respectEslintDisableDirectives option (#21384) (Christian Vuerings)

    63ec351 linter: Support nested vite+ config discovery (#21638) (camc314)

    560feb4 linter: Introduce Vite variant to DiscoveredConfigFile (#21637) (camc314)

    07dc41e linter/eslint: Implement no-underscore-dangle rule (#21630) (Paul-Arthur THIERY)

    e270d54 linter/react: Impl react/no-did-update-set-state (#17322) (Kenzo Wada)

    ca81199 linter/react: Implement forbid-component-props rule (#20005) (Mikhail Baev)

    6776403 linter/branches-sharing-code: Move rule from nursery to pedantic (#21621) (camc314)

    ce7a4dc linter/no-unreachable: Move rule from nursery to correctness (#21618) (camc314)

    e3b5e78 linter/getter-return: Move rule from nursery to correctness (#21617) (camc314)

    d3a7e9a linter/unicorn: Implement suggestion for no-useless-iterator-to-array rule (#21610) (Mikhail Baev)

    a0c883c oxlint/lsp: Add vite plus version to server info (#21587) (Sysix)

    67ff860 linter/no-unknown-property: Support React 19 precedence prop (#21590) (JoΓ£o Pedro Schmitz)

    πŸ› Bug Fixes

    aace797 linter: Detect Svelte TS and module scripts correctly (#20819) (mustafa0x)

    3612db1 linter/prefer-default-parameters: Skip reporting on object/class setters (#21836) (camc314)

    28c3521 oxlint/lsp: Remove overlapping edits for source.fixAllDangerous.oxc code action (#21785) (Sysix)

    705a82c linter/no-non-null-asserted-nullish-coalescing: Add fixer (#21827) (yyh)

    33f5535 linter: Add checks that Program is in current allocator chunk before JS plugins linting (#21774) (overlookmotel)

    d122877 linter/no-extra-non-null-assertions: Add fixer (#21744) (yyh)

    37f0731 linter: with_plugin_vitest(true) working realiable in test mode (#21769) (Said Atrahouch)

    e42e6a6 linter/role-supports-aria-props: False positive with combobox and haspopup (#21725) (Leonabcd123)

    e24324f linter: Iframe-has-title false positive for template literals (#21714) (Leonabcd123)

    41a6510 linter/vitest/hoisted-apis-on-top: Only check first member (#20068) (Sidharth Vinod)

    98ed888 linter: Check initializer for allowConstantExport in only-export-components (#20608) (EyΓΌp Can Akman)

    1946e8b linter: Avoid applying override plugin categories to eslint rules (#21521) (bab)

    3d1e83a linter: Parse <script> tag attributes with curly braces in Svelte files (#21089) (bab)

    bc6ade5 linter: Report actual disable directive prefix (#21682) (camc314)

    bf84466 linter: Respect category settings in overrides (#19411) (Connor Shea)

    52ec45b linter/vitest: Don't treat test.extend or it.extend as test functions (#21668) (Said Atrahouch)

    aa1a00c linter: Support jsx-a11y attributes setting in anchor-is-valid rule (#21665) (camchenry)

    30e0ad3 linter/prefer-default-parameters: Preserve TS annotations in fixer (#21655) (camc314)

    8c425db linter: Allow string for jest version in config schema (#21649) (camc314)

    3617864 linter/react/display-name: Fix false positive for named default class (#21643) (Mikhail Baev)

    f3a02cc linter/no-non-null-assertion: Improve diagnostic message (#21616) (Cameron)

    c2ada2c linter: Make --fix-dangerously fix dangerous fixes and suggestions as documented (#13366) (Ulrich Stark)

    8265ed9 linter/sort-keys: Handle CRLF separated groups (#21608) (camc314)

    96c559e linter/no-shadow: Add note explaining enum member shadowing (#21607) (camc314)

    3b49389 linter: No-irregular-whitespace: add config options (#21559) (camchenry)

    ⚑ Performance

    cdc9eae oxlint/lsp: Avoid clones on lsp options deserializion (#21748) (Sysix)

    be2db80 linter/sort-keys: Reduce allocations (#21560) (camchenry)

    πŸ“š Documentation

    453d647 linter: Remove now-unnecessary compatibility notes from shared Jest/Vitest rules. (#21826) (connorshea)

    b1574a2 linter: Fix the configuration docs for no-underscore-dangle rule. (#21801) (connorshea)

    6946aee linter: Remove no-longer-relevant documentation about vitest compatibility from shared Jest/Vitest rules. (#21799) (connorshea)

    0652ea2 linter: Misc grammar cleanup for Vitest rules. (#21755) (connorshea)

    99f0b68 linter: Improve docs for vitest/require-mock-type-parameters rule. (#21754) (connorshea)

    9e2796b linter: Improve the docs for the vitest/hoisted-apis-on-top rule. (#21753) (connorshea)

    2ccede2 linter: Improve function usage examples in doc comments (#21718) (overlookmotel)

    43adae9 linter: Add version section to rules page (#21601) (camchenry)

    d15dad2 linter: Export rule version metadata (#21588) (Old Autumn)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)

    5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)

    c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)

    πŸš€ Features

    3bc54a9 oxfmt: Respect nested config for --stdin-filepath (#21627) (leaysgur)

    144f27a oxfmt: Respect ignore settings for --stdin-filepath (#21625) (leaysgur)

    81c7ae4 oxfmt/lsp: Add vite plus version to server info (#21586) (Sysix)

    πŸ› Bug Fixes

    477435b formatter/sort_imports: Keep leading blank line when decreasing group transitions (#21835) (leaysgur)

    38d1e82 oxfmt/lsp: Format non file:// URIs without a authority (#21647) (Sysix)

    5eb8e2b formatter/sort_imports: Preserve blank lines around ignored side-effect imports (#21692) (leaysgur)

    0dce3c6 oxfmt: Handle invalid overrides config without panic (#21661) (Yuji Sugiura)

    9f82ed4 formatter: Escape backticks in JSDoc inline code spans (#21577) (bab)

    ⚑ Performance

    db6c603 oxfmt/lsp: Avoid clones on lsp options deserializion (#21749) (Sysix)

    6a96c76 formatter: Avoid heap alloc for jsdoc delimiter (#21597) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Co-authored-by: Cameron Clark [email protected]

    Original source
  • Apr 27, 2026
    • Date parsed from source:
      Apr 27, 2026
    • First seen by Releasebot:
      Apr 27, 2026
    Oxc logo

    Oxc

    oxc crates_v0.128.0

    Oxc ships breaking AST and syntax changes alongside new allocator and AST helper features, plus minifier improvements, bug fixes, and broad performance gains. The release also updates code generation, documentation, and dependencies for a faster, more polished developer experience.

    πŸ’₯ BREAKING CHANGES

    502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)
    5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)
    c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)
    c5b3deb syntax: [BREAKING] Remove CommentNodeId (#21679) (overlookmotel)

    πŸš€ Features

    b738a39 allocator: Add Allocator::cursor_ptr method (#21773) (overlookmotel)
    678767e ast: Generate node_id accessors for AST enum wrappers (#21653) (camc314)
    f091d77 minifier: Inline constant spread elements into arrays (#21095) (Armano)

    πŸ› Bug Fixes

    0d608c2 minifier: Preserve raw CR in template literals (#21645) (Dunqing)
    a889ea9 minifier: Track pure functions in DCE mode (#21722) (Dunqing)
    674dfac allocator: Arena retry allocation when chunk size approaches maximum (#21777) (overlookmotel)
    f130cc0 allocator: Fix arithmetic overflow in Arena::new_chunk_memory_details (#21745) (overlookmotel)
    b9bf239 allocator: Fix UB in Arena::grow_zeroed (#21739) (overlookmotel)
    d2b9389 allocator: Clippy warning when building without testing feature (#21681) (camc314)
    503dc86 codegen: Map sourcemaps from visible output starts (#21662) (Dunqing)
    c92bd3b transformer: Use SPAN for synthesized helper calls to prevent comment misattribution (#21578) (Dunqing)
    0d80441 codegen: Add mapping before printing # for private ident (#21619) (camc314)

    ⚑ Performance

    9fa362e napi/parser: Do not generate tokens except in tests (#21811) (overlookmotel)
    0044392 allocator: Reduce branches when allocating new chunk (#21776) (overlookmotel)
    7896bd0 allocator: Allocator::used_bytes do not use chunk iterator (#21771) (overlookmotel)
    a5c562f allocator: Remove check in Arena::new_chunk_memory_details (#21750) (overlookmotel)
    35bbe1f allocator: Arena use unchecked size round up where guaranteed no overflow (#21743) (overlookmotel)
    ffe229b allocator: Remove unnecessary check from Arena::try_alloc_layout_slow_impl (#21732) (overlookmotel)
    72fece5 allocator: Use NonNull::offset_from_unsigned in Arena::chunk_capacity (#21731) (overlookmotel)
    cab32ae ast: Add #[inline(always)] to node_id methods on enums with all variants unboxed (#21707) (overlookmotel)
    b179688 parser: Allocate TriviaBuilder comments in the arena (#21512) (Boshen)
    2290f31 lexer: Fix perf of Token::set_* methods on Rust 1.95.0 (#21659) (overlookmotel)
    1b58029 allocator: Move code into cold path in Arena::alloc_layout (#21622) (overlookmotel)
    3cf7cef allocator: Reduce instructions on allocation hot path (#21510) (overlookmotel)

    πŸ“š Documentation

    ce65070 data_structures: Document why as_ref and as_mut on NonNullConst and NonNullMut take self (#21800) (overlookmotel)
    93b7dbd allocator: Improve doc comments for ChunkFooter (#21733) (overlookmotel)
    295db8d transformer: Fix comment (#21717) (overlookmotel)
    5c93af8 ast: Add comments explaining #[inline(always)] to node_id methods on enums (#21706) (overlookmotel)
    e4cea25 transform: Use the node: namespace in the example (#19998) (루밀LuMir)

    πŸ›‘οΈ Security

    d8076c9 deps: Update rolldown (#21639) (renovate)

    Original source
  • Apr 27, 2026
    • Date parsed from source:
      Apr 27, 2026
    • First seen by Releasebot:
      Apr 27, 2026
    Oxc logo

    Oxc

    oxlint v1.62.0 & oxfmt v0.47.0

    Oxc releases Oxlint v1.62.0 and Oxfmt v0.47.0 with broader Vitest and Jest rule coverage, new Vue, React, and ESLint checks, plus LSP, formatting, bug fixes, performance improvements, and documentation updates.

    Table of Contents

    Oxlint v1.62.0

    Oxfmt v0.47.0

    Oxlint v1.62.0

    πŸš€ Features

    0c0e741 linter: Implemented prefer-expect-assertions in Vitest and Jest (#21488) (Said Atrahouch)

    e37cfc4 oxfmt/lsp: Format files outside workspace folders (#21481) (Sysix)

    b4acdbd linter/vue: Implement no-deprecated-delete-set rule (#21766) (bab)

    613bfef linter: Split jest/prefer-to-contain into a jest and a vitest rule. (#21821) (connorshea)

    c629719 linter/vue: Implement no-deprecated-events-api rule (#21793) (Alex Peshkov)

    f2a8528 linter: Split jest/require-top-level-describe rule into a Jest and a Vitest rule. (#21822) (connorshea)

    ea4b358 linter: Split jest/prefer-todo into a shared rule and a vitest-specific rule. (#21820) (connorshea)

    3a66819 linter: Split jest/no-mocks-import into vitest/no-mocks-import (#21818) (camchenry)

    0b3ffce linter: Split jest/no-large-snapshots into vitest/no-large-snapshots (#21814) (camchenry)

    d1cf22e linter: Split jest/no-interpolation-in-snapshots into vitest/no-interpolation-in-snapshots (#21812) (camchenry)

    bb0c359 linter: Split jest/no-identical-title into vitest/no-identical-title (#21810) (camchenry)

    c26ea41 linter: Split jest/no-hooks into vitest/no-hooks (#21809) (camchenry)

    46b32f2 linter: Split jest/no-focused-tests into vitest/no-focused-tests (#21804) (camchenry)

    acf41a8 linter: Split jest/no-duplicate-hooks into vitest/no-duplicate-hooks (#21803) (camchenry)

    54d787f linter: Split jest/no-disabled-tests into vitest/no-disabled-tests (#21802) (camchenry)

    9c9a676 linter/vue: Implement no-deprecated-data-object-declaration rule (#21764) (bab)

    4445855 linter: Split jest/no-conditional-in-test into vitest/no-conditional-in-test (#21763) (camchenry)

    b8604de linter: Split jest/no-conditional-expect into vitest/no-conditional-expect (#21762) (camchenry)

    0dbd650 linter: Split jest/no-commented-out-tests into vitest/no-commented-out-tests (#21761) (camchenry)

    7f1a97c linter: Split jest/no-alias-methods into vitest/no-alias-methods (#21760) (camchenry)

    eb97c49 linter: Split jest/max-nested-describe into vitest/max-nested-describe (#21759) (camchenry)

    d870cad linter: Split jest/max-expects into vitest/max-expects (#21758) (camchenry)

    1b97124 linter/vue: Implement no-deprecated-vue-config-keycodes rule (#21699) (bab)

    5f81883 linter/eslint: Implement func-name-matching rule (#21708) (Mikhail Baev)

    348f46c linter: Add respectEslintDisableDirectives option (#21384) (Christian Vuerings)

    63ec351 linter: Support nested vite+ config discovery (#21638) (camc314)

    560feb4 linter: Introduce Vite variant to DiscoveredConfigFile (#21637) (camc314)

    07dc41e linter/eslint: Implement no-underscore-dangle rule (#21630) (Paul-Arthur THIERY)

    e270d54 linter/react: Impl react/no-did-update-set-state (#17322) (Kenzo Wada)

    ca81199 linter/react: Implement forbid-component-props rule (#20005) (Mikhail Baev)

    6776403 linter/branches-sharing-code: Move rule from nursery to pedantic (#21621) (camc314)

    ce7a4dc linter/no-unreachable: Move rule from nursery to correctness (#21618) (camc314)

    e3b5e78 linter/getter-return: Move rule from nursery to correctness (#21617) (camc314)

    d3a7e9a linter/unicorn: Implement suggestion for no-useless-iterator-to-array rule (#21610) (Mikhail Baev)

    a0c883c oxlint/lsp: Add vite plus version to server info (#21587) (Sysix)

    67ff860 linter/no-unknown-property: Support React 19 precedence prop (#21590) (JoΓ£o Pedro Schmitz)

    πŸ› Bug Fixes

    b6dcc22 linter/valid-expect: Allow string message in Vitest valid-expect (#18975) (CΓ©dric Exbrayat)

    cff9277 linter/valid-expect: Clarify fixer suggestion messages (#21839) (camc314)

    aace797 linter: Detect Svelte TS and module scripts correctly (#20819) (mustafa0x)

    3612db1 linter/prefer-default-parameters: Skip reporting on object/class setters (#21836) (camc314)

    28c3521 oxlint/lsp: Remove overlapping edits for source.fixAllDangerous.oxc code action (#21785) (Sysix)

    705a82c linter/no-non-null-asserted-nullish-coalescing: Add fixer (#21827) (yyh)

    33f5535 linter: Add checks that Program is in current allocator chunk before JS plugins linting (#21774) (overlookmotel)

    d122877 linter/no-extra-non-null-assertions: Add fixer (#21744) (yyh)

    37f0731 linter: with_plugin_vitest(true) working realiable in test mode (#21769) (Said Atrahouch)

    e42e6a6 linter/role-supports-aria-props: False positive with combobox and haspopup (#21725) (Leonabcd123)

    e24324f linter: Iframe-has-title false positive for template literals (#21714) (Leonabcd123)

    41a6510 linter/vitest/hoisted-apis-on-top: Only check first member (#20068) (Sidharth Vinod)

    98ed888 linter: Check initializer for allowConstantExport in only-export-components (#20608) (EyΓΌp Can Akman)

    1946e8b linter: Avoid applying override plugin categories to eslint rules (#21521) (bab)

    3d1e83a linter: Parse <script> tag attributes with curly braces in Svelte files (#21089) (bab)

    bc6ade5 linter: Report actual disable directive prefix (#21682) (camc314)

    bf84466 linter: Respect category settings in overrides (#19411) (Connor Shea)

    52ec45b linter/vitest: Don't treat test.extend or it.extend as test functions (#21668) (Said Atrahouch)

    aa1a00c linter: Support jsx-a11y attributes setting in anchor-is-valid rule (#21665) (camchenry)

    30e0ad3 linter/prefer-default-parameters: Preserve TS annotations in fixer (#21655) (camc314)

    8c425db linter: Allow string for jest version in config schema (#21649) (camc314)

    3617864 linter/react/display-name: Fix false positive for named default class (#21643) (Mikhail Baev)

    f3a02cc linter/no-non-null-assertion: Improve diagnostic message (#21616) (Cameron)

    c2ada2c linter: Make --fix-dangerously fix dangerous fixes and suggestions as documented (#13366) (Ulrich Stark)

    8265ed9 linter/sort-keys: Handle CRLF separated groups (#21608) (camc314)

    96c559e linter/no-shadow: Add note explaining enum member shadowing (#21607) (camc314)

    3b49389 linter: No-irregular-whitespace: add config options (#21559) (camchenry)

    ⚑ Performance

    cdc9eae oxlint/lsp: Avoid clones on lsp options deserializion (#21748) (Sysix)

    be2db80 linter/sort-keys: Reduce allocations (#21560) (camchenry)

    πŸ“š Documentation

    453d647 linter: Remove now-unnecessary compatibility notes from shared Jest/Vitest rules. (#21826) (connorshea)

    b1574a2 linter: Fix the configuration docs for no-underscore-dangle rule. (#21801) (connorshea)

    6946aee linter: Remove no-longer-relevant documentation about vitest compatibility from shared Jest/Vitest rules. (#21799) (connorshea)

    0652ea2 linter: Misc grammar cleanup for Vitest rules. (#21755) (connorshea)

    99f0b68 linter: Improve docs for vitest/require-mock-type-parameters rule. (#21754) (connorshea)

    9e2796b linter: Improve the docs for the vitest/hoisted-apis-on-top rule. (#21753) (connorshea)

    2ccede2 linter: Improve function usage examples in doc comments (#21718) (overlookmotel)

    43adae9 linter: Add version section to rules page (#21601) (camchenry)

    d15dad2 linter: Export rule version metadata (#21588) (Old Autumn)

    Oxfmt v0.47.0

    πŸš€ Features

    e37cfc4 oxfmt/lsp: Format files outside workspace folders (#21481) (Sysix)

    3bc54a9 oxfmt: Respect nested config for --stdin-filepath (#21627) (leaysgur)

    144f27a oxfmt: Respect ignore settings for --stdin-filepath (#21625) (leaysgur)

    81c7ae4 oxfmt/lsp: Add vite plus version to server info (#21586) (Sysix)

    πŸ› Bug Fixes

    477435f formatter/sort_imports: Keep leading blank line when decreasing group transitions (#21835) (leaysgur)

    38d1e82 oxfmt/lsp: Format non file:// URIs without a authority (#21647) (Sysix)

    5eb8e2b formatter/sort_imports: Preserve blank lines around ignored side-effect imports (#21692) (leaysgur)

    0dce3c6 oxfmt: Handle invalid overrides config without panic (#21661) (Yuji Sugiura)

    9f82ed4 formatter: Escape backticks in JSDoc inline code spans (#21577) (bab)

    ⚑ Performance

    db6c603 oxfmt/lsp: Avoid clones on lsp options deserializion (#21749) (Sysix)

    6a96c76 formatter: Avoid heap alloc for jsdoc delimiter (#21597) (leaysgur)

    Original source
  • Apr 20, 2026
    • Date parsed from source:
      Apr 20, 2026
    • First seen by Releasebot:
      Apr 21, 2026
    Oxc logo

    Oxc

    oxlint_v1.61.0: release(apps): oxlint v1.61.0 && oxfmt v0.46.0 (#21583)

    Oxc releases breaking allocator method renames, adds new Oxlint rule support and autofixes, and expands Oxfmt with per-directory config, a disable-nested-config CLI flag, and updated Prettier. It also includes bug fixes, performance gains, and documentation updates.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

    πŸš€ Features

    38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)

    7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)

    9b4d9f6 linter/prefer-template: Implement autofix (#21502) (FranΓ§ois)

    daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)

    cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)

    d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)

    cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)

    πŸ› Bug Fixes

    1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)

    f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)

    4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)

    00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)

    a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)

    9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)

    61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)

    eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)

    3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)

    4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (CΓ©dric Exbrayat)

    a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)

    2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)

    44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)

    7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)

    43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)

    πŸ“š Documentation

    c1eeae3 linter: Add version to rule.json (#21547) (camchenry)

    0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

    πŸš€ Features

    5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)

    b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)

    16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)

    952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)

    πŸ› Bug Fixes

    a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)

    6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)

    7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)

    41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)

    f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)

    ⚑ Performance

    df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)

    5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)

    Co-authored-by: camc314 [email protected]

    Original source
  • Apr 20, 2026
    • Date parsed from source:
      Apr 20, 2026
    • First seen by Releasebot:
      Apr 21, 2026
    Oxc logo

    Oxc

    oxfmt_v0.46.0: release(apps): oxlint v1.61.0 && oxfmt v0.46.0 (#21583)

    Oxc releases Oxlint and Oxfmt updates with a breaking allocator rename, new Jest config support, autofixes and rule improvements, plus per-directory config support, a new CLI flag, formatter bug fixes and performance gains.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

    πŸš€ Features

    38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)

    7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)

    9b4d9f6 linter/prefer-template: Implement autofix (#21502) (FranΓ§ois)

    daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)

    cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)

    d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)

    cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)

    πŸ› Bug Fixes

    1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)

    f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)

    4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)

    00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)

    a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)

    9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)

    61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)

    eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)

    3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)

    4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (CΓ©dric Exbrayat)

    a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)

    2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)

    44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)

    7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)

    43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)

    πŸ“š Documentation

    c1eeae3 linter: Add version to rule.json (#21547) (camchenry)

    0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

    πŸš€ Features

    5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)

    b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)

    16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)

    952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)

    πŸ› Bug Fixes

    a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)

    6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)

    7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)

    41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)

    f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)

    ⚑ Performance

    df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)

    5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)

    Co-authored-by: camc314 [email protected]

    Original source
  • Apr 20, 2026
    • Date parsed from source:
      Apr 20, 2026
    • First seen by Releasebot:
      Apr 21, 2026
    Oxc logo

    Oxc

    oxc crates_v0.127.0

    Oxc fixes minifier, parser, transformer, mangler, codegen, and TypeScript declaration handling, while also improving parser and allocator performance. The release tightens constructor and comment handling, preserves annotations and coverage comments, and streamlines internal parsing work.

    πŸ› Bug Fixes

    510e344 minifier: Drop this after unconditional super() in derived constructors (#21571) (Dunqing)
    67d40f8 parser: Set pure comment index after dedup check to handle lookahead/rewind (#21570) (Dunqing)
    9eea064 minifier: Treat this outside constructor as side-effect free (#21568) (Dunqing)
    385eb94 minifier: Preserve annotation comments when inlining single-use variables during DCE (#21567) (Dunqing)
    48967e8 isolated_declarations: Drop required type check for private parameter properties on private constructors (#21515) (Dunqing)
    91e5bde transformer/typescript: Preserve computed-key static block when class has an empty constructor (#21562) (Dunqing)
    50e9d26 mangler: Assign correct slot to shadowed function-expression names (#21535) (Dunqing)
    065ce47 isolated_declarations: Collect types from private accessors for paired inference (#21516) (Dunqing)
    00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
    d676e0c minifier: Mark LHS of ??= as read when converting from == null && (#21546) (Gunnlaugur Thor Briem)

    ⚑ Performance

    e45efc5 parser: Reduce try_parse usage in favour of lookahead (#21532) (Boshen)
    ddb1bf8 parser: Avoid redundant IdentifierReference clone in shorthand property (#21511) (Boshen)
    be2b392 allocator: Store pointers directly in Arena (#21483) (overlookmotel)

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.

Similar to Oxc with recent updates: