Commit Graph

1055 Commits

Author SHA1 Message Date
Dunqing 75dd063560 feat(str): add JavaScript string primitives
JavaScript strings can contain lone surrogates that Rust str cannot
represent. Introduce arena-backed primitives with explicit encoding
invariants before migrating AST consumers.

Part of #26242.
2026-09-08 14:58:00 +08:00
camc314 5cd6da4464 perf(ci): skip Minification cache setup when checks are skipped (#26418)
Skip Namespace Rust cache setup when change detection skips the Minification Size check.
2026-09-07 17:32:28 +00:00
camc314 81fd4825a1 perf(ci): skip Allocations cache setup when checks are skipped (#26410)
Skip Namespace Rust cache setup when change detection skips the Allocations check.
2026-09-07 16:10:09 +00:00
camc314 3d0de4e2a1 perf(ci): skip Miri cache setup when checks are skipped (#26401)
Skip Namespace Rust cache setup when change detection skips the Miri checks, avoiding unnecessary cache initialization.
2026-09-07 14:54:56 +00:00
camc314 2ef8e266e1 fix(ci): install Windows dependencies after copying to Dev Drive (#26388)
Windows CI first failed in 1bb1c8c9e9 (#26381), which upgraded pnpm to v12. The [preceding Windows job passed](https://github.com/oxc-project/oxc/actions/runs/34096054585/job/101659861287); the [first failing job](https://github.com/oxc-project/oxc/actions/runs/34098876784/job/101668505666) could not load `E:\oxc\node_modules\oxlint-tsgolint\bin\tsgolint.js`.

pnpm 12 creates Windows directory symlinks, but the Dev Drive action's `fs-extra` copy recreates links without preserving their directory type. Copy the workspace before installing dependencies, then install directly in the Dev Drive workspace for all four Windows jobs.
2026-09-07 11:20:34 +00:00
renovate[bot] 9688d38dfa chore(deps): update github actions (#26364)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[benc-uk/workflow-dispatch](https://redirect.github.com/benc-uk/workflow-dispatch)
| action | patch | `v1.3.2` → `v1.3.3` | |
| [mlugg/setup-zig](https://redirect.github.com/mlugg/setup-zig) |
action | minor | `v2` → `v2.2.1` | |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.175.0` → `1.176.0` | `1.176.1` |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.87.0` → `v2.87.4` | `v2.87.6` (+1) |

---

### Release Notes

<details>
<summary>benc-uk/workflow-dispatch (benc-uk/workflow-dispatch)</summary>

###
[`v1.3.3`](https://redirect.github.com/benc-uk/workflow-dispatch/releases/tag/v1.3.3)

[Compare
Source](https://redirect.github.com/benc-uk/workflow-dispatch/compare/v1.3.2...v1.3.3)

##### What's changed since v1.3.2

##### Fixed

- Continue polling while a dispatched workflow run is in the `pending`
state, preventing premature completion warnings and a `null` conclusion
for workflows using concurrency groups or waiting for a runner.
([#&#8203;97](https://redirect.github.com/benc-uk/workflow-dispatch/issues/97),
fixes
[#&#8203;106](https://redirect.github.com/benc-uk/workflow-dispatch/issues/106))

##### Notes

- No breaking changes.
- The floating `v1` and `v1.3` tags have been moved to point at
`v1.3.3`.

**Full changelog**:
<https://github.com/benc-uk/workflow-dispatch/compare/v1.3.2...v1.3.3>

</details>

<details>
<summary>mlugg/setup-zig (mlugg/setup-zig)</summary>

###
[`v2.2.1`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.2.1)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.2.0...v2.2.1)

- Print which version of Zig was installed
- Add a little more log output (helps debug cache issues)

> \[!NOTE]
> The setup-zig project is now hosted on
[Codeberg](https://codeberg.org/mlugg/setup-zig), and this GitHub
repository exists as a mirror solely to work around the vendor lock-in
mechanisms employed by GitHub Actions. While there are **no plans** to
discontinue GitHub Actions support, I would nonetheless encourage users
to consider upgrading to Forgejo Actions on a non-profit forge like
Codeberg to avoid being affected by GitHub's profit-driven behavior
(such as attempting to [charge users by the minute for using their own
hardware](https://resources.github.com/actions/2026-pricing-changes-for-github-actions/)).

###
[`v2.2.0`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.2.0)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.1.0...v2.2.0)

- Update dependencies
- Replace libsodium dependency with node:crypto, improving target
support
- Use hardcoded mirror list when ziglang.org is inaccessible
- Fix incorrect tarball names when fetching certain versions

> \[!NOTE]
> The setup-zig project is now hosted on
[Codeberg](https://codeberg.org/mlugg/setup-zig), and this GitHub
repository exists as a mirror solely to work around the vendor lock-in
mechanisms employed by GitHub Actions. While there are **no plans** to
discontinue GitHub Actions support, I would nonetheless encourage users
to consider upgrading to Forgejo Actions on a non-profit forge like
Codeberg to avoid being affected by GitHub's profit-driven behavior
(such as attempting to [charge users by the minute for using their own
hardware](https://resources.github.com/actions/2026-pricing-changes-for-github-actions/)).

###
[`v2.1.0`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.1.0)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.5...v2.1.0)

- Support Forgejo Actions
- Support recent Zig versions on ARM
- Progress towards better OS support
- Redirect Zig caches to working directory to avoid sharing the cache on
self-hosted runners

###
[`v2.0.5`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.5)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.4...v2.0.5)

- Fix exception identifying Zig cache directory on recent Zig builds
([#&#8203;49](https://redirect.github.com/mlugg/setup-zig/issues/49))

###
[`v2.0.4`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.4)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.3...v2.0.4)

- Fix canonical `ziglang.org` download URL
- Use more descriptive `?source` query parameter value

###
[`v2.0.3`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.3)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.2...v2.0.3)

This release switches from a hardcoded `mirrors.json` list, to fetching
the list of mirrors [now
available](https://ziglang.org/download/community-mirrors/) from the Zig
website. There are no user-facing changes.

###
[`v2.0.2`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.2)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2.0.1...v2.0.2)

- Update dependencies
- Remove some mirrors experiencing issues
- Don't use tool cache on GitHub-hosted runners by default
([#&#8203;34](https://redirect.github.com/mlugg/setup-zig/issues/34))
- Improve logging, in particular to help debug potential issues

###
[`v2.0.1`](https://redirect.github.com/mlugg/setup-zig/releases/tag/v2.0.1)

[Compare
Source](https://redirect.github.com/mlugg/setup-zig/compare/v2...v2.0.1)

The recent Zig 0.14.1 release flipped the "arch" and "OS" fields in the
tarball name; for instance, `zig-x86_64-linux-0.14.1.tar.xz` instead of
`zig-linux-x86_64-0.14.1.tar.xz`. This brings the tarball names in line
with target triple syntax.

The change does *not* retroactively apply to old Zig tarballs.

So, this patch has only one fix:

- Add support for new Zig tarball name format as of Zig 0.14.1 /
0.15.0-dev.631+9a3540d61

> \[!NOTE]
>
> **I do not intend to update v1 to support the new tarball name
format.**
> `setup-zig` version 1 is considered deprecated. Please upgrade to
version 2.

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.87.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.4):
2.87.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.3...v2.87.4)

- Update `uv@latest` to 0.12.8.

- Update `protoc@latest` to 3.36.1.

- Update `coreutils@latest` to 0.11.0.

###
[`v2.87.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.3):
2.87.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.2...v2.87.3)

- Update `zizmor@latest` to 1.30.0.

- Update `ubi@latest` to 0.12.0.

- Update `protoc-gen-connect-openapi@latest` to 0.25.8.

- Update `mise@latest` to 2026.8.16.

- Update `kingfisher@latest` to 2.1.0.

- Update `dprint@latest` to 0.57.0.

###
[`v2.87.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.2):
2.87.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.1...v2.87.2)

- Update `typos@latest` to 1.50.0.

- Update `tombi@latest` to 1.5.0.

- Update `shfmt@latest` to 3.14.0.

###
[`v2.87.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.1):
2.87.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.87.0...v2.87.1)

- Update `uv@latest` to 0.12.7.

- Update `typos@latest` to 1.49.1.

- Update `syft@latest` to 1.51.1.

- Update `prek@latest` to 0.5.0.

- Update `d2@latest` to 0.8.2.

- Update `cargo-zigbuild@latest` to 0.23.3.

- Update `cargo-rdme@latest` to 2.2.2.

- Update `biome@latest` to 2.5.11.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42MS4zIiwidXBkYXRlZEluVmVyIjoiNDQuNjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-06 17:24:53 +00:00
renovate[bot] 04b8957242 chore(deps): update crate-ci/typos action to v1.50.1 (#26340)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| patch | `v1.50.0` → `v1.50.1` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

###
[`v1.50.1`](https://redirect.github.com/crate-ci/typos/releases/tag/v1.50.1)

[Compare
Source](https://redirect.github.com/crate-ci/typos/compare/v1.50.0...v1.50.1)

#### \[1.50.1] - 2026-09-01

##### Fixes

- Don't correct `asend` in Python code

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42MS4zIiwidXBkYXRlZEluVmVyIjoiNDQuNjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-04 18:00:40 +00:00
camc314 6f22859717 chore(deps): update setup-node to v1.4.1 (#26296)
## Summary

- update `oxc-project/setup-node` from v1.4.0 to v1.4.1 across all workflows
- pick up `pnpm/action-setup` v6.0.10, whose newer bootstrap fixes broken `@pnpm/exe` shims during package-manager self-updates

The setup action fix was released after oxc-project/setup-node#34.
2026-09-04 10:20:51 +00:00
overlookmotel b4f6593c4f ci(lexer): run lint, tests and conformance on both lexer implementations (#26298)
#26263 added the ability to run tests and conformance for both versions of `oxc_lexer` (SIMD and scalar fallback) on any platform.

Run tests and conformance on CI (both SIMD and scalar) on any PR which touches `oxc_lexer` crate or other files which affect conformance runner.

Additionally, run Clippy on the SIMD version (main Lint CI task doesn't lint it, due to the `target_feature = "avx2"` gate on the code).

All of this sets up `oxc_lexer` crate for further development, catching any regressions in CI.
2026-09-03 16:40:21 +00:00
camc314 70ab1d3ca4 ci(release): cross-compile FreeBSD builds with Zig (#26224)
## Summary

- cross-compile FreeBSD N-API modules and standalone binaries on Ubuntu with Zig
- apply the same build path to the reusable N-API release workflow and the Oxlint and Oxfmt release jobs
- preserve the existing x86_64-unknown-freebsd artifact names and publishing dependencies
2026-09-01 14:43:46 +00:00
renovate[bot] d3669fa41a chore(deps): update crate-ci/typos action to v1.50.0 (#26205)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| minor | `v1.49.1` → `v1.50.0` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

###
[`v1.50.0`](https://redirect.github.com/crate-ci/typos/releases/tag/v1.50.0)

[Compare
Source](https://redirect.github.com/crate-ci/typos/compare/v1.49.1...v1.50.0)

#### \[1.50.0] - 2026-08-28

##### Features

- Updated the dictionary with the [August
2026](https://redirect.github.com/crate-ci/typos/issues/1587) changes

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-31 19:10:16 +00:00
renovate[bot] c6ffd7f046 chore(deps): update crate-ci/typos action to v1.49.1 (#26184)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| patch | `v1.49.0` → `v1.49.1` | `v1.50.0` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

###
[`v1.49.1`](https://redirect.github.com/crate-ci/typos/releases/tag/v1.49.1)

[Compare
Source](https://redirect.github.com/crate-ci/typos/compare/v1.49.0...v1.49.1)

#### \[1.49.1] - 2026-08-27

##### Fixes

- Don't correct the brand name `HashiCorp`

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-30 19:59:07 +00:00
renovate[bot] a58595c5f5 chore(deps): update github actions (#26177)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | minor | `v5.0.3` → `v5.2.1` | |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.174.0` → `1.175.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.86.4` → `v2.87.0` | `v2.87.2` (+1) |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the warning logs for
more information.

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v5.2.1`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.2.1)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.2.0...v5.2.1)

Bumps the CodSpeed runner to
[v5.2.1](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.2.1).

##### 🚀 Features

- Add a `simulation-track-subprocess` input, which enables measuring the
subprocesses spawned by the benchmarked process in `simulation` mode by
[@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;235](https://redirect.github.com/CodSpeedHQ/action/pull/235)
- Bump the go-runner to
[v1.3.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.3.0),
adding Go 1.26 and 1.27 support by
[@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;516](https://redirect.github.com/CodSpeedHQ/codspeed/pull/516)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- feat: add simulation-track-subprocess input by
[@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;235](https://redirect.github.com/CodSpeedHQ/action/pull/235)
- chore: bump runner version to 5.2.1 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;236](https://redirect.github.com/CodSpeedHQ/action/pull/236)

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v5.2.0...v5.2.1>

###
[`v5.2.0`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.2.0)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.0.3...v5.2.0)

Bumps the CodSpeed runner to
[v5.2.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.2.0),
including
[v5.1.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.1.0).

##### 🚀 Features

- Add a `--simulation-track-subprocess` flag that enables tracking
benchmark subprocesses, along with per-thread dumps by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;493](https://redirect.github.com/CodSpeedHQ/codspeed/pull/493)
and
[#&#8203;513](https://redirect.github.com/CodSpeedHQ/codspeed/pull/513)
- Collect RSS via rss\_stat and folio-rmap reconstruction by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;453](https://redirect.github.com/CodSpeedHQ/codspeed/pull/453)
- Support CircleCI for GitHub repositories by
[@&#8203;fargito](https://redirect.github.com/fargito) in
[#&#8203;482](https://redirect.github.com/CodSpeedHQ/codspeed/pull/482)

##### 🐛 Bug Fixes

- Fix cache behavior that was causing an apt reinstall of the libc debug
symbols despite cache restore by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;509](https://redirect.github.com/CodSpeedHQ/codspeed/pull/509)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed7](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed7)
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;515](https://redirect.github.com/CodSpeedHQ/codspeed/pull/515)
- fix(callgrind): represent os threads under `--separate-threads=yes` by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[CodSpeedHQ/valgrind-codspeed#24](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/24)
- feat(callgrind): track subprocesses across fork and exec by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[CodSpeedHQ/valgrind-codspeed#25](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/25)
- Stop skipping the rustup wrapper for valgrind by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;493](https://redirect.github.com/CodSpeedHQ/codspeed/pull/493)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- fix: add the distribution to the instruments cache key by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&#8203;233](https://redirect.github.com/CodSpeedHQ/action/pull/233)
- chore: bump runner version to 5.1.0 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;232](https://redirect.github.com/CodSpeedHQ/action/pull/232)
- chore: bump runner version to 5.2.0 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;234](https://redirect.github.com/CodSpeedHQ/action/pull/234)

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v5.0.3...v5.2.0>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.87.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.87.0):
2.87.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.8...v2.87.0)

- Support `kache`.
([#&#8203;1980](https://redirect.github.com/taiki-e/install-action/pull/1980),
thanks [@&#8203;ChrisJr404](https://redirect.github.com/ChrisJr404))

- Update `vacuum@latest` to 0.30.1.

- Update `uv@latest` to 0.12.6.

- Update `mise@latest` to 2026.8.14.

- Update `editorconfig-checker@latest` to 3.11.2.

###
[`v2.86.8`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.8):
2.86.8

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.7...v2.86.8)

- Update `wasmtime@latest` to 48.0.1.

- Update `wasm-tools@latest` to 1.258.0.

- Update `oxfmt@latest` to 1.80.0.

- Update `mise@latest` to 2026.8.12.

- Update `kingfisher@latest` to 2.0.0.

- Update `cargo-zigbuild@latest` to 0.23.2.

###
[`v2.86.7`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.7):
2.86.7

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.6...v2.86.7)

- Update `tombi@latest` to 1.4.1.

- Update `rafn@latest` to 0.1.5.

- Update `cargo-binstall@latest` to 1.22.0.

###
[`v2.86.6`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.6):
2.86.6

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.5...v2.86.6)

- Update `dprint@latest` to 0.56.1.

- Update `cargo-lambda@latest` to 1.9.2.

- Update `biome@latest` to 2.5.10.

###
[`v2.86.5`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.5):
2.86.5

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.4...v2.86.5)

- Update `zola@latest` to 0.23.4.

- Update `wasm-tools@latest` to 1.257.1.

- Update `protoc@latest` to 3.36.0.

- Update `mise@latest` to 2026.8.10.

- Update `cargo-dinghy@latest` to 0.8.6.

- Update `wasmtime@latest` to 48.0.0.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNDkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-30 18:51:15 +00:00
renovate[bot] c770728b27 chore(deps): update github actions (#26023)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.173.0` → `1.174.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.85.13` → `v2.86.4` | `v2.86.6` (+1) |

---

### Release Notes

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.86.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.4):
2.86.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.3...v2.86.4)

- Update `oxfmt@latest` to 1.79.0.

- Update `mise@latest` to 2026.8.8.

- Update `martin@latest` to 1.14.0.

- Update `dprint@latest` to 0.56.0.

- Update `cargo-about@latest` to 0.9.2.

- Update `biome@latest` to 2.5.9.

###
[`v2.86.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.3):
2.86.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.2...v2.86.3)

- Update `prek@latest` to 0.4.14.

- Update `osv-scanner@latest` to 2.5.1.

- Update `cargo-llvm-cov@latest` to 0.9.0.

###
[`v2.86.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.2):
2.86.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.1...v2.86.2)

- Update `uv@latest` to 0.12.5.

- Update `mise@latest` to 2026.8.6.

- Update `cargo-tarpaulin@latest` to 0.37.2.

###
[`v2.86.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.1):
2.86.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.86.0...v2.86.1)

- Fix an issue where `oxfmt` was accidentally installed as
`oxfmt-{target}{exe}`.
([#&#8203;1969](https://redirect.github.com/taiki-e/install-action/pull/1969))

###
[`v2.86.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.86.0):
2.86.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.14...v2.86.0)

- Support `oxfmt`.
([#&#8203;1967](https://redirect.github.com/taiki-e/install-action/pull/1967),
thanks [@&#8203;rami3l](https://redirect.github.com/rami3l))

###
[`v2.85.14`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.14):
2.85.14

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.13...v2.85.14)

- Update `uv@latest` to 0.12.4.

- Update `trivy@latest` to 0.74.0.

- Update `tombi@latest` to 1.4.0.

- Update `mdbook-mermaid@latest` to 0.17.1.

- Update `cargo-xwin@latest` to 0.23.1.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zOS4wIiwidXBkYXRlZEluVmVyIjoiNDQuMzkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-23 16:50:16 +00:00
renovate[bot] b79db0c08f chore(deps): update github actions (#25752)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.0.2` → `v5.0.3` | |
|
[cross-platform-actions/action](https://redirect.github.com/cross-platform-actions/action)
| action | minor | `v1.3.0` → `v1.4.0` | |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.172.0` → `1.173.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.85.9` → `v2.85.13` | `v2.86.1` (+2) |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v5.0.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.0.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.0.2...v5.0.3)

Bumps the CodSpeed runner to
[v5.0.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.0.2).

##### 🐛 Bug Fixes

- Retry complete pinned binary downloads by
[@&#8203;art049](https://redirect.github.com/art049) in
[#&#8203;499](https://redirect.github.com/CodSpeedHQ/codspeed/pull/499)
- Accept `--exclude-allocations` and `--cycle-estimation` without a
value by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.0.2 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;230](https://redirect.github.com/CodSpeedHQ/action/pull/230)

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v5.0.2...v5.0.3>

</details>

<details>
<summary>cross-platform-actions/action
(cross-platform-actions/action)</summary>

###
[`v1.4.0`](https://redirect.github.com/cross-platform-actions/action/releases/tag/v1.4.0):
Cross Platform Action 1.4.0

[Compare
Source](https://redirect.github.com/cross-platform-actions/action/compare/v1.3.0...v1.4.0)

##### Added

- Add support for FreeBSD on RISC-V 64 (`riscv64`)
([#&#8203;36](https://redirect.github.com/cross-platform-actions/action/issues/36))
- Add support for NetBSD on VAX, running on the SIMH simulator
- Add support for NetBSD 11.0
([#&#8203;154](https://redirect.github.com/cross-platform-actions/action/issues/154))

##### Changed

- OpenBSD on ARM64 now boots with the same EDK II UEFI firmware
(`uefi.fd`) as
every other ARM64 guest, instead of a separate Linaro UEFI build. The
QEMU
machine type for OpenBSD on ARM64 is now `virt,acpi=off`, which makes
the
kernel fall back to the device tree instead of hanging during ACPI
attach.
This removes the dependency on the Linaro release server, which no
longer
  exists

##### Fixed

- Don't log the `Tearing down VM` group when `shutdown_vm` is `false`,
since
  the VM is not being torn down in that case

([#&#8203;109](https://redirect.github.com/cross-platform-actions/action/issues/109))
- The "Start VM" step could keep running for hours when the VM failed to
boot

([#&#8203;158](https://redirect.github.com/cross-platform-actions/action/issues/158)).
Waiting for the VM to become ready is now bounded by an actual wall
clock
timeout, instead of by a number of connection attempts, and a single SSH
  connection attempt is bounded by `ConnectTimeout`.
- The post job step now reports when the console log of the VM is
missing or
  empty, instead of silently printing nothing

([#&#8203;158](https://redirect.github.com/cross-platform-actions/action/issues/158))
- A reboot of a guest that dies instead of rebooting now fails after
roughly
20 seconds, instead of after 13 minutes. The SSH session that issues the
reboot is bounded by `ServerAliveInterval`, so it no longer blocks for
the
full TCP retransmission time, and waiting for the VM to come back up is
given up on as soon as the guest announces a kernel panic on its serial
  console
- Advanced Matrix Extensions (AMX) is no longer exposed to the guests on
x86-64, so which runner a job happens to get no longer decides whether
the
  VM boots

([#&#8203;158](https://redirect.github.com/cross-platform-actions/action/issues/158)).
Kernels released before AMX existed fault as soon as userland starts,
which
affected NetBSD 9.4 and 10.1 and FreeBSD 12.4 on the runners that have
it

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.85.13`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.13):
2.85.13

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.12...v2.85.13)

- Update `tombi@latest` to 1.3.3.

- Update `mise@latest` to 2026.8.5.

- Update `kingfisher@latest` to 1.113.0.

- Update `cargo-shear@latest` to 1.13.4.

- Update `bpf-linker@latest` to 0.11.0.

###
[`v2.85.12`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.12):
2.85.12

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.11...v2.85.12)

- Update `zola@latest` to 0.23.3.

- Update `wasm-tools@latest` to 1.256.0.

- Update `tombi@latest` to 1.2.10.

- Update `syft@latest` to 1.51.0.

- Update `prek@latest` to 0.4.13.

- Update `mise@latest` to 2026.8.4.

- Update `editorconfig-checker@latest` to 3.11.1.

- Update `cargo-tarpaulin@latest` to 0.37.1.

- Update `cargo-rdme@latest` to 2.2.1.

- Update `biome@latest` to 2.5.8.

###
[`v2.85.11`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.11):
2.85.11

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.10...v2.85.11)

- Update `zola@latest` to 0.23.2.

- Update `wasm-bindgen@latest` to 0.2.127.

- Update `uv@latest` to 0.12.3.

- Update `osv-scanner@latest` to 2.5.0.

- Update `mise@latest` to 2026.8.3.

- Update `kingfisher@latest` to 1.112.0.

- Update `editorconfig-checker@latest` to 3.10.0.

###
[`v2.85.10`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.10):
2.85.10

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.9...v2.85.10)

- Update `uv@latest` to 0.12.2.

- Update `tombi@latest` to 1.2.7.

- Update `cosign@latest` to 3.1.3.

- Update `coreutils@latest` to 0.10.0.

- Update `cargo-rdme@latest` to 2.2.0.

- Update `cargo-crap@latest` to 0.4.3.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-16 17:08:56 +00:00
Boshen 12629e43c0 ci(miri): allow host clock access (#25701)
Allows Miri's transformer checks to access the host clock required by `oxc-browserslist` while preserving strict provenance checks.

This fixes the `baseline_targets` failure caused by isolated `clock_gettime`. The failing target passes with the pinned Miri toolchain.
2026-08-15 05:07:25 +00:00
Boshen 1c4f519e36 feat(napi): add Relay transform plugin (#25503)
## What

Ports the Relay `graphql` tagged template transform (babel-plugin-relay / swc_relay) as an individual napi transform, per #24914:

- **`crates/oxc_relay`** — the core transform as its own crate (modeled on `oxc_react_compiler`): replaces `graphql` tagged templates with references to relay-compiler artifacts. Definition names are extracted textually like `swc_relay` (equivalent to `\b(fragment|mutation|query|subscription)\s+(\w+)` with `#` comments stripped; hand-rolled scanner, no regex dependency).
- **`napi/transform-relay`** (`oxc-transform-relay`) — standalone napi package copied from the `napi/transform-react` template: parse → semantic → relay traverse → codegen. Only `graphql` tags are rewritten; TypeScript/JSX syntax is preserved untouched, so the output composes with any downstream toolchain.

## Options

| option | default | behavior |
|---|---|---|
| `artifactDirectory` | unset | when set, the import path is computed lexically relative to the transformed file (babel-plugin-relay `getRelativeImportPath` semantics — swc emits absolute paths instead); unset → `./__generated__/` next to the file |
| `language` | `javascript` | `typescript` imports `Name.graphql.ts`, otherwise `Name.graphql.js` |
| `eagerEsModules` | `true` | hoisted default imports (babel-plugin-relay ≥ v17 parity); `false` emits inline `require()` (`@swc/plugin-relay` / Next.js behavior) |

A `graphql` tag with no extractable definition name produces an error diagnostic (babel throws; swc silently skips).

Not supported, documented in both READMEs: dev-mode artifact hash validation, `jsModuleFormat: "haste"`, `isDevVariableName`, swc's Next.js-specific `projects`/`pagesDir`, and GraphQL document validation.

closes #24914

---

Implemented with Claude Code.
2026-08-13 13:56:01 +00:00
camc314 dd3e4160a2 feat(ci): add oxc-codegen npm package publishing (#25546) 2026-08-12 14:06:52 +00:00
overlookmotel a4478e960a feat(codegen): add oxc-codegen package (#25488)
Add `oxc-codegen` package - a printer written in TS.

### Features

- Prints JS, JSX, TS, TSX.
- Matches `oxc_codegen` exactly on all Test262, TypeScript, Acorn-JSX fixtures.
- Very fast.

### Deficiencies

- Pretty-printing only (no compact/minified output).
- No support for printing comments.
- Source map support is semi-there, but largely untested, and poor API (design doc has some ideas on how to improve it).

### This PR adds

- The printer code.
- Conformance testing infra.
- Further tests for edge cases.
- README.
- Design doc - how it differs from `oxc_codegen` and why, what produces the perf.

### This PR doesn't add

- Not integrated into CI or release pipeline.

### Notes

This started as a slop port of `oxc_codegen`. I've iterated on that base, cleaned it up a lot, and at least skimmed through all of it. I think it's in fairly decent shape.

The design doc is I think worth a read. It explains the rationale for the choices, in particular the "1 codebase, 4 builds" approach.

I've put it in a new top-level directory called `packages`. It's not an app, so didn't seem to me to fit alongside `apps/oxlint` and `apps/oxfmt`. It's pure JS, so not like e.g. `napi/parser`. And it felt too heavyweight to put into `npm` dir. But maybe there's a better place for it.

Co-authored-by: Cameron <cameron.clark@hey.com>
2026-08-12 13:41:31 +00:00
leaysgur 0fa91283fd refactor(formatter,formatter_tests): move out prettier JS,TS,JSDoc conformance from tasks/ (#25477)
Migration from tasks/prettier_conformance to each crate test using oxc_formatter_tests, for JS/TS and JSDoc.
2026-08-12 00:48:32 +00:00
leaysgur 72c00f32ea refactor(formatter_yaml,formatter_tests): move out prettier YAML conformance from tasks/ (#25469)
Migration from `tasks/prettier_conformance` to each crate test using `oxc_formatter_tests`, for YAML.
2026-08-12 00:48:31 +00:00
leaysgur 6ef3984410 refactor(ci): self-provision prettier suite in oxc_formatter_tests (#25467)
Remove the Prettier related stuff from the conformance, which is purely aimed at JS/TS.

Instead, `oxc_formatter_tests` manage Prettier's test fixtures along with Oxfmt.
2026-08-12 00:40:59 +00:00
renovate[bot] f412c9aba2 chore(deps): update github actions (#25447)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.0.1` → `v5.0.2` | `v5.0.3` |
| [Swatinem/rust-cache](https://redirect.github.com/Swatinem/rust-cache)
| action | patch | `v2.9.1` → `v2.9.2` | |
| [dorny/paths-filter](https://redirect.github.com/dorny/paths-filter) |
action | patch | `v4.0.2` → `v4.0.3` | |
|
[oxc-project/setup-node](https://redirect.github.com/oxc-project/setup-node)
| action | minor | `v1.3.2` → `v1.4.0` | |
|
[samypr100/setup-dev-drive](https://redirect.github.com/samypr100/setup-dev-drive)
| action | minor | `v4.0.0` → `v4.1.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.85.5` → `v2.85.9` | `v2.85.11` (+1) |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v5.0.2`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.0.2)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.0.1...v5.0.2)

#### What's Changed

- feat: add cycle-estimation and exclude-allocations inputs by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;229](https://redirect.github.com/CodSpeedHQ/action/pull/229)

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v5.0.1...v5.0.2>

</details>

<details>
<summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary>

###
[`v2.9.2`](https://redirect.github.com/Swatinem/rust-cache/releases/tag/v2.9.2)

[Compare
Source](https://redirect.github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2)

##### What's Changed

- Typofix by [@&#8203;23Skidoo](https://redirect.github.com/23Skidoo) in
[#&#8203;316](https://redirect.github.com/Swatinem/rust-cache/pull/316)
- fix: include target names in build/ and .fingerprint/ cleanup by
[@&#8203;eitsupi](https://redirect.github.com/eitsupi) in
[#&#8203;317](https://redirect.github.com/Swatinem/rust-cache/pull/317)
- fix: include cdylib/rlib/dylib/staticlib targets in build and
fingerprint cleanup by
[@&#8203;eitsupi](https://redirect.github.com/eitsupi) in
[#&#8203;320](https://redirect.github.com/Swatinem/rust-cache/pull/320)
- Scan content of `$CARGO_HOME/bin` on restore instead of relying on
`cargo install` metadata by
[@&#8203;clechasseur](https://redirect.github.com/clechasseur) in
[#&#8203;325](https://redirect.github.com/Swatinem/rust-cache/pull/325)
- docs: Update checkout action version to latest by
[@&#8203;sondrelg](https://redirect.github.com/sondrelg) in
[#&#8203;345](https://redirect.github.com/Swatinem/rust-cache/pull/345)
- Fix Windows cache path validation after Rollup migration by
[@&#8203;eitsupi](https://redirect.github.com/eitsupi) in
[#&#8203;355](https://redirect.github.com/Swatinem/rust-cache/pull/355)
- fix: support Cargo V2 build dir layout by
[@&#8203;claytonwramsey](https://redirect.github.com/claytonwramsey) in
[#&#8203;371](https://redirect.github.com/Swatinem/rust-cache/pull/371)

##### New Contributors

- [@&#8203;23Skidoo](https://redirect.github.com/23Skidoo) made their
first contribution in
[#&#8203;316](https://redirect.github.com/Swatinem/rust-cache/pull/316)
- [@&#8203;eitsupi](https://redirect.github.com/eitsupi) made their
first contribution in
[#&#8203;317](https://redirect.github.com/Swatinem/rust-cache/pull/317)
- [@&#8203;clechasseur](https://redirect.github.com/clechasseur) made
their first contribution in
[#&#8203;325](https://redirect.github.com/Swatinem/rust-cache/pull/325)
- [@&#8203;sondrelg](https://redirect.github.com/sondrelg) made their
first contribution in
[#&#8203;345](https://redirect.github.com/Swatinem/rust-cache/pull/345)
- [@&#8203;claytonwramsey](https://redirect.github.com/claytonwramsey)
made their first contribution in
[#&#8203;371](https://redirect.github.com/Swatinem/rust-cache/pull/371)

**Full Changelog**:
<https://github.com/Swatinem/rust-cache/compare/v2.9.1...v2.9.2>

</details>

<details>
<summary>dorny/paths-filter (dorny/paths-filter)</summary>

###
[`v4.0.3`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v403)

[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v4.0.2...v4.0.3)

- [Document safe handling of file list outputs in
workflows](https://redirect.github.com/dorny/paths-filter/pull/326)
- [Escape multi-line filenames in list-files shell and csv
output](https://redirect.github.com/advisories/GHSA-7hc6-8hq5-9q2m)
- [Add 'some-with-excludes' predicate
quantifier](https://redirect.github.com/dorny/paths-filter/pull/322)
- [Add contents permission to PR
example](https://redirect.github.com/dorny/paths-filter/pull/248)
- [Scope base-ignored warning to API
path](https://redirect.github.com/dorny/paths-filter/pull/319)
- [Update outputs in readme to account for the 'every'
predicate-quantifier](https://redirect.github.com/dorny/paths-filter/pull/247)

</details>

<details>
<summary>oxc-project/setup-node (oxc-project/setup-node)</summary>

###
[`v1.4.0`](https://redirect.github.com/oxc-project/setup-node/releases/tag/v1.4.0)

[Compare
Source](https://redirect.github.com/oxc-project/setup-node/compare/v1.3.2...v1.4.0)

##### What's Changed

- chore(deps): update semgrep/semgrep docker tag to v1.171.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;31](https://redirect.github.com/oxc-project/setup-node/pull/31)
- Stop the pnpm store cache from growing without bound by
[@&#8203;connorshea](https://redirect.github.com/connorshea) in
[#&#8203;33](https://redirect.github.com/oxc-project/setup-node/pull/33)
- chore(deps): update semgrep/semgrep docker tag to v1.172.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;32](https://redirect.github.com/oxc-project/setup-node/pull/32)

##### New Contributors

- [@&#8203;connorshea](https://redirect.github.com/connorshea) made
their first contribution in
[#&#8203;33](https://redirect.github.com/oxc-project/setup-node/pull/33)

**Full Changelog**:
<https://github.com/oxc-project/setup-node/compare/v1.3.2...v1.4.0>

</details>

<details>
<summary>samypr100/setup-dev-drive (samypr100/setup-dev-drive)</summary>

###
[`v4.1.0`](https://redirect.github.com/samypr100/setup-dev-drive/releases/tag/v4.1.0)

[Compare
Source](https://redirect.github.com/samypr100/setup-dev-drive/compare/v4.0.0...v4.1.0)

##### What's Changed

- See
[CHANGELOG.md](https://redirect.github.com/samypr100/setup-dev-drive/blob/v4.1.0/CHANGELOG.md)

**Full Changelog**:
<https://github.com/samypr100/setup-dev-drive/compare/v4.0.0...v4.1.0>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.85.9`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.9):
2.85.9

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.8...v2.85.9)

- Update `zola@latest` to 0.23.1.

- Update `wild@latest` to 0.10.0.

- Update `mise@latest` to 2026.8.2.

- Update `just@latest` to 1.58.0.

- Update `jaq@latest` to 3.1.1.

- Update `cargo-nextest@latest` to 0.9.143.

- Update `cargo-crap@latest` to 0.4.2.

- Update `biome@latest` to 2.5.7.

###
[`v2.85.8`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.8):
2.85.8

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.7...v2.85.8)

- Update `zizmor@latest` to 1.29.0.

- Update `typos@latest` to 1.49.0.

- Update `trivy@latest` to 0.73.0.

- Update `tombi@latest` to 1.2.6.

- Update `prek@latest` to 0.4.12.

- Update `mise@latest` to 2026.8.1.

- Update `convco@latest` to 0.7.1.

- Update `cargo-semver-checks@latest` to 0.50.0.

- Update `cargo-crap@latest` to 0.4.1.

###
[`v2.85.7`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.7):
2.85.7

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.6...v2.85.7)

- Update `wasmtime@latest` to 47.0.3.

- Update `uv@latest` to 0.12.1.

- Update `rclone@latest` to 1.75.0.

- Update `kingfisher@latest` to 1.110.0.

###
[`v2.85.6`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.6):
2.85.6

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.5...v2.85.6)

- Update `wasm-tools@latest` to 1.255.0.

- Update `tombi@latest` to 1.2.5.

- Update `mise@latest` to 2026.7.18.

- Update `cargo-neat@latest` to 0.5.3.

- Update `cargo-crap@latest` to 0.4.0.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-09 16:05:54 +00:00
Boshen 4a6542bfda chore(react_compiler): configure package publishing (#25389)
Prevents the internal `oxc_react_compiler` and
`oxc_transform_react_napi` Rust crates from being published while
including the `oxc-transform-react` npm package in workspace releases.

Validated with `taplo lint`, Cargo metadata, and `just ready`.

AI assistance was used for this change.
2026-08-08 08:05:28 +00:00
Boshen 41fc6908c2 fix(ci): run required checks for merge queue (#25390)
Run required workflows for `merge_group` commits so the merge queue
receives status checks. Keep PR-title validation and autofix publishing
limited to pull request events.

Validated with `just ready`.

AI assistance was used for this change.
2026-08-08 06:08:43 +00:00
renovate 325856e4d4 chore(deps): update crate-ci/typos action to v1.49.0 (#25348)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action | minor | `v1.48.0` → `v1.49.0` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

### [`v1.49.0`](https://redirect.github.com/crate-ci/typos/releases/tag/v1.49.0)

[Compare Source](https://redirect.github.com/crate-ci/typos/compare/v1.48.0...v1.49.0)

#### \[1.49.0] - 2026-08-03

##### Features

- Updated the dictionary with the [July 2026](https://redirect.github.com/crate-ci/typos/issues/1573) changes

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
2026-08-07 09:55:29 +00:00
camc314 b23c7e75d6 fix(ci): use WASM build script for NAPI releases (#25252)
In https://github.com/oxc-project/oxc/pull/25019, napi started emitting dedicated declaration files for wasi builds. This PR updated the necessary `package.json` scripts, however, in our release flow, this build step does not go via the dedicated build-wasm script, but uses build `--target wasm32-wasip1-threads`.

this PR changes the workflow to use each napi packages dedicated `build-wasm` script fixing this issue.

Failed job: https://github.com/oxc-project/oxc/actions/runs/30808750626/job/91670237826
2026-08-03 11:35:28 +00:00
renovate[bot] 7948ede553 chore(deps): update taiki-e/install-action action to v2.85.5 (#25221)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.85.4` → `v2.85.5` | `v2.85.7` (+1) |

---

### Release Notes

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.85.5`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.5):
2.85.5

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.4...v2.85.5)

- Update `uv@latest` to 0.12.0.

- Update `syft@latest` to 1.50.0.

- Update `sccache@latest` to 0.17.0.

- Update `mise@latest` to 2026.7.16.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-02 23:02:31 +00:00
renovate[bot] a6b863ac06 chore(deps): update github actions (#25216)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[oxc-project/setup-node](https://redirect.github.com/oxc-project/setup-node)
| action | patch | `v1.3.1` → `v1.3.2` | `v1.4.0` |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.171.0` → `1.172.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.85.0` → `v2.85.4` | `v2.85.7` (+2) |

---

### Release Notes

<details>
<summary>oxc-project/setup-node (oxc-project/setup-node)</summary>

###
[`v1.3.2`](https://redirect.github.com/oxc-project/setup-node/releases/tag/v1.3.2)

[Compare
Source](https://redirect.github.com/oxc-project/setup-node/compare/v1.3.1...v1.3.2)

#### What's Changed

- docs: normalize README sponsor section by
[@&#8203;Boshen](https://redirect.github.com/Boshen) in
[#&#8203;25](https://redirect.github.com/oxc-project/setup-node/pull/25)
- docs: update sponsor section by
[@&#8203;Boshen](https://redirect.github.com/Boshen) in
[#&#8203;26](https://redirect.github.com/oxc-project/setup-node/pull/26)
- ci(semgrep): add scan workflow by
[@&#8203;Boshen](https://redirect.github.com/Boshen) in
[#&#8203;29](https://redirect.github.com/oxc-project/setup-node/pull/29)
- Update semgrep/semgrep Docker tag to v1.170.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;30](https://redirect.github.com/oxc-project/setup-node/pull/30)
- Update pnpm/action-setup action to v6.0.9 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;22](https://redirect.github.com/oxc-project/setup-node/pull/22)
- Update actions/cache action to v5.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;24](https://redirect.github.com/oxc-project/setup-node/pull/24)
- Update actions/setup-node action to v6.5.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;27](https://redirect.github.com/oxc-project/setup-node/pull/27)
- Update actions/cache action to v6 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;23](https://redirect.github.com/oxc-project/setup-node/pull/23)
- Update actions/setup-node action to v7 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;28](https://redirect.github.com/oxc-project/setup-node/pull/28)

**Full Changelog**:
<https://github.com/oxc-project/setup-node/compare/v1.3.1...v1.3.2>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.85.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.4):
2.85.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.3...v2.85.4)

- Update `uv@latest` to 0.11.33.

- Update `mise@latest` to 2026.7.15.

- Update `biome@latest` to 2.5.6.

###
[`v2.85.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.3):
2.85.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.2...v2.85.3)

- Update `xh@latest` to 0.26.2.

- Update `ubi@latest` to 0.10.0.

- Update `mise@latest` to 2026.7.14.

- Update `martin@latest` to 1.13.0.

- Update `cargo-shear@latest` to 1.13.3.

- Update `cargo-binstall@latest` to 1.21.1.

###
[`v2.85.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.2):
2.85.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.1...v2.85.2)

- Update `prek@latest` to 0.4.11.

- Update `mise@latest` to 2026.7.13.

- Update `kingfisher@latest` to 1.109.0.

###
[`v2.85.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.1):
2.85.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.85.0...v2.85.1)

- Update `vacuum@latest` to 0.30.0.

- Update `uv@latest` to 0.11.32.

- Update `mise@latest` to 2026.7.12.

- Update `cyclonedx@latest` to 0.33.1.

- Update `cargo-neat@latest` to 0.5.2.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zLjIiLCJ1cGRhdGVkSW5WZXIiOiI0NC4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-02 20:23:08 +01:00
renovate[bot] ad8de5a617 chore(deps): update codspeedhq/action action to v5 (#25206) 2026-08-02 17:37:23 +01:00
Dunqing e8caf5bb74 fix(ci): allow Monitor Oxc on fork pull requests (#25055)
The [Monitor Oxc
job](https://github.com/oxc-project/oxc/actions/runs/30413998931/job/90456346227?pr=25041)
fails for fork PRs because `pull_request` workflows do not receive
repository secrets, leaving the GitHub App client ID empty.

Keep the `run-monitor-oxc` label trigger for same-repository PRs. Fork
label events are skipped before secrets are used; a trusted maintainer
can trigger them with `/monitor-oxc run` instead. The comment path
verifies triage permission, rejects PRs pushed after the command, and
dispatches the exact head SHA. This follows [Vite's ecosystem CI
workflow](https://github.com/vitejs/vite/blob/main/.github/workflows/ecosystem-ci-trigger.yml).

Verified with `just ready`.

AI assistance was used to investigate the failure and prepare this
change.
2026-07-31 10:25:55 +08:00
Boshen 85d0f4dd1f feat(napi): add React Compiler transform binding (#24934)
Adds the `oxc-transform-react` N-API binding and its public CI and publish workflows.

AI-assisted.
2026-07-29 09:08:58 +00:00
leaysgur 0c16cb5aba feat(oxfmt)!: Format parser:yaml files by oxc_formatter_yaml (#24890)
Format `.yaml`, `.yml` and others by `oxc_formatter_yaml`.

Also handle maybe-json-or-yaml files like `.prettierrc`.
2026-07-28 06:16:26 +00:00
renovate[bot] 07a189c070 chore(deps): update actions/labeler action to v7 (#24954)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/labeler](https://redirect.github.com/actions/labeler) |
action | major | `v6.2.0` → `v7.0.0` |

---

### Release Notes

<details>
<summary>actions/labeler (actions/labeler)</summary>

###
[`v7.0.0`](https://redirect.github.com/actions/labeler/compare/v6.2.0...v7.0.0)

[Compare
Source](https://redirect.github.com/actions/labeler/compare/v6.2.0...v7.0.0)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-26 20:22:17 +01:00
renovate[bot] c69709e1de chore(deps): update github actions (#24947)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v7.0.0` → `v7.0.1` | |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.170.0` → `1.171.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.83.3` → `v2.85.0` | `v2.85.2` (+1) |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v7.0.1`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v701)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v7.0.0...v7.0.1)

- Bump github/codeql-action from 3 to 4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2475](https://redirect.github.com/actions/checkout/pull/2475)
- Bump actions/setup-node from 4 to 6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2477](https://redirect.github.com/actions/checkout/pull/2477)
- Bump docker/build-push-action from 6.5.0 to 7.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2478](https://redirect.github.com/actions/checkout/pull/2478)
- Bump docker/login-action from 3.3.0 to 4.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2479](https://redirect.github.com/actions/checkout/pull/2479)
- Bump actions/checkout from 6 to 7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2488](https://redirect.github.com/actions/checkout/pull/2488)
- Bump actions/upload-artifact from 4 to 7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2476](https://redirect.github.com/actions/checkout/pull/2476)
- eslint 9 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2474](https://redirect.github.com/actions/checkout/pull/2474)
- Bump the minor-actions-dependencies group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;2499](https://redirect.github.com/actions/checkout/pull/2499)
- skip running unsafe pr check if input is default by
[@&#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&#8203;2518](https://redirect.github.com/actions/checkout/pull/2518)
- trim only ascii whitespace for branch by
[@&#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&#8203;2521](https://redirect.github.com/actions/checkout/pull/2521)
- escape values passed to --unset by
[@&#8203;aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#&#8203;2530](https://redirect.github.com/actions/checkout/pull/2530)

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.85.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.85.0):
2.85.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.84.1...v2.85.0)

- Support `wild` (alias: `wild-linker`).
([#&#8203;1949](https://redirect.github.com/taiki-e/install-action/pull/1949))

- Support `bpf-linker`.
([#&#8203;1950](https://redirect.github.com/taiki-e/install-action/pull/1950))

- Support `rafn`.
([#&#8203;1935](https://redirect.github.com/taiki-e/install-action/pull/1935),
thanks [@&#8203;DarkWanderer](https://redirect.github.com/DarkWanderer))

- Update `cargo-neat@latest` to 0.5.1.

- Update `zizmor@latest` to 1.28.0.

- Update `wasmtime@latest` to 47.0.2.

- Update `uv@latest` to 0.11.31.

- Update `syft@latest` to 1.49.0.

###
[`v2.84.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.84.1):
2.84.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.84.0...v2.84.1)

- Update `wasmtime@latest` to 47.0.1.

- Update `wasm-tools@latest` to 1.254.0.

- Update `uv@latest` to 0.11.30.

- Update `mise@latest` to 2026.7.11.

- Update `cargo-neat@latest` to 0.5.0.

- Update `cargo-crap@latest` to 0.3.1.

- Update `biome@latest` to 2.5.5.

###
[`v2.84.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.84.0):
2.84.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.83.4...v2.84.0)

- Support `d2`.
([#&#8203;1944](https://redirect.github.com/taiki-e/install-action/pull/1944))

- Support `protoc-gen-connect-openapi`.
([#&#8203;1922](https://redirect.github.com/taiki-e/install-action/pull/1922),
thanks [@&#8203;JasterV](https://redirect.github.com/JasterV))

- Update `convco@latest` to 0.7.0.
([#&#8203;1941](https://redirect.github.com/taiki-e/install-action/pull/1941),
thanks [@&#8203;graelo](https://redirect.github.com/graelo))

- Update `just@latest` to 1.57.0.

- Update `cargo-semver-checks@latest` to 0.49.0.

- Update `tombi@latest` to 1.2.4.

- Update `cosign@latest` to 3.1.2.

###
[`v2.83.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.83.4):
2.83.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.83.3...v2.83.4)

- Update `vacuum@latest` to 0.29.10.

- Update `uv@latest` to 0.11.29.

- Update `syft@latest` to 1.48.0.

- Update `prek@latest` to 0.4.10.

- Update `mise@latest` to 2026.7.7.

- Update `cargo-shear@latest` to 1.13.2.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-26 17:16:55 +01:00
camc314 8fe0ae2bd0 fix(ci): restore code coverage stack size (#24904)
## Summary

- restore RUST_MIN_STACK to the previously working 100 MiB value
- keep CARGO_BUILD_JOBS at two to limit compile-time memory pressure

## Why

Follow-up to #24898. The two-job limit allowed the coverage build to complete without the previous oxc_linter SIGKILL, but reducing the stack to 10 MiB caused the oxc_coverage test to abort with a stack overflow in run 30101454727.

The original numeric value was intentional even though its comment incorrectly said 10 MB.
2026-07-24 16:09:33 +00:00
camc314 a888457324 fix(ci): reduce code coverage memory usage (#24898)
## Summary

- limit Cargo coverage builds to two concurrent compiler processes on the 8 GiB runner
- correct RUST_MIN_STACK from 100 MiB to the documented 10 MiB

## Why

Recent Code Coverage runs intermittently kill rustc with SIGKILL while compiling the coverage-instrumented oxc_linter test binary. The same binary succeeds on reruns, which is consistent with runner memory exhaustion rather than a source or test failure.
2026-07-24 11:45:20 +00:00
Boshen fd131d3bf4 ci(semgrep): add scan workflow (#24794) 2026-07-22 13:28:54 +08:00
sapphi-red 5c7fad2321 ci(tasks/minsize): add minsize diff visualization (#24677)
Adds the diff like `just minifier-diff` to the CI result to make it easier to understand the `just minsize` diff in the pull requests.

An example output is https://github.com/oxc-project/oxc/actions/runs/29693438768/attempts/1#summary-88210053065
<details>

# Minify Output Diff
## antd.js
```diff
--- target/minifier/main/antd.js	2026-07-19 15:45:14.567913776 +0000
+++ target/minifier/pr/antd.js	2026-07-19 15:44:57.950702662 +0000
@@ -8586,7 +8586,7 @@
 			}
 			function getParagraphBasicProps(hasAvatar, hasTitle) {
 				var basicProps = {};
-				return (!hasAvatar || !hasTitle) && (basicProps.width = "61%"), !hasAvatar && hasTitle ? basicProps.rows = 3 : basicProps.rows = 2, basicProps;
+				return (!hasAvatar || !hasTitle) && (basicProps.width = "61%"), basicProps.rows = !hasAvatar && hasTitle ? 3 : 2, basicProps;
 			}
 			var Skeleton = function(props) {
 				return react__WEBPACK_IMPORTED_MODULE_3__.createElement(_config_provider__WEBPACK_IMPORTED_MODULE_7__.a, null, function(_ref) {
@@ -9587,9 +9587,9 @@
 				var currentFilters = {};
 				return filterStates.forEach(function(_ref3) {
 					var key = _ref3.key, filteredKeys = _ref3.filteredKeys, column = _ref3.column, filters = column.filters;
-					column.filterDropdown ? currentFilters[key] = filteredKeys || null : Array.isArray(filteredKeys) ? currentFilters[key] = flattenKeys(filters).filter(function(originKey) {
+					currentFilters[key] = column.filterDropdown ? filteredKeys || null : Array.isArray(filteredKeys) ? flattenKeys(filters).filter(function(originKey) {
 						return filteredKeys.includes(String(originKey));
-					}) : currentFilters[key] = null;
+					}) : null;
 				}), currentFilters;
 			}
 			function getFilterData(data, filterStates) {
@@ -37254,13 +37254,13 @@
 				var old = getOffset(elem), originalStyle = {};
 				for (var key in offset) if (offset.hasOwnProperty(key)) {
 					var dir = getOffsetDirection(key, option), preset = key === "left" ? presetH : presetV, off = originalOffset[key] - old[key];
-					dir === key ? originalStyle[dir] = preset + off : originalStyle[dir] = preset - off;
+					originalStyle[dir] = dir === key ? preset + off : preset - off;
 				}
 				css(elem, originalStyle), forceRelayout(elem), ("left" in offset || "top" in offset) && setTransitionProperty(elem, originalTransition);
 				var ret = {};
 				for (var _key in offset) if (offset.hasOwnProperty(_key)) {
 					var _dir = getOffsetDirection(_key, option), _off = offset[_key] - originalOffset[_key];
-					_key === _dir ? ret[_dir] = originalStyle[_dir] + _off : ret[_dir] = originalStyle[_dir] - _off;
+					ret[_dir] = _key === _dir ? originalStyle[_dir] + _off : originalStyle[_dir] - _off;
 				}
 				css(elem, ret);
 			}
@@ -37568,7 +37568,7 @@
 				var mq = "", features = Object.keys(obj);
 				return features.forEach(function(feature, index) {
 					var value = obj[feature];
-					feature = camel2hyphen(feature), isDimension(feature) && typeof value == "number" && (value += "px"), value === !0 ? mq += feature : value === !1 ? mq += "not " + feature : mq += "(" + feature + ": " + value + ")", index < features.length - 1 && (mq += " and ");
+					feature = camel2hyphen(feature), isDimension(feature) && typeof value == "number" && (value += "px"), mq += value === !0 ? feature : value === !1 ? "not " + feature : "(" + feature + ": " + value + ")", index < features.length - 1 && (mq += " and ");
 				}), mq;
 			};
 			module.exports = function(query) {
@@ -40943,9 +40943,9 @@
 			};
 			function useForm(form) {
 				var formRef = react__WEBPACK_IMPORTED_MODULE_5__.useRef(), _React$useState = react__WEBPACK_IMPORTED_MODULE_5__.useState({}), forceUpdate = (0, _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__.a)(_React$useState, 2)[1];
-				return formRef.current || (form ? formRef.current = form : formRef.current = new FormStore(function() {
+				return formRef.current ||= form || new FormStore(function() {
 					forceUpdate({});
-				}).getForm()), [formRef.current];
+				}).getForm(), [formRef.current];
 			}
 			__webpack_exports__.a = useForm;
 		}),
@@ -47828,7 +47828,7 @@
 						_this.setState({ focused: !1 }), onBlur && onBlur();
 					}, _this.onKeyDown = function(event) {
 						var keyCode = event.keyCode, _this$props = _this.props, count = _this$props.count, allowHalf = _this$props.allowHalf, onKeyDown = _this$props.onKeyDown, reverse = _this$props.direction === "rtl", value = _this.state.value;
-						keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.RIGHT && value < count && !reverse ? (allowHalf ? value += .5 : value += 1, _this.changeValue(value), event.preventDefault()) : keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.LEFT && value > 0 && !reverse || keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.RIGHT && value > 0 && reverse ? (allowHalf ? value -= .5 : --value, _this.changeValue(value), event.preventDefault()) : keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.LEFT && value < count && reverse && (allowHalf ? value += .5 : value += 1, _this.changeValue(value), event.preventDefault()), onKeyDown && onKeyDown(event);
+						keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.RIGHT && value < count && !reverse ? (value += allowHalf ? .5 : 1, _this.changeValue(value), event.preventDefault()) : keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.LEFT && value > 0 && !reverse || keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.RIGHT && value > 0 && reverse ? (allowHalf ? value -= .5 : --value, _this.changeValue(value), event.preventDefault()) : keyCode === rc_util_es_KeyCode__WEBPACK_IMPORTED_MODULE_9__.a.LEFT && value < count && reverse && (value += allowHalf ? .5 : 1, _this.changeValue(value), event.preventDefault()), onKeyDown && onKeyDown(event);
 					}, _this.saveRef = function(index) {
 						return function(node) {
 							_this.stars[index] = node;
@@ -50644,7 +50644,7 @@
 								icons,
 								onStepClick: onChange && _this2.onStepClick
 							}, child.props);
-							return status === "error" && index === current - 1 && (childProps.className = `${prefixCls}-next-error`), child.props.status || (stepNumber === current ? childProps.status = status : stepNumber < current ? childProps.status = "finish" : childProps.status = "wait"), childProps.active = stepNumber === current, (0, react__WEBPACK_IMPORTED_MODULE_7__.cloneElement)(child, childProps);
+							return status === "error" && index === current - 1 && (childProps.className = `${prefixCls}-next-error`), child.props.status || (childProps.status = stepNumber === current ? status : stepNumber < current ? "finish" : "wait"), childProps.active = stepNumber === current, (0, react__WEBPACK_IMPORTED_MODULE_7__.cloneElement)(child, childProps);
 						}));
 					}
 				}]), Steps;
```
## bundle.min.js
```diff
--- target/minifier/main/bundle.min.js	2026-07-19 15:45:13.523842233 +0000
+++ target/minifier/pr/bundle.min.js	2026-07-19 15:44:56.934623354 +0000
@@ -8339,7 +8339,7 @@
 			if (typeof global_defs == "object") for (var key in global_defs) key[0] === "@" && HOP(global_defs, key) && (global_defs[key.slice(1)] = parse(global_defs[key], { expression: !0 }));
 			this.options.inline === !0 && (this.options.inline = 3);
 			var pure_funcs = this.options.pure_funcs;
-			typeof pure_funcs == "function" ? this.pure_funcs = pure_funcs : this.pure_funcs = pure_funcs ? function(node) {
+			this.pure_funcs = typeof pure_funcs == "function" ? pure_funcs : pure_funcs ? function(node) {
 				return !pure_funcs.includes(node.expression.print_to_string());
 			} : return_true;
 			var top_retain = this.options.top_retain;
@@ -10476,7 +10476,7 @@
 		}), "ecma" in program) {
 			program.ecma != (program.ecma | 0) && fatal("ERROR: ecma must be an integer");
 			let ecma = program.ecma | 0;
-			ecma > 5 && ecma < 2015 ? options.ecma = ecma + 2009 : options.ecma = ecma;
+			options.ecma = ecma > 5 && ecma < 2015 ? ecma + 2009 : ecma;
 		}
 		if (program.format || program.beautify) {
 			let chosenOption = program.format || program.beautify;
```
## echarts.js
```diff
--- target/minifier/main/echarts.js	2026-07-19 15:45:14.151885372 +0000
+++ target/minifier/pr/echarts.js	2026-07-19 15:44:57.478665838 +0000
@@ -2270,7 +2270,7 @@
 	function lift(color, level) {
 		var colorArr = parse(color);
 		if (colorArr) {
-			for (var i = 0; i < 3; i++) level < 0 ? colorArr[i] = colorArr[i] * (1 - level) | 0 : colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0, colorArr[i] > 255 ? colorArr[i] = 255 : colorArr[i] < 0 && (colorArr[i] = 0);
+			for (var i = 0; i < 3; i++) colorArr[i] = level < 0 ? colorArr[i] * (1 - level) | 0 : (255 - colorArr[i]) * level + colorArr[i] | 0, colorArr[i] > 255 ? colorArr[i] = 255 : colorArr[i] < 0 && (colorArr[i] = 0);
 			return stringify(colorArr, colorArr.length === 4 ? "rgba" : "rgb");
 		}
 	}
@@ -2925,7 +2925,7 @@
 			if (textEl && (!textEl.ignore || forceUpdate)) {
 				this.textConfig ||= {};
 				var textConfig = this.textConfig, isLocal = textConfig.local, attachedTransform = textEl.attachedTransform, textAlign = void 0, textVerticalAlign = void 0, textStyleChanged = !1;
-				isLocal ? attachedTransform.parent = this : attachedTransform.parent = null;
+				attachedTransform.parent = isLocal ? this : null;
 				var innerOrigin = !1;
 				if (attachedTransform.x = textEl.x, attachedTransform.y = textEl.y, attachedTransform.originX = textEl.originX, attachedTransform.originY = textEl.originY, attachedTransform.rotation = textEl.rotation, attachedTransform.scaleX = textEl.scaleX, attachedTransform.scaleY = textEl.scaleY, textConfig.position != null) {
 					var layoutRect = tmpBoundingRect;
```
## react.development.js
```diff
--- target/minifier/main/react.development.js	2026-07-19 15:45:13.271824892 +0000
+++ target/minifier/pr/react.development.js	2026-07-19 15:44:56.738607943 +0000
@@ -773,7 +773,7 @@
 			var info = "";
 			(type === void 0 || typeof type == "object" && type && Object.keys(type).length === 0) && (info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
 			var sourceInfo = getSourceInfoErrorAddendumForProps(props);
-			sourceInfo ? info += sourceInfo : info += getDeclarationErrorAddendum();
+			info += sourceInfo || getDeclarationErrorAddendum();
 			var typeString;
 			type === null ? typeString = "null" : Array.isArray(type) ? typeString = "array" : type !== void 0 && type.$$typeof === REACT_ELEMENT_TYPE ? (typeString = "<" + (getComponentName(type.type) || "Unknown") + " />", info = " Did you accidentally export a JSX literal instead of a component?") : typeString = typeof type, error("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info);
 		}
```
## three.js
```diff
--- target/minifier/main/three.js	2026-07-19 15:45:13.659851593 +0000
+++ target/minifier/pr/three.js	2026-07-19 15:44:57.022630264 +0000
@@ -2570,7 +2570,7 @@
 			return this.index;
 		},
 		setIndex: function(index) {
-			return Array.isArray(index) ? this.index = new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1) : this.index = index, this;
+			return this.index = Array.isArray(index) ? new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1) : index, this;
 		},
 		getAttribute: function(name) {
 			return this.attributes[name];
@@ -5688,7 +5688,7 @@
 				var cachedMaterial = materialsForVariant[keyB];
 				cachedMaterial === void 0 && (cachedMaterial = result.clone(), materialsForVariant[keyB] = cachedMaterial), result = cachedMaterial;
 			}
-			return result.visible = material.visible, result.wireframe = material.wireframe, type === VSMShadowMap ? result.side = material.shadowSide === null ? material.side : material.shadowSide : result.side = material.shadowSide === null ? shadowSide[material.side] : material.shadowSide, result.clipShadows = material.clipShadows, result.clippingPlanes = material.clippingPlanes, result.clipIntersection = material.clipIntersection, result.wireframeLinewidth = material.wireframeLinewidth, result.linewidth = material.linewidth, light.isPointLight === !0 && result.isMeshDistanceMaterial === !0 && (result.referencePosition.setFromMatrixPosition(light.matrixWorld), result.nearDistance = shadowCameraNear, result.farDistance = shadowCameraFar), result;
+			return result.visible = material.visible, result.wireframe = material.wireframe, result.side = type === VSMShadowMap ? material.shadowSide === null ? material.side : material.shadowSide : material.shadowSide === null ? shadowSide[material.side] : material.shadowSide, result.clipShadows = material.clipShadows, result.clippingPlanes = material.clippingPlanes, result.clipIntersection = material.clipIntersection, result.wireframeLinewidth = material.wireframeLinewidth, result.linewidth = material.linewidth, light.isPointLight === !0 && result.isMeshDistanceMaterial === !0 && (result.referencePosition.setFromMatrixPosition(light.matrixWorld), result.nearDistance = shadowCameraNear, result.farDistance = shadowCameraFar), result;
 		}
 		function renderObject(object, camera, shadowCamera, light, type) {
 			if (object.visible !== !1) {
@@ -6123,7 +6123,7 @@
 		function uploadCubeTexture(textureProperties, texture, slot) {
 			if (texture.image.length === 6) {
 				initTexture(textureProperties, texture), state.activeTexture(33984 + slot), state.bindTexture(34067, textureProperties.__webglTexture), _gl.pixelStorei(37440, texture.flipY);
-				for (var isCompressed = texture && (texture.isCompressedTexture || texture.image[0].isCompressedTexture), isDataTexture = texture.image[0] && texture.image[0].isDataTexture, cubeImage = [], i = 0; i < 6; i++) !isCompressed && !isDataTexture ? cubeImage[i] = resizeImage(texture.image[i], !1, !0, maxCubemapSize) : cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];
+				for (var isCompressed = texture && (texture.isCompressedTexture || texture.image[0].isCompressedTexture), isDataTexture = texture.image[0] && texture.image[0].isDataTexture, cubeImage = [], i = 0; i < 6; i++) cubeImage[i] = !isCompressed && !isDataTexture ? resizeImage(texture.image[i], !1, !0, maxCubemapSize) : isDataTexture ? texture.image[i].image : texture.image[i];
 				var image = cubeImage[0], supportsMips = isPowerOfTwo(image) || isWebGL2, glFormat = utils.convert(texture.format), glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType);
 				setTextureParameters(34067, texture, supportsMips);
 				var mipmaps;
@@ -12898,7 +12898,7 @@
 			return time;
 		}, _proto._setEndings = function(atStart, atEnd, pingPong) {
 			var settings = this._interpolantSettings;
-			pingPong ? (settings.endingStart = ZeroSlopeEnding, settings.endingEnd = ZeroSlopeEnding) : (atStart ? settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding : settings.endingStart = WrapAroundEnding, atEnd ? settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding : settings.endingEnd = WrapAroundEnding);
+			pingPong ? (settings.endingStart = ZeroSlopeEnding, settings.endingEnd = ZeroSlopeEnding) : (settings.endingStart = atStart ? this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding : WrapAroundEnding, settings.endingEnd = atEnd ? this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding : WrapAroundEnding);
 		}, _proto._scheduleFading = function(duration, weightNow, weightThen) {
 			var mixer = this._mixer, now = mixer.time, interpolant = this._weightInterpolant;
 			interpolant === null && (interpolant = mixer._lendControlInterpolant(), this._weightInterpolant = interpolant);
```
## typescript.js
```diff
--- target/minifier/main/typescript.js	2026-07-19 15:45:15.411971187 +0000
+++ target/minifier/pr/typescript.js	2026-07-19 15:44:58.822770193 +0000
@@ -66551,7 +66551,7 @@
 			if (lineContent = ts.trimStringEnd(lineContent), lineContent = lineContent.replace(/\t/g, " "), context += indent + formatColorAndReset(ts.padLeft(i + 1 + "", gutterWidth), gutterStyleSequence) + gutterSeparator, context += lineContent + host.getNewLine(), context += indent + formatColorAndReset(ts.padLeft("", gutterWidth), gutterStyleSequence) + gutterSeparator, context += squiggleColor, i === firstLine) {
 				var lastCharForLine = i === lastLine ? lastLineChar : void 0;
 				context += lineContent.slice(0, firstLineChar).replace(/\S/g, " "), context += lineContent.slice(firstLineChar, lastCharForLine).replace(/./g, "~");
-			} else i === lastLine ? context += lineContent.slice(0, lastLineChar).replace(/./g, "~") : context += lineContent.replace(/./g, "~");
+			} else context += i === lastLine ? lineContent.slice(0, lastLineChar).replace(/./g, "~") : lineContent.replace(/./g, "~");
 			context += resetEscapeSequence;
 		}
 		return context;
```
## victory.js
```diff
--- target/minifier/main/victory.js	2026-07-19 15:45:13.875866457 +0000
+++ target/minifier/pr/victory.js	2026-07-19 15:44:57.186643058 +0000
@@ -22683,10 +22683,10 @@
 				return eventHandlersArray.reduce(function(localHandlers, finalHandlers) {
 					return lodash_forOwn__WEBPACK_IMPORTED_MODULE_5___default()(localHandlers, function(localHandler, eventName) {
 						var existingHandler = finalHandlers[eventName];
-						existingHandler ? finalHandlers[eventName] = function() {
+						finalHandlers[eventName] = existingHandler ? function() {
 							var existingMutations = ensureArray(existingHandler.apply(void 0, arguments)), localMutations = ensureArray(localHandler.apply(void 0, arguments));
 							return existingMutations.concat(localMutations);
-						} : finalHandlers[eventName] = localHandler;
+						} : localHandler;
 					}), finalHandlers;
 				});
 			}, combineDefaultEvents = function(defaultEvents) {
```
## vue.js
```diff
--- target/minifier/main/vue.js	2026-07-19 15:45:13.327828746 +0000
+++ target/minifier/pr/vue.js	2026-07-19 15:44:56.794612345 +0000
@@ -1269,7 +1269,7 @@
 	function lifecycleMixin(Vue) {
 		Vue.prototype._update = function(vnode, hydrating) {
 			var vm = this, prevEl = vm.$el, prevVnode = vm._vnode, restoreActiveInstance = setActiveInstance(vm);
-			vm._vnode = vnode, prevVnode ? vm.$el = vm.__patch__(prevVnode, vnode) : vm.$el = vm.__patch__(vm.$el, vnode, hydrating, !1), restoreActiveInstance(), prevEl && (prevEl.__vue__ = null), vm.$el && (vm.$el.__vue__ = vm), vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode && (vm.$parent.$el = vm.$el);
+			vm._vnode = vnode, vm.$el = prevVnode ? vm.__patch__(prevVnode, vnode) : vm.__patch__(vm.$el, vnode, hydrating, !1), restoreActiveInstance(), prevEl && (prevEl.__vue__ = null), vm.$el && (vm.$el.__vue__ = vm), vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode && (vm.$parent.$el = vm.$el);
 		}, Vue.prototype.$forceUpdate = function() {
 			var vm = this;
 			vm._watcher && vm._watcher.update();
@@ -2263,7 +2263,7 @@
 		}, range);
 		modifiers !== emptyObject && (newHandler.modifiers = modifiers);
 		var handlers = events[name];
-		Array.isArray(handlers) ? important ? handlers.unshift(newHandler) : handlers.push(newHandler) : handlers ? events[name] = important ? [newHandler, handlers] : [handlers, newHandler] : events[name] = newHandler, el.plain = !1;
+		Array.isArray(handlers) ? important ? handlers.unshift(newHandler) : handlers.push(newHandler) : events[name] = handlers ? important ? [newHandler, handlers] : [handlers, newHandler] : newHandler, el.plain = !1;
 	}
 	function getRawBindingAttr(el, name) {
 		return el.rawAttrsMap[":" + name] || el.rawAttrsMap["v-bind:" + name] || el.rawAttrsMap[name];
```

</details>
2026-07-20 03:26:04 +00:00
renovate[bot] 77cd11dff6 chore(deps): update github actions (#24680)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[namespacelabs/nscloud-cache-action](https://redirect.github.com/namespacelabs/nscloud-cache-action)
| action | patch | `v1.6.0` → `v1.6.1` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.83.0` → `v2.83.3` | `v2.83.4` |

---

### Release Notes

<details>
<summary>namespacelabs/nscloud-cache-action
(namespacelabs/nscloud-cache-action)</summary>

###
[`v1.6.1`](https://redirect.github.com/namespacelabs/nscloud-cache-action/releases/tag/v1.6.1)

[Compare
Source](https://redirect.github.com/namespacelabs/nscloud-cache-action/compare/v1.6.0...v1.6.1)

#### What's Changed

- Bump the minor-actions-dependencies group across 1 directory with 6
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;154](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/154)
- Remove Tuist cache mode test by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;156](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/156)
- Bump the minor-npm-dependencies group across 1 directory with 9
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;155](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/155)

**Full Changelog**:
<https://github.com/namespacelabs/nscloud-cache-action/compare/v1...v1.6.1>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.83.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.83.3):
2.83.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.83.2...v2.83.3)

- Update `release-plz@latest` to 0.3.160.

- Update `prek@latest` to 0.4.9.

- Update `mise@latest` to 2026.7.6.

- Update `dprint@latest` to 0.55.2.

- Update `cargo-dinghy@latest` to 0.8.5.

- Update `cargo-binstall@latest` to 1.21.0.

- Update `biome@latest` to 2.5.4.

###
[`v2.83.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.83.2):
2.83.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.83.1...v2.83.2)

- Update `parse-dockerfile@latest` to 0.1.8.

- Update `mise@latest` to 2026.7.5.

- Update `just@latest` to 1.56.0.

- Update `gungraun-runner@latest` to 0.19.4.

- Update `cargo-neat@latest` to 0.4.1.

###
[`v2.83.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.83.1):
2.83.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.83.0...v2.83.1)

- Update `rclone@latest` to 1.74.4.

- Update `mise@latest` to 2026.7.4.

- Update `cargo-deny@latest` to 0.20.2.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-19 18:07:02 +01:00
Boshen d174661221 ci(benchmark): add CodSpeed memory measurement for pipeline benchmarks (#24559)
Adds CodSpeed's [Memory Instrument](https://codspeed.io/docs/instruments/memory) for the `pipeline` benchmarks: peak memory, total allocated bytes, allocation count, and a memory timeline per benchmark case, tracked with baseline comparison on PRs alongside the existing CPU simulation runs.

## Changes

- `generate-benchmark-matrix.js`: entry construction is factored into a `buildMatrixEntries()` helper used by all five construction sites. All entries now carry an explicit `mode`: `simulation` for every component, `simulation,memory` for `pipeline` — so the pipeline job runs both instruments and inherits the existing changed-file affection logic.
- `benchmark.yml`: the action's `mode:` input comes from the matrix. Job names and count are unchanged.

No build-step changes needed: `cargo-codspeed` maps memory mode to the same `analysis` build the workflow already stages (`MeasurementMode::Memory` → `BuildMode::Analysis`), and the pinned action v4.18.5 supports memory mode (added in v4.17.0) including comma-separated multi-mode runs.

Notes:

- The first memory numbers on this PR will have no baseline; comparisons start after the post-merge main run.
- Memory metrics reflect the bench crate's deliberate `NeverGrowInPlaceAllocator` worst-case realloc behavior — consistent run-to-run, which is what matters for regression tracking.

AI Disclosure: This was generated with Claude Code, Fable 5. It has been tested and reviewed by me for correctness.
2026-07-15 16:12:52 +00:00
Dunqing 4279ecaa7c chore(coverage): update stale test262 runtime snapshot (#24528)
#24463 moved the test262 pin from `de8e621c` to `d1d583db` but did not regenerate `tasks/coverage/snapshots/runtime.snap`, which still records the old sha. The runtime suite doesn't run in repo CI, so nothing caught it; monitor-oxc's Test262 job has been aborting on the snapshot sha guard ("Repository … is outdated for runtime.snap. Please run `just submodules`") on every run since 2026-07-13.

Two changes:

1. Regenerated the snapshot with `UPDATE_SNAPSHOT=1 cargo coverage runtime` against the pinned checkout: 17306/18277 (94.69%) passing, matching what monitor-oxc measures on main. The list changes are upstream test262 churn — two new `eval-code` global-function-init failures, and the async-arrow `forbidden-ext` block that no longer exists upstream.

2. Fixed the root cause of the staleness: the `update_submodules` workflow runs `just coverage`, whose default task skips the runtime suite, so `runtime.snap` was never regenerated on automated pin bumps. The workflow now runs `cargo coverage runtime` explicitly (it already sets up Node).

This PR was assisted by Claude.
2026-07-15 01:43:09 +00:00
Boshen 1e4e0cb754 chore(ci): remove global npm upgrade in release workflows (#24425)
Publishing across all release workflows is done exclusively via `pnpm publish` (directly, or through `publish-if-needed.sh` and `check-npm-packages.js`). Trusted publishing (OIDC) support therefore depends on the pnpm version, not the global npm CLI, so the `npm install -g npm@latest` step was dead weight.

Removed all 5 occurrences of:

```yaml
- run: npm install -g npm@latest # For trusted publishing support
```

from:

- `.github/workflows/reusable_release_napi.yml`
- `.github/workflows/release_types.yml`
- `.github/workflows/release_runtime.yml`
- `.github/workflows/release_apps.yml` (2 occurrences)

The `id-token: write` permission that actually enables trusted publishing is untouched.
2026-07-13 00:38:16 +00:00
renovate[bot] 1ef07a1f5b chore(deps): update github actions (#24410)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v4.18.1` → `v4.18.5` | |
| [actions/labeler](https://redirect.github.com/actions/labeler) |
action | minor | `v6.1.0` → `v6.2.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.82.7` → `v2.83.0` | `v2.83.2` (+1) |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary>

###
[`v4.18.5`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.18.5)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.18.4...v4.18.5)

#### Release Notes

##### <!-- 10 -->💼 Other

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed6](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed6)
([#&#8203;448](https://redirect.github.com/CodSpeedHQ/action/issues/448))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;448](https://redirect.github.com/CodSpeedHQ/runner/pull/448)
- fix: hangs on ARM64 due to atomics by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#23](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/23)
- fix(aspacem): raise amd64 managed address ceiling to 1 TiB by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#22](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/22)

#### Install codspeed-runner 4.18.4

##### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-installer.sh | sh
```

#### Download codspeed-runner 4.18.4

| File | Platform | Checksum |
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| ------------------- |
-------------------------------------------------------------------------------------------------------------------------------------
|
|
[codspeed-runner-aarch64-apple-darwin.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-aarch64-apple-darwin.tar.gz)
| Apple Silicon macOS |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-aarch64-apple-darwin.tar.gz.sha256)
|
|
[codspeed-runner-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-aarch64-unknown-linux-musl.tar.gz)
| ARM64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-aarch64-unknown-linux-musl.tar.gz.sha256)
|
|
[codspeed-runner-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-x86_64-unknown-linux-musl.tar.gz)
| x64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.4/codspeed-runner-x86_64-unknown-linux-musl.tar.gz.sha256)
|

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v4.18.4...v4.18.5>

###
[`v4.18.4`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.18.4)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.18.2...v4.18.4)

#### What's Changed

- fix 4.18.3 runner hash –
[`bf19f56`](https://redirect.github.com/CodSpeedHQ/action/commit/bf19f56fe8857e83e4343138c1a927e56f666e3b)
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia)

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v4.18.3...v4.18.4>

###
[`v4.18.2`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.18.2)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.18.1...v4.18.2)

#### Release Notes

##### <!-- 1 -->🐛 Bug Fixes

- Source forwarded env below memtrack's capability boundary by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;439](https://redirect.github.com/CodSpeedHQ/runner/pull/439)

##### <!-- 7 -->⚙️ Internals

- chore: bump runner version to 4.18.2 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;219](https://redirect.github.com/CodSpeedHQ/action/pull/219)

#### Install codspeed-runner 4.18.2

##### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-installer.sh | sh
```

#### Download codspeed-runner 4.18.2

| File | Platform | Checksum |
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| ------------------- |
-------------------------------------------------------------------------------------------------------------------------------------
|
|
[codspeed-runner-aarch64-apple-darwin.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-aarch64-apple-darwin.tar.gz)
| Apple Silicon macOS |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-aarch64-apple-darwin.tar.gz.sha256)
|
|
[codspeed-runner-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-aarch64-unknown-linux-musl.tar.gz)
| ARM64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-aarch64-unknown-linux-musl.tar.gz.sha256)
|
|
[codspeed-runner-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-x86_64-unknown-linux-musl.tar.gz)
| x64 MUSL Linux |
[checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.18.2/codspeed-runner-x86_64-unknown-linux-musl.tar.gz.sha256)
|

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

**Full Changelog**:
<https://github.com/CodSpeedHQ/action/compare/v4.18.1...v4.18.2>

</details>

<details>
<summary>actions/labeler (actions/labeler)</summary>

###
[`v6.2.0`](https://redirect.github.com/actions/labeler/releases/tag/v6.2.0)

[Compare
Source](https://redirect.github.com/actions/labeler/compare/v6.1.0...v6.2.0)

#### What's Changed

##### Bug Fix

- Improve PR number validation and warning messages in input handling by
[@&#8203;chiranjib-swain](https://redirect.github.com/chiranjib-swain)
in [#&#8203;939](https://redirect.github.com/actions/labeler/pull/939)

##### Dependency Updates

- Bump js-yaml to 4.2.0, apply npm audit fix, and add undici override by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;943](https://redirect.github.com/actions/labeler/pull/943)
- Bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.59.1 to 8.61.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;942](https://redirect.github.com/actions/labeler/pull/942)

**Full Changelog**:
<https://github.com/actions/labeler/compare/v6.1.0...v6.2.0>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.83.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.83.0):
2.83.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.11...v2.83.0)

- Support `cargo-about`.
([#&#8203;1924](https://redirect.github.com/taiki-e/install-action/pull/1924),
thanks [@&#8203;ruffsl](https://redirect.github.com/ruffsl))

- Update `uv@latest` to 0.11.28.

- Update `martin@latest` to 1.12.0.

- Update `kingfisher@latest` to 1.106.0.

- Update `biome@latest` to 2.5.3.

###
[`v2.82.11`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.11):
2.82.11

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.10...v2.82.11)

- Update `wasm-tools@latest` to 1.253.0.

- Update `uv@latest` to 0.11.27.

- Update `mise@latest` to 2026.7.2.

- Update `mdbook@latest` to 0.5.4.

###
[`v2.82.10`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.10):
2.82.10

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.9...v2.82.10)

- Update `tombi@latest` to 1.2.0.

- Update `cargo-nextest@latest` to 0.9.140.

###
[`v2.82.9`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.9):
2.82.9

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.8...v2.82.9)

- Update `vacuum@latest` to 0.29.9.

- Update `prek@latest` to 0.4.8.

- Update `cargo-tarpaulin@latest` to 0.37.0.

- Update `cargo-leptos@latest` to 0.3.7.

###
[`v2.82.8`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.8):
2.82.8

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.7...v2.82.8)

- Update `vacuum@latest` to 0.29.8.

- Update `uv@latest` to 0.11.26.

- Update `typos@latest` to 1.48.0.

- Update `trivy@latest` to 0.72.0.

- Update `tombi@latest` to 1.1.7.

- Update `prek@latest` to 0.4.6.

- Update `mise@latest` to 2026.7.0.

- Update `just@latest` to 1.55.1.

- Update `biome@latest` to 2.5.2.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-12 22:03:57 +01:00
Boshen 18da3a2f91 chore(ci): use CARGO_BUILD_WARNINGS=deny instead of clippy -D warnings (#24344)
Rust 1.97 stabilized [`build.warnings`](https://blog.rust-lang.org/2026/07/09/Rust-1.97.0/#cargo-support-for-denying-warnings) / `CARGO_BUILD_WARNINGS`, which denies warnings at the cargo level instead of via clippy args.

Unlike `-D warnings`, the env var is not part of the build fingerprint, so `just lint`, plain `cargo lint`, and rust-analyzer now share one check cache instead of re-linting the workspace whenever the flags alternate. Cached warnings are still replayed and denied, so warm caches leave no enforcement hole.

Verified on cargo 1.97: clippy-only lints are denied (exit 101) despite the cargo reference only mentioning "rustc lints", and denial fires from a fully cached run. The justfile recipe exports the variable via a just parameter (cross-platform, and overridable with `just lint warn`).

rustdoc keeps `RUSTDOCFLAGS='-D warnings'` — `build.warnings` does not cover rustdoc lints.
2026-07-10 08:33:52 +00:00
Boshen c824f5ff2a ci(lint): run release-mode clippy on main only, without --all-targets (#24242)
The Lint job is one of the two slowest jobs on PR CI (median 3m29s, p90 4m48s over the last 31 runs), and the `dev-no-debug-assertions` clippy pass accounts for roughly half of its clippy time — every core-crate commit re-checks ~60 crates twice, once per profile.

That pass exists to catch lints which only fire with `debug_assertions` off (e.g. #8539, the motivation for adding it in #8541). This failure class is rare (~4 occurrences in the project's history) and a post-merge failure on main pinpoints the culprit commit, so run it on `main` pushes only — the same trade already made for the mac/windows/32-bit/big-endian test jobs.

Also drop `--all-targets` from this pass (calling `cargo clippy` directly, since the `cargo lint` alias bakes it in): test/bench code is never built in release mode with `-D warnings`, and skipping it avoids re-checking `oxc_linter`'s inline rule tests a second time. The `#[cfg(debug_assertions)]` sites in the workspace are almost entirely in lib code.

Expected PR lint job time: ~3m30s → ~1m45s median.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-07-07 09:42:09 +00:00
renovate[bot] a6e3a0582e chore(deps): update dorny/paths-filter action to v4.0.2 (#24194)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [dorny/paths-filter](https://redirect.github.com/dorny/paths-filter) |
action | patch | `v4.0.1` → `v4.0.2` |

---

### Release Notes

<details>
<summary>dorny/paths-filter (dorny/paths-filter)</summary>

###
[`v4.0.2`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v402)

[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v4.0.1...v4.0.2)

- [Work around git dubious ownership errors in container
jobs](https://redirect.github.com/dorny/paths-filter/pull/317)
- [Use rev-parse instead of branch --show-current for older git
compat](https://redirect.github.com/dorny/paths-filter/pull/303)
- [Fix warning
message](https://redirect.github.com/dorny/paths-filter/pull/282)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 00:53:46 +00:00
renovate[bot] 8853f144e5 chore(deps): update github actions (#24188)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[namespacelabs/nscloud-cache-action](https://redirect.github.com/namespacelabs/nscloud-cache-action)
| action | minor | `v1.4.3` → `v1.6.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.82.4` → `v2.82.7` | `v2.82.9` (+1) |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the warning logs for
more information.

---

### Release Notes

<details>
<summary>namespacelabs/nscloud-cache-action
(namespacelabs/nscloud-cache-action)</summary>

###
[`v1.6.0`](https://redirect.github.com/namespacelabs/nscloud-cache-action/releases/tag/v1.6.0)

[Compare
Source](https://redirect.github.com/namespacelabs/nscloud-cache-action/compare/v1.5.0...v1.6.0)

##### What's Changed

- Remove unused Unix-only helpers from utils by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;148](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/148)
- Validate cache links on Windows runners by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;149](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/149)
- Early Windows support -> Bump actions-toolkit to v0.4.0, fix
Dependabot & patch security advisories by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;150](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/150)

**Full Changelog**:
<https://github.com/namespacelabs/nscloud-cache-action/compare/v1...v1.6.0>

###
[`v1.5.0`](https://redirect.github.com/namespacelabs/nscloud-cache-action/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/namespacelabs/nscloud-cache-action/compare/v1.4.3...v1.5.0)

##### What's Changed

- Bump pnpm/action-setup from 5.0.0 to 6.0.3 in the
major-actions-dependencies group across 1 directory by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;127](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/127)
- Bump the minor-npm-dependencies group across 1 directory with 8
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;130](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/130)
- ci: add --verbose to cargo invocations by
[@&#8203;annervisser](https://redirect.github.com/annervisser) in
[#&#8203;117](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/117)
- Bump the minor-actions-dependencies group with 5 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;133](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/133)
- Bump eslint-plugin-n from 17.24.0 to 18.0.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;132](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/132)
- fix(ci): pin astral-sh/setup-uv to a valid v7 SHA by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;134](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/134)
- ci: matrix pnpm versions to cover v11 by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;131](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/131)
- Bump the major-actions-dependencies group across 1 directory with 2
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;142](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/142)
- Bump the minor-actions-dependencies group across 1 directory with 7
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;145](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/145)
- Bump the minor-npm-dependencies group across 1 directory with 9
updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;144](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/144)
- Pass spacectl binPath explicitly instead of relying on PATH by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;146](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/146)
- ci: add tuist cache mode test by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;147](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/147)

**Full Changelog**:
<https://github.com/namespacelabs/nscloud-cache-action/compare/v1...v1.5.0>

</details>

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.82.7`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.7):
2.82.7

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.6...v2.82.7)

- Update `tombi@latest` to 1.1.6.

- Update `kingfisher@latest` to 1.105.0.

- Update `gungraun-runner@latest` to 0.19.3.

- Update `editorconfig-checker@latest` to 3.8.0.

- Update `dprint@latest` to 0.55.1.

- Update `cargo-tarpaulin@latest` to 0.36.0.

###
[`v2.82.6`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.6):
2.82.6

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.5...v2.82.6)

- Update `vacuum@latest` to 0.29.7.

- Update `uv@latest` to 0.11.25.

- Update `syft@latest` to 1.46.0.

- Update `dprint@latest` to 0.55.0.

- Update `cargo-auditable@latest` to 0.7.5.

###
[`v2.82.5`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.82.5):
2.82.5

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.82.4...v2.82.5)

- Update `wasmtime@latest` to 46.0.1.

- Update `wasm-bindgen@latest` to 0.2.126.

- Update `vacuum@latest` to 0.29.6.

- Update `mise@latest` to 2026.6.14.

- Update `cargo-rdme@latest` to 2.1.0.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-05 18:19:19 +01:00
camchenry a685927916 feat(ci): add lint timings tracking (#24162)
Adds linter call count tracking to provide some durable evidence of call count reductions. This does not include the actual rule timings so that it is consistent across machines.
2026-07-04 17:43:39 +00:00
renovate[bot] 01cf262d7e chore(deps): update crate-ci/typos action to v1.48.0 (#24141)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| minor | `v1.47.2` → `v1.48.0` |

---

### Release Notes

<details>
<summary>crate-ci/typos (crate-ci/typos)</summary>

###
[`v1.48.0`](https://redirect.github.com/crate-ci/typos/releases/tag/v1.48.0)

[Compare
Source](https://redirect.github.com/crate-ci/typos/compare/v1.47.2...v1.48.0)

#### \[1.48.0] - 2026-06-30

##### Features

- Updated the dictionary with the [June
2026](https://redirect.github.com/crate-ci/typos/issues/1562) changes

</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron Clark <cameron.clark@hey.com>
2026-07-04 12:47:23 +01:00