release(apps): oxlint v1.44.0 && oxfmt v0.29.0#19216
Conversation
Oxfmt Ecosystem CI
|
There was a problem hiding this comment.
Pull request overview
Updates release documentation across the repo for the oxlint v1.44.0 and oxfmt v0.29.0 releases, aligning crate/app/npm changelogs with the release notes in the PR description.
Changes:
- Add new release entries for
oxlint@1.44.0andoxfmt@0.29.0across multiple changelog files - Document breaking change/features/bug fixes for the formatter release and features/docs for the linter release
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
npm/oxlint/CHANGELOG.md |
Adds npm package changelog entry for oxlint 1.44.0 |
npm/oxfmt/CHANGELOG.md |
Adds npm package changelog entry for oxfmt 0.29.0 |
crates/oxc_linter/CHANGELOG.md |
Adds crate-level changelog entry for linter 1.44.0 |
crates/oxc_formatter/CHANGELOG.md |
Adds crate-level changelog entry for formatter 0.29.0 |
apps/oxlint/CHANGELOG.md |
Adds app-level changelog entry for oxlint 1.44.0 |
apps/oxfmt/CHANGELOG.md |
Adds app-level changelog entry for oxfmt 0.29.0 |
| ## [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) |
There was a problem hiding this comment.
This file includes a second "## [0.29.0] - 2026-02-10" section even though 0.29.0 already exists at the top of the changelog. Please remove the duplicate block to keep one entry per version.
| ## [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) |
| ### 🚀 Features | ||
|
|
||
| - 91e67f3 oxfmt/lsp: Do not refer `.gitignore` (#19206) (leaysgur) | ||
| - 23c0753 oxfmt: Better Tailwind CSS intergration (#19000) (Dunqing) |
There was a problem hiding this comment.
Typo in this bullet: "intergration" should be "integration".
| ## [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) | ||
| - b425a0c linter: Document jsPlugins examples (#18671) (Cameron) | ||
| - df2b7fa linter: Expand settings example with reference to custom plugins (#18670) (camc314) | ||
|
|
There was a problem hiding this comment.
This changelog now contains two separate "## [1.44.0] - 2026-02-10" sections (one earlier in the file and this new one), which will confuse release notes and tooling that expects a single entry per version. Remove the duplicated 1.44.0 block and keep a single consolidated section for the release.
| ## [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) | |
| - b425a0c linter: Document jsPlugins examples (#18671) (Cameron) | |
| - df2b7fa linter: Expand settings example with reference to custom plugins (#18670) (camc314) |
| ## [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) | ||
|
|
There was a problem hiding this comment.
This new "## [0.29.0] - 2026-02-10" entry duplicates an existing 0.29.0 section earlier in the file. Changelog versions should be unique—please remove the duplicate and leave a single 0.29.0 section.
| ## [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) |
| ## [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) |
There was a problem hiding this comment.
The 1.44.0 release notes appear twice in this file: there's already a full "## [1.44.0] - 2026-02-10" section at the top, and this hunk introduces another 1.44.0 header with repeated content below. Please remove the duplicated header/content and keep only one canonical 1.44.0 section.
| ## [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) |
| ## [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) | ||
|
|
There was a problem hiding this comment.
This file now has two consecutive "## [0.29.0] - 2026-02-10" sections with identical content. Please remove the duplicated section so each version appears only once in the changelog.
| ## [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) |
| ## [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) |
There was a problem hiding this comment.
This changelog now repeats the entire 1.44.0 entry: there is a 1.44.0 section at the top and this hunk introduces another "## [1.44.0] - 2026-02-10" header with overlapping items. Please deduplicate so there is exactly one 1.44.0 section and each bullet appears only once.
| ## [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) |
Oxlint
🚀 Features
unicorn/relative-url-stylerule (feat(linter/unicorn): add fixer forunicorn/relative-url-stylerule #19186) (Mikhail Baev)countThisoption (feat(linter/max-params): supportcountThisoption #19175) (camc314)RuleTestertest suggestions (feat(linter/plugins):RuleTestertest suggestions #19104) (overlookmotel)recursiveoption toRuleTester(feat(linter/plugins): addrecursiveoption toRuleTester#19093) (overlookmotel)RuleTestertest fixes (feat(linter/plugins):RuleTestertest fixes #19091) (overlookmotel)no-misleading-character-classdiagnostic spans (feat(linter): improveno-misleading-character-classdiagnostic spans #19109) (Sysix)no-misleading-chracter-classtocorrectness(feat(linter): moveno-misleading-chracter-classtocorrectness#19006) (Sysix)unicorn/prefer-dom-node-dataset(feat(linter/unicorn): implement suggestion forunicorn/prefer-dom-node-dataset#19051) (Mikhail Baev)forEachcase (feat(linter/array-callback-return): improve diagnostic message forforEachcase #18992) (camc314)eslint/no-iteratorrule to correctness, which makes it a default rule (feat(linter): Promote theeslint/no-iteratorrule to correctness, which makes it a default rule #18915) (connorshea)unicorn/prefer-reflect-apply(feat(linter): implement suggestion forunicorn/prefer-reflect-apply#18932) (Mikhail Baev)typescript/consistent-type-assertions(feat(linter): implementtypescript/consistent-type-assertions#18869) (Bazyli Brzóska)@oxlint/pluginsNPM package (feat(linter/plugins): add@oxlint/pluginsNPM package #18824) (overlookmotel)prefer-expect-type-ofrule (feat(linter/vitest): Implementsprefer-expect-type-ofrule #17957) (Said Atrahouch)unicorn/relative-url-stylerule (feat(linter/unicorn): implementunicorn/relative-url-stylerule #18857) (Mikhail Baev)defineConfig(feat(linter): enforce exporting an object withdefineConfig#18858) (camc314)🐛 Bug Fixes
context.report(node, ...)calls (fix(linter/plugins): support legacycontext.report(node, ...)calls #19193) (camc314)Effect.forEachcalls (fix(linter/no-array-for-each): skipEffect.forEachcalls #19127) (camc314)RuleTesterconsider adjacent fixes as overlapping in ESLint compat mode (fix(linter/plugins):RuleTesterconsider adjacent fixes as overlapping in ESLint compat mode #19094) (overlookmotel)no-misleading-character-class: do not skip reporting on first invalid sequence of the checking group (fix(linter):no-misleading-character-class: do not skip reporting on first invalid sequence of the checking group #19111) (Sysix)no-misleading-character-class: split sequences on allCharacterSet(fix(linter):no-misleading-character-class: split sequences on allCharacterSet#19107) (Sysix)check-tag-namesfor@in email addresses and npm scopes (fix(linter/jsdoc): false positive incheck-tag-namesfor@in email addresses and npm scopes #19021) (Boshen)arguments(fix(linter/prefer-at): skip autofix forarguments#18991) (camc314)popoverrelated props (fix(linter/react/no-unknown-property): add missingpopoverrelated props #18953) (Christoph Nakazawa)./prefix in overrides. (fix(linter): normalize relative paths with./prefix in overrides. #18954) (connorshea)afterhook always runs last in rule converted for ESLint (fix(linter/plugins): ensureafterhook always runs last in rule converted for ESLint #18904) (overlookmotel)ExternalPlugin.config_dirto fix js plugins loading (fix(linter/dynamic-config): setExternalPlugin.config_dirto fix js plugins loading #18854) (camc314)⚡ Performance
Vecwhen compilingPossibleFixes(perf(linter): avoid allocatingVecwhen compilingPossibleFixes#19074) (overlookmotel)📚 Documentation
RuleTesterconfig (docs(linter/plugins): correct and expand JSDoc comment forRuleTesterconfig #19156) (overlookmotel)import/max-dependenciesrule. (docs(linter): Improve docs forimport/max-dependenciesrule. #19119) (connorshea)jsx-a11y/no-redundant-rolesrule. (docs(linter): Rewrite the docs for thejsx-a11y/no-redundant-rolesrule. #19117) (connorshea)import/no-nodejs-modules. (docs(linter): Fix invalid directive in example code forimport/no-nodejs-modules. #19115) (connorshea)DiagnosticReport(docs(linter/plugins): improve JSDoc comment forDiagnosticReport#19103) (overlookmotel)config.generated.ts(docs(linter): regenerateconfig.generated.ts#18897) (overlookmotel)Oxfmt
💥 BREAKING CHANGES
customGroups.elementNamePattern(feat(formatter/sort_imports)!: Replace prefix match with glob pattern incustomGroups.elementNamePattern#19066) (leaysgur)🚀 Features
.gitignore(feat(oxfmt/lsp): Do not refer.gitignore#19206) (leaysgur)oxc_formatterin js-in-xxx part (feat(oxfmt): Useoxc_formatterin js-in-xxx part #18373) (leaysgur)🐛 Bug Fixes
isSingleJsxExpressionStatementInMarkdown()check for js-in-md (fix(oxfmt): HandleisSingleJsxExpressionStatementInMarkdown()check for js-in-md #19042) (leaysgur)babel-tsfor now (fix(oxfmt): Do not overridebabel-tsfor now #19030) (leaysgur)TemplateLiteralcontent (fix(formatter/detect_code_removal): Do not countTemplateLiteralcontent #18848) (leaysgur)⚡ Performance