diff --git a/apps/oxfmt/CHANGELOG.md b/apps/oxfmt/CHANGELOG.md index 41a0056efdfe4..0cf43501f56cb 100644 --- a/apps/oxfmt/CHANGELOG.md +++ b/apps/oxfmt/CHANGELOG.md @@ -34,6 +34,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). - 467724f oxfmt: Collect glob paths in parallel (#19209) (leaysgur) - 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (#18888) (Boshen) +## [0.29.0] - 2026-02-10 + +### ๐Ÿ’ฅ BREAKING CHANGES + +- 856a01f formatter/sort_imports: [**BREAKING**] Replace prefix match with glob pattern in `customGroups.elementNamePattern` (#19066) (leaysgur) + +### ๐Ÿš€ Features + +- 91e67f3 oxfmt/lsp: Do not refer `.gitignore` (#19206) (leaysgur) +- 23c0753 oxfmt: Better Tailwind CSS intergration (#19000) (Dunqing) +- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt (#19039) (Boshen) +- 8536dce oxfmt: Support glob for CLI paths (#18976) (leaysgur) +- 6ee2d59 oxfmt: Use `oxc_formatter` in js-in-xxx part (#18373) (leaysgur) +- 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) + +### ๐Ÿ› Bug Fixes + +- 119348b oxfmt: Resolve relative -> absolute path for other usages (#19207) (leaysgur) +- 5f4cf30 oxfmt: Fix relative -> absolute path resolution with refactoring (#19202) (leaysgur) +- dc335d1 oxfmt: Temporarily disable the override for js-in-xxx (not ready yet) (#19043) (leaysgur) +- 5ea5bda oxfmt: Handle `isSingleJsxExpressionStatementInMarkdown()` check for js-in-md (#19042) (leaysgur) +- 9b205b3 formatter: Fallback to formatting when package.json sorting fails (#19097) (Boshen) +- f39c96c oxfmt: Do not override `babel-ts` for now (#19030) (leaysgur) +- ef5bfab oxfmt: Workaround Node.js ThreadsafeFunction cleanup race condition (#18980) (Boshen) + +### โšก Performance + +- 467724f oxfmt: Collect glob paths in parallel (#19209) (leaysgur) +- 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (#18888) (Boshen) + ## [0.28.0] - 2026-02-02 ### ๐Ÿš€ Features diff --git a/apps/oxlint/CHANGELOG.md b/apps/oxlint/CHANGELOG.md index 1a74c9223747f..fd6bd82589714 100644 --- a/apps/oxlint/CHANGELOG.md +++ b/apps/oxlint/CHANGELOG.md @@ -26,6 +26,54 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). ### ๐Ÿ› Bug Fixes +- d07059c linter/plugins: Support legacy `context.report(node, ...)` calls (#19193) (camc314) +- a5b8766 oxlint/lsp: Disable rule for this line should not be preferred (#19083) (Sysix) +- 1773acb oxlint: Re-generate envs (#19169) (camc314) +- 825f148 linter/plugins: `RuleTester` consider adjacent fixes as overlapping in ESLint compat mode (#19094) (overlookmotel) +- ecd2456 linter/plugins: Handle fix with -1 offsets in file with BOM (#19092) (overlookmotel) +- 2ad33cc oxlint/lsp: Search parent directories for root oxlint config (#19062) (copilot-swe-agent) +- ed759d1 linter/plugins: Fix error messages for invalid suggestions (#19059) (overlookmotel) +- 34851a7 linter/plugins: Error not panic if invalid fix range (#19058) (overlookmotel) +- 4823b58 linter/plugins: Fix fixes in files with BOM (#19056) (overlookmotel) +- 57917ee parser: Parse decorators on rest parameters (#18938) (Boshen) +- d64bfdd linter/plugins: Ensure `after` hook always runs last in rule converted for ESLint (#18904) (overlookmotel) +- ecf11e5 linter/dynamic-config: Set `ExternalPlugin.config_dir` to fix js plugins loading (#18854) (camc314) +- 01b7838 linter/plugins: Do not destroy workspaces (#18833) (overlookmotel) +- dc51d6b linter: Normalize paths slashes for snapshots on windows (#18825) (camc314) + +### โšก Performance + +- 18f58bd oxlint/lsp: Transform unused disable directive directly to DiagnosticReport (#19112) (Sysix) + +### ๐Ÿ“š Documentation + +- 6e8ef38 linter/plugins: Correct and expand JSDoc comment for `RuleTester` config (#19156) (overlookmotel) +- 726e273 linter/plugins: Improve JSDoc comment for `DiagnosticReport` (#19103) (overlookmotel) +- 9561e7f linter/plugins: Alter JS plugins example (#18900) (overlookmotel) +- 501e3b6 linter: Regenerate `config.generated.ts` (#18897) (overlookmotel) + +## [1.44.0] - 2026-02-10 + +### ๐Ÿš€ Features + +- e3dc5f6 linter/plugins: `RuleTester` test suggestions (#19104) (overlookmotel) +- 6054249 linter/plugins: Add `recursive` option to `RuleTester` (#19093) (overlookmotel) +- 27c241b linter/plugins: `RuleTester` test fixes (#19091) (overlookmotel) +- 7be8613 linter: Move `no-misleading-chracter-class` to `correctness` (#19006) (Sysix) +- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt (#19039) (Boshen) +- ee2925b oxlint/lsp: Enable JS plugins (#18834) (overlookmotel) +- e2d28fe linter/plugins: Implement suggestions (#18963) (overlookmotel) +- a398152 linter: Promote the `eslint/no-iterator` rule to correctness, which makes it a default rule (#18915) (connorshea) +- bb1eb97 linter: Improve diagnostic message for circular configs (#18947) (camc314) +- 3184f36 linter: Ban relative js plugin specifiers in js extends config (#18944) (camc314) +- 749972f linter: Validate dynamic config extends shape (#18943) (camc314) +- b270739 linter: Support extends in oxlint.config.ts (#18942) (camc314) +- 9fd3bd6 linter/plugins: Add `@oxlint/plugins` NPM package (#18824) (overlookmotel) +- 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) +- b23395a linter: Enforce exporting an object with `defineConfig` (#18858) (camc314) + +### ๐Ÿ› Bug Fixes + - a5b8766 oxlint/lsp: Disable rule for this line should not be preferred (#19083) (Sysix) - 1773acb oxlint: Re-generate envs (#19169) (camc314) - 825f148 linter/plugins: `RuleTester` consider adjacent fixes as overlapping in ESLint compat mode (#19094) (overlookmotel) diff --git a/crates/oxc_formatter/CHANGELOG.md b/crates/oxc_formatter/CHANGELOG.md index 7c9e76ac2bd53..e3527bb143813 100644 --- a/crates/oxc_formatter/CHANGELOG.md +++ b/crates/oxc_formatter/CHANGELOG.md @@ -25,6 +25,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). - 1e023e1 formatter: Preserve trailing comma in mts/cts arrow generics (#18928) (Dunqing) - 7c4e558 formatter/detect_code_removal: Do not count `TemplateLiteral` content (#18848) (leaysgur) +## [0.29.0] - 2026-02-10 + +### ๐Ÿ’ฅ BREAKING CHANGES + +- 856a01f formatter/sort_imports: [**BREAKING**] Replace prefix match with glob pattern in `customGroups.elementNamePattern` (#19066) (leaysgur) + +### ๐Ÿ› Bug Fixes + +- 5243307 formatter: Preserve numeric separators in number literals (#19015) (Dunqing) +- b79c065 formatter: Preserve comment between callee and optional chaining operator (#19020) (Dunqing) +- 01d1be1 formatter: Remove unnecessary parentheses for single-member union types (#19018) (Dunqing) +- f5c7e75 formatter: Preserve parentheses around await with private field access (#19014) (Dunqing) +- 5a75785 formatter: Preserve parentheses around nested sequence expressions (#19013) (Dunqing) +- 0ef11bb formatter: Add space before type annotation with leading comment (#19012) (Dunqing) +- cc232e1 formatter: Keep spread with callback on same line (#18999) (Dunqing) +- d53f5c4 formatter: Require string first arg in test calls (#18935) (Dunqing) +- 57917ee parser: Parse decorators on rest parameters (#18938) (Boshen) +- 2db8c05 formatter: Avoid breaking generic call assignments (#18933) (Dunqing) +- 1e023e1 formatter: Preserve trailing comma in mts/cts arrow generics (#18928) (Dunqing) +- 7c4e558 formatter/detect_code_removal: Do not count `TemplateLiteral` content (#18848) (leaysgur) + ## [0.28.0] - 2026-02-02 ### ๐Ÿ› Bug Fixes diff --git a/crates/oxc_linter/CHANGELOG.md b/crates/oxc_linter/CHANGELOG.md index 96e2b16c24e35..8282c6c70ec76 100644 --- a/crates/oxc_linter/CHANGELOG.md +++ b/crates/oxc_linter/CHANGELOG.md @@ -31,6 +31,81 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). ### ๐Ÿ› Bug Fixes +- 3ea8f08 jsdoc: Prevent outer JSDoc from applying to nested functions (#19219) (camc314) +- 7800fc5 linter/prefer-event-target: Ignore EventEmitter imported from packages (#19188) (camc314) +- 03b2955 linter/typescript/ban-types: Mark rule as deprecated (#19179) (camc314) +- e08157e linter/jsx-filename-extension: Include filename in as-needed diagnostic (#19172) (camc314) +- 51c3fc8 linter/no-array-for-each: Skip `Effect.forEach` calls (#19127) (camc314) +- 825f148 linter/plugins: `RuleTester` consider adjacent fixes as overlapping in ESLint compat mode (#19094) (overlookmotel) +- ecd2456 linter/plugins: Handle fix with -1 offsets in file with BOM (#19092) (overlookmotel) +- 5969d26 linter/no-array-sort: Avoid false positives for effect Chunk.sort (#19125) (camc314) +- de10f04 linter: `no-misleading-character-class`: do not skip reporting on first invalid sequence of the checking group (#19111) (Sysix) +- 8c0ce78 linter: Scope no-misleading-character-class sequences to single character class (#19108) (copilot-swe-agent) +- 879e3a0 linter: `no-misleading-character-class`: split sequences on all `CharacterSet` (#19107) (Sysix) +- f969d5e linter/prefer-dom-node-dataset: Address some edge cases in the fixer (#19065) (camc314) +- ed759d1 linter/plugins: Fix error messages for invalid suggestions (#19059) (overlookmotel) +- 34851a7 linter/plugins: Error not panic if invalid fix range (#19058) (overlookmotel) +- 4823b58 linter/plugins: Fix fixes in files with BOM (#19056) (overlookmotel) +- 2ef405e linter/no-map-spread: Improve actionability of error message (#19007) (Artyom Alekseevich) +- 56c086b parser: Add modifier ordering validation (TS1029) (#19024) (Boshen) +- 6067a49 linter/jsdoc: False positive in `check-tag-names` for `@` in email addresses and npm scopes (#19021) (Boshen) +- 6d46ed9 linter/capitalized-comments: Ignore prettier and oxfmt directives (#19008) (Artyom Alekseevich) +- a46c878 linter/react/no-array-index-key: Look for keys in expressions (#18997) (camc314) +- 7d61704 linter/prefer-at: Skip autofix for `arguments` (#18991) (camc314) +- 3ebae53 linter/preserve-caught-error: Skip traversing into nested try/catch stmts (#18990) (camc314) +- e94d37e linter/react/no-unknown-property: Add missing `popover` related props (#18953) (Christoph Nakazawa) +- 04b0d99 linter: Normalize relative paths with `./` prefix in overrides. (#18954) (connorshea) +- 07742ea linter/prefer-as-const: Implement fixer for type annotation (#18899) (camc314) +- ec39944 linter/jsx-a11y/no-distracting-elements: Support elements option (#18892) (camc314) +- f609cb6 linter/prefer-expect-type-of: Handle computed elements in fixer correctly (#18890) (camc314) +- dbfdc40 linter/bad-replace-all-args: Skip extracting flags from conditional expressions (#18844) (camc314) + +### โšก Performance + +- ed8c054 oxc_str: Add precomputed hash to Ident for fast HashMap lookups (#19143) (Boshen) +- 4ce3772 linter: Remove pointless string cloning when combining suggestions (#19075) (overlookmotel) +- c417bf5 linter: Avoid allocating `Vec` when compiling `PossibleFixes` (#19074) (overlookmotel) +- adb2baa linter/plugins: Avoid allocation when rule provides single suggestion (#19071) (overlookmotel) +- 2537924 semantic: Optimize scope resolution with fast paths and inlining (#19029) (Boshen) + +### ๐Ÿ“š Documentation + +- fe4357a linter: Fix typo in oxc/erasing-op (#19205) (drylint) +- e7ec06a linter: Improve docs for `import/max-dependencies` rule. (#19119) (connorshea) +- 367f730 linter/consistent-test-filename: Escape file names fixes #19114 (#19123) (camc314) +- 8753a54 linter: Rewrite the docs for the `jsx-a11y/no-redundant-roles` rule. (#19117) (connorshea) +- dd44b1a linter: Fix invalid directive in example code for `import/no-nodejs-modules`. (#19115) (connorshea) +- 9561e7f linter/plugins: Alter JS plugins example (#18900) (overlookmotel) +- b425a0c linter: Document jsPlugins examples (#18671) (Cameron) +- df2b7fa linter: Expand settings example with reference to custom plugins (#18670) (camc314) + +## [1.44.0] - 2026-02-10 + +### ๐Ÿš€ Features + +- aef2af5 linter/unicorn: Add fixer for `unicorn/relative-url-style` rule (#19186) (Mikhail Baev) +- 80eba6f linter/max-params: Support `countThis` option (#19175) (camc314) +- e19bc45 linter/no-new-func: Improve rule diagnostic with note and actionable help message (#19132) (Sean Gallen) +- 27c241b linter/plugins: `RuleTester` test fixes (#19091) (overlookmotel) +- 7318275 linter/new-cap: Tighten diagnostic spans and add help text (#19131) (camchenry) +- ac2b16b linter: Improve `no-misleading-character-class` diagnostic spans (#19109) (Sysix) +- 7be8613 linter: Move `no-misleading-chracter-class` to `correctness` (#19006) (Sysix) +- ee2925b oxlint/lsp: Enable JS plugins (#18834) (overlookmotel) +- 533013d linter/unicorn: Implement suggestion for `unicorn/prefer-dom-node-dataset` (#19051) (Mikhail Baev) +- 384abae linter/oxc/no-async-endpoint-handlers: Improve diagnostic message (#19001) (camc314) +- d35ece3 linter/array-callback-return: Improve diagnostic hints for some cases (#18993) (camc314) +- dd0f754 linter/array-callback-return: Improve diagnostic message for `forEach` case (#18992) (camc314) +- e2d28fe linter/plugins: Implement suggestions (#18963) (overlookmotel) +- a398152 linter: Promote the `eslint/no-iterator` rule to correctness, which makes it a default rule (#18915) (connorshea) +- 3184f36 linter: Ban relative js plugin specifiers in js extends config (#18944) (camc314) +- b270739 linter: Support extends in oxlint.config.ts (#18942) (camc314) +- 6024ddf linter: Implement suggestion for `unicorn/prefer-reflect-apply` (#18932) (Mikhail Baev) +- b06b3a9 linter: Implement `typescript/consistent-type-assertions` (#18869) (Bazyli Brzรณska) +- 5ee7b2f linter/vitest: Implements `prefer-expect-type-of` rule (#17957) (Said Atrahouch) +- a7b360a linter/unicorn: Implement `unicorn/relative-url-style` rule (#18857) (Mikhail Baev) + +### ๐Ÿ› Bug Fixes + - 7800fc5 linter/prefer-event-target: Ignore EventEmitter imported from packages (#19188) (camc314) - 03b2955 linter/typescript/ban-types: Mark rule as deprecated (#19179) (camc314) - e08157e linter/jsx-filename-extension: Include filename in as-needed diagnostic (#19172) (camc314) diff --git a/npm/oxfmt/CHANGELOG.md b/npm/oxfmt/CHANGELOG.md index 9eb14cd654aad..1b7ca4ebba62f 100644 --- a/npm/oxfmt/CHANGELOG.md +++ b/npm/oxfmt/CHANGELOG.md @@ -15,6 +15,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). - 6ee2d59 oxfmt: Use `oxc_formatter` in js-in-xxx part (#18373) (leaysgur) - 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) +### ๐Ÿ› Bug Fixes + +- 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron) + +## [0.29.0] - 2026-02-10 + +### ๐Ÿ’ฅ BREAKING CHANGES + +- 856a01f formatter/sort_imports: [**BREAKING**] Replace prefix match with glob pattern in `customGroups.elementNamePattern` (#19066) (leaysgur) + +### ๐Ÿš€ Features + +- 6ee2d59 oxfmt: Use `oxc_formatter` in js-in-xxx part (#18373) (leaysgur) +- 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) + ## [0.27.0] - 2026-01-26 ### ๐Ÿ“š Documentation diff --git a/npm/oxlint/CHANGELOG.md b/npm/oxlint/CHANGELOG.md index ce7b07cc7a209..7c0bc5c910442 100644 --- a/npm/oxlint/CHANGELOG.md +++ b/npm/oxlint/CHANGELOG.md @@ -11,6 +11,23 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). - ee2925b oxlint/lsp: Enable JS plugins (#18834) (overlookmotel) - 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) +### ๐Ÿ› Bug Fixes + +- 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron) + +### ๐Ÿ“š Documentation + +- 9561e7f linter/plugins: Alter JS plugins example (#18900) (overlookmotel) +- b425a0c linter: Document jsPlugins examples (#18671) (Cameron) +- df2b7fa linter: Expand settings example with reference to custom plugins (#18670) (camc314) + +## [1.44.0] - 2026-02-10 + +### ๐Ÿš€ Features + +- ee2925b oxlint/lsp: Enable JS plugins (#18834) (overlookmotel) +- 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen) + ### ๐Ÿ“š Documentation - 9561e7f linter/plugins: Alter JS plugins example (#18900) (overlookmotel)