Skip to content

feat(ci): add riscv64 and s390x napi targets for oxlint and oxfmt#19039

Merged
Boshen merged 1 commit intomainfrom
feat/add-napi-targets-oxlint-oxfmt
Feb 6, 2026
Merged

feat(ci): add riscv64 and s390x napi targets for oxlint and oxfmt#19039
Boshen merged 1 commit intomainfrom
feat/add-napi-targets-oxlint-oxfmt

Conversation

@Boshen
Copy link
Member

@Boshen Boshen commented Feb 6, 2026

Summary

  • Add missing napi targets for oxlint and oxfmt to match the napi packages (parser, transform, minify):
    • riscv64gc-unknown-linux-gnu
    • riscv64gc-unknown-linux-musl
    • s390x-unknown-linux-gnu
  • Add corresponding CI build matrix entries in release_apps.yml
  • Add Cross.toml pre-build commands to install cmake in Docker containers for riscv64 targets (required by mimalloc)
  • Install gcc-riscv64-linux-gnu for riscv64-musl zigbuild so cmake can find C/C++ compilers on the host

Copilot AI review requested due to automatic review settings February 6, 2026 08:38
@github-actions github-actions bot added the C-enhancement Category - New feature or request label Feb 6, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for additional RISC-V and s390x architectures to the oxlint and oxfmt napi packages, bringing them into parity with other napi packages (parser, transform, minify) that already support these platforms.

Changes:

  • Added three new target triples to oxlint and oxfmt package.json files: riscv64gc-unknown-linux-gnu, riscv64gc-unknown-linux-musl, and s390x-unknown-linux-gnu
  • Added corresponding CI build matrix entries in the release_apps.yml workflow for both oxlint and oxfmt jobs, including appropriate build commands and toolchain setup

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
npm/oxlint/package.json Added three new napi target triples (riscv64gc-unknown-linux-gnu, riscv64gc-unknown-linux-musl, s390x-unknown-linux-gnu) to support additional architectures
npm/oxfmt/package.json Added three new napi target triples (riscv64gc-unknown-linux-gnu, riscv64gc-unknown-linux-musl, s390x-unknown-linux-gnu) to support additional architectures
.github/workflows/release_apps.yml Added build matrix entries for the three new targets in both build-oxlint and build-oxfmt jobs with appropriate build configurations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Boshen Boshen requested a review from camc314 as a code owner February 6, 2026 10:31
@github-actions github-actions bot added A-linter Area - Linter A-cli Area - CLI A-formatter Area - Formatter labels Feb 6, 2026
@Boshen Boshen force-pushed the feat/add-napi-targets-oxlint-oxfmt branch from cfdda64 to 7988a42 Compare February 6, 2026 13:05
@Boshen Boshen merged commit 87a920d into main Feb 6, 2026
20 checks passed
@Boshen Boshen deleted the feat/add-napi-targets-oxlint-oxfmt branch February 6, 2026 13:08
camc314 added a commit that referenced this pull request Feb 10, 2026
# Oxlint
### 🚀 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)
- 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)
- 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)
- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt
(#19039) (Boshen)
- 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)
- 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)
- 6024ddf linter: Implement suggestion for
`unicorn/prefer-reflect-apply` (#18932) (Mikhail Baev)
- b06b3a9 linter: Implement `typescript/consistent-type-assertions`
(#18869) (Bazyli Brzóska)
- 9fd3bd6 linter/plugins: Add `@oxlint/plugins` NPM package (#18824)
(overlookmotel)
- 5ee7b2f linter/vitest: Implements `prefer-expect-type-of` rule
(#17957) (Said Atrahouch)
- a7b360a linter/unicorn: Implement `unicorn/relative-url-style` rule
(#18857) (Mikhail Baev)
- 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen)
- b23395a linter: Enforce exporting an object with `defineConfig`
(#18858) (camc314)

### 🐛 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)
- a5b8766 oxlint/lsp: Disable rule for this line should not be preferred
(#19083) (Sysix)
- e08157e linter/jsx-filename-extension: Include filename in as-needed
diagnostic (#19172) (camc314)
- 1773acb oxlint: Re-generate envs (#19169) (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)
- 2ad33cc oxlint/lsp: Search parent directories for root oxlint config
(#19062) (copilot-swe-agent)
- 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)
- 57917ee parser: Parse decorators on rest parameters (#18938) (Boshen)
- 07742ea linter/prefer-as-const: Implement fixer for type annotation
(#18899) (camc314)
- d64bfdd linter/plugins: Ensure `after` hook always runs last in rule
converted for ESLint (#18904) (overlookmotel)
- 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)
- 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)
- 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)
- 18f58bd oxlint/lsp: Transform unused disable directive directly to
DiagnosticReport (#19112) (Sysix)
- 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

- 6e8ef38 linter/plugins: Correct and expand JSDoc comment for
`RuleTester` config (#19156) (overlookmotel)
- 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)
- 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)
- b425a0c linter: Document jsPlugins examples (#18671) (Cameron)
- df2b7fa linter: Expand settings example with reference to custom
plugins (#18670) (camc314)
# Oxfmt
### 💥 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)
- 5243307 formatter: Preserve numeric separators in number literals
(#19015) (Dunqing)
- 9b205b3 formatter: Fallback to formatting when package.json sorting
fails (#19097) (Boshen)
- 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)
- f39c96c oxfmt: Do not override `babel-ts` for now (#19030) (leaysgur)
- 0ef11bb formatter: Add space before type annotation with leading
comment (#19012) (Dunqing)
- cc232e1 formatter: Keep spread with callback on same line (#18999)
(Dunqing)
- ef5bfab oxfmt: Workaround Node.js ThreadsafeFunction cleanup race
condition (#18980) (Boshen)
- 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)

### ⚡ Performance

- 467724f oxfmt: Collect glob paths in parallel (#19209) (leaysgur)
- 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (#18888)
(Boshen)

Co-authored-by: camc314 <[email protected]>
owjs3901 pushed a commit to owjs3901/oxc that referenced this pull request Feb 11, 2026
# Oxlint
### 🚀 Features

- aef2af5 linter/unicorn: Add fixer for `unicorn/relative-url-style`
rule (oxc-project#19186) (Mikhail Baev)
- 80eba6f linter/max-params: Support `countThis` option (oxc-project#19175)
(camc314)
- e19bc45 linter/no-new-func: Improve rule diagnostic with note and
actionable help message (oxc-project#19132) (Sean Gallen)
- e3dc5f6 linter/plugins: `RuleTester` test suggestions (oxc-project#19104)
(overlookmotel)
- 6054249 linter/plugins: Add `recursive` option to `RuleTester`
(oxc-project#19093) (overlookmotel)
- 27c241b linter/plugins: `RuleTester` test fixes (oxc-project#19091)
(overlookmotel)
- 7318275 linter/new-cap: Tighten diagnostic spans and add help text
(oxc-project#19131) (camchenry)
- ac2b16b linter: Improve `no-misleading-character-class` diagnostic
spans (oxc-project#19109) (Sysix)
- 7be8613 linter: Move `no-misleading-chracter-class` to `correctness`
(oxc-project#19006) (Sysix)
- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt
(oxc-project#19039) (Boshen)
- ee2925b oxlint/lsp: Enable JS plugins (oxc-project#18834) (overlookmotel)
- 533013d linter/unicorn: Implement suggestion for
`unicorn/prefer-dom-node-dataset` (oxc-project#19051) (Mikhail Baev)
- 384abae linter/oxc/no-async-endpoint-handlers: Improve diagnostic
message (oxc-project#19001) (camc314)
- d35ece3 linter/array-callback-return: Improve diagnostic hints for
some cases (oxc-project#18993) (camc314)
- dd0f754 linter/array-callback-return: Improve diagnostic message for
`forEach` case (oxc-project#18992) (camc314)
- e2d28fe linter/plugins: Implement suggestions (oxc-project#18963) (overlookmotel)
- a398152 linter: Promote the `eslint/no-iterator` rule to correctness,
which makes it a default rule (oxc-project#18915) (connorshea)
- bb1eb97 linter: Improve diagnostic message for circular configs
(oxc-project#18947) (camc314)
- 3184f36 linter: Ban relative js plugin specifiers in js extends config
(oxc-project#18944) (camc314)
- 749972f linter: Validate dynamic config extends shape (oxc-project#18943)
(camc314)
- b270739 linter: Support extends in oxlint.config.ts (oxc-project#18942) (camc314)
- 6024ddf linter: Implement suggestion for
`unicorn/prefer-reflect-apply` (oxc-project#18932) (Mikhail Baev)
- b06b3a9 linter: Implement `typescript/consistent-type-assertions`
(oxc-project#18869) (Bazyli Brzóska)
- 9fd3bd6 linter/plugins: Add `@oxlint/plugins` NPM package (oxc-project#18824)
(overlookmotel)
- 5ee7b2f linter/vitest: Implements `prefer-expect-type-of` rule
(oxc-project#17957) (Said Atrahouch)
- a7b360a linter/unicorn: Implement `unicorn/relative-url-style` rule
(oxc-project#18857) (Mikhail Baev)
- 9788a96 oxlint,oxfmt: Add more native builds (oxc-project#18853) (Boshen)
- b23395a linter: Enforce exporting an object with `defineConfig`
(oxc-project#18858) (camc314)

### 🐛 Bug Fixes

- 7800fc5 linter/prefer-event-target: Ignore EventEmitter imported from
packages (oxc-project#19188) (camc314)
- 03b2955 linter/typescript/ban-types: Mark rule as deprecated (oxc-project#19179)
(camc314)
- a5b8766 oxlint/lsp: Disable rule for this line should not be preferred
(oxc-project#19083) (Sysix)
- e08157e linter/jsx-filename-extension: Include filename in as-needed
diagnostic (oxc-project#19172) (camc314)
- 1773acb oxlint: Re-generate envs (oxc-project#19169) (camc314)
- 51c3fc8 linter/no-array-for-each: Skip `Effect.forEach` calls (oxc-project#19127)
(camc314)
- 825f148 linter/plugins: `RuleTester` consider adjacent fixes as
overlapping in ESLint compat mode (oxc-project#19094) (overlookmotel)
- ecd2456 linter/plugins: Handle fix with -1 offsets in file with BOM
(oxc-project#19092) (overlookmotel)
- 5969d26 linter/no-array-sort: Avoid false positives for effect
Chunk.sort (oxc-project#19125) (camc314)
- de10f04 linter: `no-misleading-character-class`: do not skip reporting
on first invalid sequence of the checking group (oxc-project#19111) (Sysix)
- 8c0ce78 linter: Scope no-misleading-character-class sequences to
single character class (oxc-project#19108) (copilot-swe-agent)
- 879e3a0 linter: `no-misleading-character-class`: split sequences on
all `CharacterSet` (oxc-project#19107) (Sysix)
- 2ad33cc oxlint/lsp: Search parent directories for root oxlint config
(oxc-project#19062) (copilot-swe-agent)
- f969d5e linter/prefer-dom-node-dataset: Address some edge cases in the
fixer (oxc-project#19065) (camc314)
- ed759d1 linter/plugins: Fix error messages for invalid suggestions
(oxc-project#19059) (overlookmotel)
- 34851a7 linter/plugins: Error not panic if invalid fix range (oxc-project#19058)
(overlookmotel)
- 4823b58 linter/plugins: Fix fixes in files with BOM (oxc-project#19056)
(overlookmotel)
- 2ef405e linter/no-map-spread: Improve actionability of error message
(oxc-project#19007) (Artyom Alekseevich)
- 56c086b parser: Add modifier ordering validation (TS1029) (oxc-project#19024)
(Boshen)
- 6067a49 linter/jsdoc: False positive in `check-tag-names` for `@` in
email addresses and npm scopes (oxc-project#19021) (Boshen)
- 6d46ed9 linter/capitalized-comments: Ignore prettier and oxfmt
directives (oxc-project#19008) (Artyom Alekseevich)
- a46c878 linter/react/no-array-index-key: Look for keys in expressions
(oxc-project#18997) (camc314)
- 7d61704 linter/prefer-at: Skip autofix for `arguments` (oxc-project#18991)
(camc314)
- 3ebae53 linter/preserve-caught-error: Skip traversing into nested
try/catch stmts (oxc-project#18990) (camc314)
- e94d37e linter/react/no-unknown-property: Add missing `popover`
related props (oxc-project#18953) (Christoph Nakazawa)
- 04b0d99 linter: Normalize relative paths with `./` prefix in
overrides. (oxc-project#18954) (connorshea)
- 57917ee parser: Parse decorators on rest parameters (oxc-project#18938) (Boshen)
- 07742ea linter/prefer-as-const: Implement fixer for type annotation
(oxc-project#18899) (camc314)
- d64bfdd linter/plugins: Ensure `after` hook always runs last in rule
converted for ESLint (oxc-project#18904) (overlookmotel)
- ec39944 linter/jsx-a11y/no-distracting-elements: Support elements
option (oxc-project#18892) (camc314)
- f609cb6 linter/prefer-expect-type-of: Handle computed elements in
fixer correctly (oxc-project#18890) (camc314)
- ecf11e5 linter/dynamic-config: Set `ExternalPlugin.config_dir` to fix
js plugins loading (oxc-project#18854) (camc314)
- 01b7838 linter/plugins: Do not destroy workspaces (oxc-project#18833)
(overlookmotel)
- dc51d6b linter: Normalize paths slashes for snapshots on windows
(oxc-project#18825) (camc314)
- dbfdc40 linter/bad-replace-all-args: Skip extracting flags from
conditional expressions (oxc-project#18844) (camc314)

### ⚡ Performance

- ed8c054 oxc_str: Add precomputed hash to Ident for fast HashMap
lookups (oxc-project#19143) (Boshen)
- 18f58bd oxlint/lsp: Transform unused disable directive directly to
DiagnosticReport (oxc-project#19112) (Sysix)
- 4ce3772 linter: Remove pointless string cloning when combining
suggestions (oxc-project#19075) (overlookmotel)
- c417bf5 linter: Avoid allocating `Vec` when compiling `PossibleFixes`
(oxc-project#19074) (overlookmotel)
- adb2baa linter/plugins: Avoid allocation when rule provides single
suggestion (oxc-project#19071) (overlookmotel)
- 2537924 semantic: Optimize scope resolution with fast paths and
inlining (oxc-project#19029) (Boshen)

### 📚 Documentation

- 6e8ef38 linter/plugins: Correct and expand JSDoc comment for
`RuleTester` config (oxc-project#19156) (overlookmotel)
- e7ec06a linter: Improve docs for `import/max-dependencies` rule.
(oxc-project#19119) (connorshea)
- 367f730 linter/consistent-test-filename: Escape file names fixes
oxc-project#19114 (oxc-project#19123) (camc314)
- 8753a54 linter: Rewrite the docs for the `jsx-a11y/no-redundant-roles`
rule. (oxc-project#19117) (connorshea)
- dd44b1a linter: Fix invalid directive in example code for
`import/no-nodejs-modules`. (oxc-project#19115) (connorshea)
- 726e273 linter/plugins: Improve JSDoc comment for `DiagnosticReport`
(oxc-project#19103) (overlookmotel)
- 9561e7f linter/plugins: Alter JS plugins example (oxc-project#18900)
(overlookmotel)
- 501e3b6 linter: Regenerate `config.generated.ts` (oxc-project#18897)
(overlookmotel)
- b425a0c linter: Document jsPlugins examples (oxc-project#18671) (Cameron)
- df2b7fa linter: Expand settings example with reference to custom
plugins (oxc-project#18670) (camc314)
# Oxfmt
### 💥 BREAKING CHANGES

- 856a01f formatter/sort_imports: [**BREAKING**] Replace prefix match
with glob pattern in `customGroups.elementNamePattern` (oxc-project#19066)
(leaysgur)

### 🚀 Features

- 91e67f3 oxfmt/lsp: Do not refer `.gitignore` (oxc-project#19206) (leaysgur)
- 23c0753 oxfmt: Better Tailwind CSS intergration (oxc-project#19000) (Dunqing)
- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt
(oxc-project#19039) (Boshen)
- 8536dce oxfmt: Support glob for CLI paths (oxc-project#18976) (leaysgur)
- 6ee2d59 oxfmt: Use `oxc_formatter` in js-in-xxx part (oxc-project#18373)
(leaysgur)
- 9788a96 oxlint,oxfmt: Add more native builds (oxc-project#18853) (Boshen)

### 🐛 Bug Fixes

- 119348b oxfmt: Resolve relative -> absolute path for other usages
(oxc-project#19207) (leaysgur)
- 5f4cf30 oxfmt: Fix relative -> absolute path resolution with
refactoring (oxc-project#19202) (leaysgur)
- dc335d1 oxfmt: Temporarily disable the override for js-in-xxx (not
ready yet) (oxc-project#19043) (leaysgur)
- 5ea5bda oxfmt: Handle `isSingleJsxExpressionStatementInMarkdown()`
check for js-in-md (oxc-project#19042) (leaysgur)
- 5243307 formatter: Preserve numeric separators in number literals
(oxc-project#19015) (Dunqing)
- 9b205b3 formatter: Fallback to formatting when package.json sorting
fails (oxc-project#19097) (Boshen)
- b79c065 formatter: Preserve comment between callee and optional
chaining operator (oxc-project#19020) (Dunqing)
- 01d1be1 formatter: Remove unnecessary parentheses for single-member
union types (oxc-project#19018) (Dunqing)
- f5c7e75 formatter: Preserve parentheses around await with private
field access (oxc-project#19014) (Dunqing)
- 5a75785 formatter: Preserve parentheses around nested sequence
expressions (oxc-project#19013) (Dunqing)
- f39c96c oxfmt: Do not override `babel-ts` for now (oxc-project#19030) (leaysgur)
- 0ef11bb formatter: Add space before type annotation with leading
comment (oxc-project#19012) (Dunqing)
- cc232e1 formatter: Keep spread with callback on same line (oxc-project#18999)
(Dunqing)
- ef5bfab oxfmt: Workaround Node.js ThreadsafeFunction cleanup race
condition (oxc-project#18980) (Boshen)
- d53f5c4 formatter: Require string first arg in test calls (oxc-project#18935)
(Dunqing)
- 57917ee parser: Parse decorators on rest parameters (oxc-project#18938) (Boshen)
- 2db8c05 formatter: Avoid breaking generic call assignments (oxc-project#18933)
(Dunqing)
- 1e023e1 formatter: Preserve trailing comma in mts/cts arrow generics
(oxc-project#18928) (Dunqing)
- 7c4e558 formatter/detect_code_removal: Do not count `TemplateLiteral`
content (oxc-project#18848) (leaysgur)

### ⚡ Performance

- 467724f oxfmt: Collect glob paths in parallel (oxc-project#19209) (leaysgur)
- 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (oxc-project#18888)
(Boshen)

Co-authored-by: camc314 <[email protected]>
OskarLebuda pushed a commit to OskarLebuda/oxc that referenced this pull request Feb 17, 2026
…c-project#19039)

## Summary

- Add missing napi targets for oxlint and oxfmt to match the napi
packages (parser, transform, minify):
  - `riscv64gc-unknown-linux-gnu`
  - `riscv64gc-unknown-linux-musl`
  - `s390x-unknown-linux-gnu`
- Add corresponding CI build matrix entries in `release_apps.yml`
- Add `Cross.toml` pre-build commands to install `cmake` in Docker
containers for riscv64 targets (required by `mimalloc`)
- Install `gcc-riscv64-linux-gnu` for riscv64-musl zigbuild so `cmake`
can find C/C++ compilers on the host
OskarLebuda pushed a commit to OskarLebuda/oxc that referenced this pull request Feb 17, 2026
# Oxlint
### 🚀 Features

- aef2af5 linter/unicorn: Add fixer for `unicorn/relative-url-style`
rule (oxc-project#19186) (Mikhail Baev)
- 80eba6f linter/max-params: Support `countThis` option (oxc-project#19175)
(camc314)
- e19bc45 linter/no-new-func: Improve rule diagnostic with note and
actionable help message (oxc-project#19132) (Sean Gallen)
- e3dc5f6 linter/plugins: `RuleTester` test suggestions (oxc-project#19104)
(overlookmotel)
- 6054249 linter/plugins: Add `recursive` option to `RuleTester`
(oxc-project#19093) (overlookmotel)
- 27c241b linter/plugins: `RuleTester` test fixes (oxc-project#19091)
(overlookmotel)
- 7318275 linter/new-cap: Tighten diagnostic spans and add help text
(oxc-project#19131) (camchenry)
- ac2b16b linter: Improve `no-misleading-character-class` diagnostic
spans (oxc-project#19109) (Sysix)
- 7be8613 linter: Move `no-misleading-chracter-class` to `correctness`
(oxc-project#19006) (Sysix)
- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt
(oxc-project#19039) (Boshen)
- ee2925b oxlint/lsp: Enable JS plugins (oxc-project#18834) (overlookmotel)
- 533013d linter/unicorn: Implement suggestion for
`unicorn/prefer-dom-node-dataset` (oxc-project#19051) (Mikhail Baev)
- 384abae linter/oxc/no-async-endpoint-handlers: Improve diagnostic
message (oxc-project#19001) (camc314)
- d35ece3 linter/array-callback-return: Improve diagnostic hints for
some cases (oxc-project#18993) (camc314)
- dd0f754 linter/array-callback-return: Improve diagnostic message for
`forEach` case (oxc-project#18992) (camc314)
- e2d28fe linter/plugins: Implement suggestions (oxc-project#18963) (overlookmotel)
- a398152 linter: Promote the `eslint/no-iterator` rule to correctness,
which makes it a default rule (oxc-project#18915) (connorshea)
- bb1eb97 linter: Improve diagnostic message for circular configs
(oxc-project#18947) (camc314)
- 3184f36 linter: Ban relative js plugin specifiers in js extends config
(oxc-project#18944) (camc314)
- 749972f linter: Validate dynamic config extends shape (oxc-project#18943)
(camc314)
- b270739 linter: Support extends in oxlint.config.ts (oxc-project#18942) (camc314)
- 6024ddf linter: Implement suggestion for
`unicorn/prefer-reflect-apply` (oxc-project#18932) (Mikhail Baev)
- b06b3a9 linter: Implement `typescript/consistent-type-assertions`
(oxc-project#18869) (Bazyli Brzóska)
- 9fd3bd6 linter/plugins: Add `@oxlint/plugins` NPM package (oxc-project#18824)
(overlookmotel)
- 5ee7b2f linter/vitest: Implements `prefer-expect-type-of` rule
(oxc-project#17957) (Said Atrahouch)
- a7b360a linter/unicorn: Implement `unicorn/relative-url-style` rule
(oxc-project#18857) (Mikhail Baev)
- 9788a96 oxlint,oxfmt: Add more native builds (oxc-project#18853) (Boshen)
- b23395a linter: Enforce exporting an object with `defineConfig`
(oxc-project#18858) (camc314)

### 🐛 Bug Fixes

- 7800fc5 linter/prefer-event-target: Ignore EventEmitter imported from
packages (oxc-project#19188) (camc314)
- 03b2955 linter/typescript/ban-types: Mark rule as deprecated (oxc-project#19179)
(camc314)
- a5b8766 oxlint/lsp: Disable rule for this line should not be preferred
(oxc-project#19083) (Sysix)
- e08157e linter/jsx-filename-extension: Include filename in as-needed
diagnostic (oxc-project#19172) (camc314)
- 1773acb oxlint: Re-generate envs (oxc-project#19169) (camc314)
- 51c3fc8 linter/no-array-for-each: Skip `Effect.forEach` calls (oxc-project#19127)
(camc314)
- 825f148 linter/plugins: `RuleTester` consider adjacent fixes as
overlapping in ESLint compat mode (oxc-project#19094) (overlookmotel)
- ecd2456 linter/plugins: Handle fix with -1 offsets in file with BOM
(oxc-project#19092) (overlookmotel)
- 5969d26 linter/no-array-sort: Avoid false positives for effect
Chunk.sort (oxc-project#19125) (camc314)
- de10f04 linter: `no-misleading-character-class`: do not skip reporting
on first invalid sequence of the checking group (oxc-project#19111) (Sysix)
- 8c0ce78 linter: Scope no-misleading-character-class sequences to
single character class (oxc-project#19108) (copilot-swe-agent)
- 879e3a0 linter: `no-misleading-character-class`: split sequences on
all `CharacterSet` (oxc-project#19107) (Sysix)
- 2ad33cc oxlint/lsp: Search parent directories for root oxlint config
(oxc-project#19062) (copilot-swe-agent)
- f969d5e linter/prefer-dom-node-dataset: Address some edge cases in the
fixer (oxc-project#19065) (camc314)
- ed759d1 linter/plugins: Fix error messages for invalid suggestions
(oxc-project#19059) (overlookmotel)
- 34851a7 linter/plugins: Error not panic if invalid fix range (oxc-project#19058)
(overlookmotel)
- 4823b58 linter/plugins: Fix fixes in files with BOM (oxc-project#19056)
(overlookmotel)
- 2ef405e linter/no-map-spread: Improve actionability of error message
(oxc-project#19007) (Artyom Alekseevich)
- 56c086b parser: Add modifier ordering validation (TS1029) (oxc-project#19024)
(Boshen)
- 6067a49 linter/jsdoc: False positive in `check-tag-names` for `@` in
email addresses and npm scopes (oxc-project#19021) (Boshen)
- 6d46ed9 linter/capitalized-comments: Ignore prettier and oxfmt
directives (oxc-project#19008) (Artyom Alekseevich)
- a46c878 linter/react/no-array-index-key: Look for keys in expressions
(oxc-project#18997) (camc314)
- 7d61704 linter/prefer-at: Skip autofix for `arguments` (oxc-project#18991)
(camc314)
- 3ebae53 linter/preserve-caught-error: Skip traversing into nested
try/catch stmts (oxc-project#18990) (camc314)
- e94d37e linter/react/no-unknown-property: Add missing `popover`
related props (oxc-project#18953) (Christoph Nakazawa)
- 04b0d99 linter: Normalize relative paths with `./` prefix in
overrides. (oxc-project#18954) (connorshea)
- 57917ee parser: Parse decorators on rest parameters (oxc-project#18938) (Boshen)
- 07742ea linter/prefer-as-const: Implement fixer for type annotation
(oxc-project#18899) (camc314)
- d64bfdd linter/plugins: Ensure `after` hook always runs last in rule
converted for ESLint (oxc-project#18904) (overlookmotel)
- ec39944 linter/jsx-a11y/no-distracting-elements: Support elements
option (oxc-project#18892) (camc314)
- f609cb6 linter/prefer-expect-type-of: Handle computed elements in
fixer correctly (oxc-project#18890) (camc314)
- ecf11e5 linter/dynamic-config: Set `ExternalPlugin.config_dir` to fix
js plugins loading (oxc-project#18854) (camc314)
- 01b7838 linter/plugins: Do not destroy workspaces (oxc-project#18833)
(overlookmotel)
- dc51d6b linter: Normalize paths slashes for snapshots on windows
(oxc-project#18825) (camc314)
- dbfdc40 linter/bad-replace-all-args: Skip extracting flags from
conditional expressions (oxc-project#18844) (camc314)

### ⚡ Performance

- ed8c054 oxc_str: Add precomputed hash to Ident for fast HashMap
lookups (oxc-project#19143) (Boshen)
- 18f58bd oxlint/lsp: Transform unused disable directive directly to
DiagnosticReport (oxc-project#19112) (Sysix)
- 4ce3772 linter: Remove pointless string cloning when combining
suggestions (oxc-project#19075) (overlookmotel)
- c417bf5 linter: Avoid allocating `Vec` when compiling `PossibleFixes`
(oxc-project#19074) (overlookmotel)
- adb2baa linter/plugins: Avoid allocation when rule provides single
suggestion (oxc-project#19071) (overlookmotel)
- 2537924 semantic: Optimize scope resolution with fast paths and
inlining (oxc-project#19029) (Boshen)

### 📚 Documentation

- 6e8ef38 linter/plugins: Correct and expand JSDoc comment for
`RuleTester` config (oxc-project#19156) (overlookmotel)
- e7ec06a linter: Improve docs for `import/max-dependencies` rule.
(oxc-project#19119) (connorshea)
- 367f730 linter/consistent-test-filename: Escape file names fixes
oxc-project#19114 (oxc-project#19123) (camc314)
- 8753a54 linter: Rewrite the docs for the `jsx-a11y/no-redundant-roles`
rule. (oxc-project#19117) (connorshea)
- dd44b1a linter: Fix invalid directive in example code for
`import/no-nodejs-modules`. (oxc-project#19115) (connorshea)
- 726e273 linter/plugins: Improve JSDoc comment for `DiagnosticReport`
(oxc-project#19103) (overlookmotel)
- 9561e7f linter/plugins: Alter JS plugins example (oxc-project#18900)
(overlookmotel)
- 501e3b6 linter: Regenerate `config.generated.ts` (oxc-project#18897)
(overlookmotel)
- b425a0c linter: Document jsPlugins examples (oxc-project#18671) (Cameron)
- df2b7fa linter: Expand settings example with reference to custom
plugins (oxc-project#18670) (camc314)
# Oxfmt
### 💥 BREAKING CHANGES

- 856a01f formatter/sort_imports: [**BREAKING**] Replace prefix match
with glob pattern in `customGroups.elementNamePattern` (oxc-project#19066)
(leaysgur)

### 🚀 Features

- 91e67f3 oxfmt/lsp: Do not refer `.gitignore` (oxc-project#19206) (leaysgur)
- 23c0753 oxfmt: Better Tailwind CSS intergration (oxc-project#19000) (Dunqing)
- 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt
(oxc-project#19039) (Boshen)
- 8536dce oxfmt: Support glob for CLI paths (oxc-project#18976) (leaysgur)
- 6ee2d59 oxfmt: Use `oxc_formatter` in js-in-xxx part (oxc-project#18373)
(leaysgur)
- 9788a96 oxlint,oxfmt: Add more native builds (oxc-project#18853) (Boshen)

### 🐛 Bug Fixes

- 119348b oxfmt: Resolve relative -> absolute path for other usages
(oxc-project#19207) (leaysgur)
- 5f4cf30 oxfmt: Fix relative -> absolute path resolution with
refactoring (oxc-project#19202) (leaysgur)
- dc335d1 oxfmt: Temporarily disable the override for js-in-xxx (not
ready yet) (oxc-project#19043) (leaysgur)
- 5ea5bda oxfmt: Handle `isSingleJsxExpressionStatementInMarkdown()`
check for js-in-md (oxc-project#19042) (leaysgur)
- 5243307 formatter: Preserve numeric separators in number literals
(oxc-project#19015) (Dunqing)
- 9b205b3 formatter: Fallback to formatting when package.json sorting
fails (oxc-project#19097) (Boshen)
- b79c065 formatter: Preserve comment between callee and optional
chaining operator (oxc-project#19020) (Dunqing)
- 01d1be1 formatter: Remove unnecessary parentheses for single-member
union types (oxc-project#19018) (Dunqing)
- f5c7e75 formatter: Preserve parentheses around await with private
field access (oxc-project#19014) (Dunqing)
- 5a75785 formatter: Preserve parentheses around nested sequence
expressions (oxc-project#19013) (Dunqing)
- f39c96c oxfmt: Do not override `babel-ts` for now (oxc-project#19030) (leaysgur)
- 0ef11bb formatter: Add space before type annotation with leading
comment (oxc-project#19012) (Dunqing)
- cc232e1 formatter: Keep spread with callback on same line (oxc-project#18999)
(Dunqing)
- ef5bfab oxfmt: Workaround Node.js ThreadsafeFunction cleanup race
condition (oxc-project#18980) (Boshen)
- d53f5c4 formatter: Require string first arg in test calls (oxc-project#18935)
(Dunqing)
- 57917ee parser: Parse decorators on rest parameters (oxc-project#18938) (Boshen)
- 2db8c05 formatter: Avoid breaking generic call assignments (oxc-project#18933)
(Dunqing)
- 1e023e1 formatter: Preserve trailing comma in mts/cts arrow generics
(oxc-project#18928) (Dunqing)
- 7c4e558 formatter/detect_code_removal: Do not count `TemplateLiteral`
content (oxc-project#18848) (leaysgur)

### ⚡ Performance

- 467724f oxfmt: Collect glob paths in parallel (oxc-project#19209) (leaysgur)
- 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (oxc-project#18888)
(Boshen)

Co-authored-by: camc314 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Area - CLI A-formatter Area - Formatter A-linter Area - Linter C-enhancement Category - New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments