Commit Graph
435 Commits
Author SHA1 Message Date
overlookmotel a76e5fd80d test(lexer): update just recipes to cover Neon implementation (#27705)
#27642 added an aarch64 Neon implementation of `classify`. So now we have 3 implementations.

Update `just ready-lexer` recipe to test and lint all 3.
2026-10-14 21:59:01 +00:00
overlookmotel 6a9a8f5e15 ci(lexer): report which SIMD/generic implementation used in conformance & benchmarks (#27703)
#27642 added an aarch64 Neon implementation of `classify`. So now we have 2 SIMD implementations. This makes the previous output "Lexer implementation: SIMD" / "Lexer implementation: scalar" ambiguous - which SIMD?

Fix that, and also update some comments to match.
2026-10-14 21:59:01 +00:00
renovate[bot] 1f1d7eae2e chore(deps): update github actions (#27573)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | minor | `v5.2.1` → `v5.4.0` | `v5.4.2` |
|
[actions/download-artifact](https://redirect.github.com/actions/download-artifact)
| action | patch | `v8.0.1` → `v8.0.2` | |
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `v7.0.1` → `v7.0.2` | |
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.179.0` → `1.180.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.87.22` → `v2.87.26` | `v2.87.27` |

---

### Release Notes

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

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

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

Bumps the CodSpeed runner to
[v5.4.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.4.0),
including
[v5.3.0](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.3.0)
and
[v5.3.1](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.3.1).

The [Memory instrument](https://codspeed.io/docs/instruments/memory) now
tracks physical (resident) memory and captures allocation call stacks to
build memory flamegraphs. Both are enabled by default and can be turned
off with the new `disable-memory-track-physical` and
`disable-memory-capture-stack` inputs. Serialization is also faster on
large memory benchmarks.

The action now exposes the id of the CodSpeed run as a `run-id` output,
and CodSpeed now works on non-Ubuntu/Debian distributions such as Arch
Linux.

##### 🚀 Features

- Track physical memory and capture allocation call stacks for memory
flamegraphs, both enabled by default by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;529](https://redirect.github.com/CodSpeedHQ/codspeed/pull/529),
[#&#8203;522](https://redirect.github.com/CodSpeedHQ/codspeed/pull/522)
and
[#&#8203;553](https://redirect.github.com/CodSpeedHQ/codspeed/pull/553)
- Expose the run id as a GitHub Actions step output by
[@&#8203;moha-bekh](https://redirect.github.com/moha-bekh) in
[#&#8203;551](https://redirect.github.com/CodSpeedHQ/codspeed/pull/551)
- Add an `--experimental-disable-pythonmalloc-override` flag
(`CODSPEED_EXPERIMENTAL_DISABLE_PYTHONMALLOC_OVERRIDE`) to stop
overriding the Python allocator, which can break free-threaded Python in
simulation mode, by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;539](https://redirect.github.com/CodSpeedHQ/codspeed/pull/539)
- Apply kernel memory tunables before memory-mode runs, and fail early
when the kernel has no BTF by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;507](https://redirect.github.com/CodSpeedHQ/codspeed/pull/507)
and
[#&#8203;524](https://redirect.github.com/CodSpeedHQ/codspeed/pull/524)
- Pause producers under ring buffer pressure in memory mode, and log
process stops per reason by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;543](https://redirect.github.com/CodSpeedHQ/codspeed/pull/543)
- Log which authentication method the run uses by
[@&#8203;fargito](https://redirect.github.com/fargito) in
[#&#8203;521](https://redirect.github.com/CodSpeedHQ/codspeed/pull/521)

##### 🐛 Bug Fixes

- Support distributions CodSpeed publishes no valgrind package for
(Arch, rolling releases) by
[@&#8203;moha-bekh](https://redirect.github.com/moha-bekh) in
[#&#8203;525](https://redirect.github.com/CodSpeedHQ/codspeed/pull/525)
- Error out when the profile archive exceeds the upload size limit by
[@&#8203;lvaroqui](https://redirect.github.com/lvaroqui) in
[#&#8203;557](https://redirect.github.com/CodSpeedHQ/codspeed/pull/557)
- Detect free-threaded Python from venv and uv before setting
`PYTHONMALLOC` by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;539](https://redirect.github.com/CodSpeedHQ/codspeed/pull/539)
- Honor deprecated experimental flags, including their falsey values,
instead of ignoring them by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;532](https://redirect.github.com/CodSpeedHQ/codspeed/pull/532)
and
[#&#8203;553](https://redirect.github.com/CodSpeedHQ/codspeed/pull/553)
- Fix memory tracking edge cases: reused pids, stack-ring overflow, BPF
links held by forked processes, and allocator symbols aliased at an
attached offset by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;522](https://redirect.github.com/CodSpeedHQ/codspeed/pull/522)
and
[#&#8203;543](https://redirect.github.com/CodSpeedHQ/codspeed/pull/543)
- Attach memory tracking hooks without `perf_event_open` by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;536](https://redirect.github.com/CodSpeedHQ/codspeed/pull/536)
- Restore profiling sysctls in walltime mode by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;507](https://redirect.github.com/CodSpeedHQ/codspeed/pull/507)

##### ⚡ Performance

- Speed up memory serialization and reduce the tracker's memory usage on
large memory benchmarks by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;522](https://redirect.github.com/CodSpeedHQ/codspeed/pull/522),
[#&#8203;537](https://redirect.github.com/CodSpeedHQ/codspeed/pull/537),
[#&#8203;548](https://redirect.github.com/CodSpeedHQ/codspeed/pull/548),
[#&#8203;558](https://redirect.github.com/CodSpeedHQ/codspeed/pull/558)
and
[#&#8203;560](https://redirect.github.com/CodSpeedHQ/codspeed/pull/560)

##### ⚙️ Internals

- Pin memtrack to 1.6.0, through 1.5.0 and 1.5.1, by
[@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;530](https://redirect.github.com/CodSpeedHQ/codspeed/pull/530),
[#&#8203;541](https://redirect.github.com/CodSpeedHQ/codspeed/pull/541)
and
[#&#8203;561](https://redirect.github.com/CodSpeedHQ/codspeed/pull/561)
- Keep mmap/munmap/brk as deprecated memtrack artifact variants by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;538](https://redirect.github.com/CodSpeedHQ/codspeed/pull/538)

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

#### What's Changed

- chore: bump runner version to 5.3.0 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;239](https://redirect.github.com/CodSpeedHQ/action/pull/239)
- feat: add memory-track-physical experimental input by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;238](https://redirect.github.com/CodSpeedHQ/action/pull/238)
- chore: bump runner version to 5.3.1 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;240](https://redirect.github.com/CodSpeedHQ/action/pull/240)
- feat: add a run-id output by
[@&#8203;moha-bekh](https://redirect.github.com/moha-bekh) in
[#&#8203;243](https://redirect.github.com/CodSpeedHQ/action/pull/243)
- chore: bump runner version to 5.4.0 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;244](https://redirect.github.com/CodSpeedHQ/action/pull/244)
- feat: add disable-memory-capture-stack and
disable-memory-track-physical inputs by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;242](https://redirect.github.com/CodSpeedHQ/action/pull/242)

#### New Contributors

- [@&#8203;moha-bekh](https://redirect.github.com/moha-bekh) made their
first contribution in
[#&#8203;243](https://redirect.github.com/CodSpeedHQ/action/pull/243)

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

</details>

<details>
<summary>actions/download-artifact (actions/download-artifact)</summary>

###
[`v8.0.2`](https://redirect.github.com/actions/download-artifact/releases/tag/v8.0.2)

[Compare
Source](https://redirect.github.com/actions/download-artifact/compare/v8.0.1...v8.0.2)

##### What's Changed

- Update the readme by
[@&#8203;danwkennedy](https://redirect.github.com/danwkennedy) in
[#&#8203;473](https://redirect.github.com/actions/download-artifact/pull/473)
- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Update
[@&#8203;actions/artifact](https://redirect.github.com/actions/artifact)
to 6.3.1 by [@&#8203;tunc-d](https://redirect.github.com/tunc-d) in
[#&#8203;492](https://redirect.github.com/actions/download-artifact/pull/492)
- Prepare download-artifact v8.0.2 by
[@&#8203;tunc-d](https://redirect.github.com/tunc-d) in
[#&#8203;493](https://redirect.github.com/actions/download-artifact/pull/493)

##### New Contributors

- [@&#8203;tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#&#8203;492](https://redirect.github.com/actions/download-artifact/pull/492)

**Full Changelog**:
<https://github.com/actions/download-artifact/compare/v8.0.1...v8.0.2>

</details>

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

###
[`v7.0.2`](https://redirect.github.com/actions/upload-artifact/releases/tag/v7.0.2)

[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2)

##### What's Changed

- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Updates
[@&#8203;actions/artifact](https://redirect.github.com/actions/artifact)
to v6.3.1.

##### New Contributors

- [@&#8203;tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#&#8203;821](https://redirect.github.com/actions/upload-artifact/pull/821)

**Full Changelog**:
<https://github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2>

</details>

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

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

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

- Update `tombi@latest` to 1.7.2.

- Update `prek@latest` to 0.5.5.

- Update `mise@latest` to 2026.10.3.

- Update `kache@latest` to 1.0.0.

- Update `hyperfine@latest` to 1.21.0.

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

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

- Update `uv@latest` to 0.12.23.

- Update `mise@latest` to 2026.10.2.

- Update `kingfisher@latest` to 2.10.0.

- Update `dprint@latest` to 0.60.1.

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

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

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

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

- Update `wasmtime@latest` to 49.0.2.

- Update `dprint@latest` to 0.59.0.

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

- Update `cargo-insta@latest` to 1.49.0.

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

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

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

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

- Update `uv@latest` to 0.12.22.

- Update `trivy@latest` to 0.75.0.

- Update `tombi@latest` to 1.7.1.

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

- Update `mise@latest` to 2026.10.0.

- Update `kingfisher@latest` to 2.9.1.

- Update `kache@latest` to 0.28.1.

- Update `espup@latest` to 0.18.0.

- Update `dprint@latest` to 0.58.0.

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

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

- Update `biome@latest` to 2.5.15.

- Update `syft@latest` to 1.54.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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-12 01:40:10 +00:00
renovate[bot] 7d0ee4825b chore(deps): update crate-ci/typos action to v1.51.1 (#27523)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

#### \[1.51.1] - 2026-10-06

##### Features

- Add ARM Windows builds

</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 becomes conflicted, 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-10 00:26:25 +00:00
renovate[bot] 18fdd4c704 chore(deps): update crate-ci/typos action to v1.51.0 (#27506)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

#### \[1.51.0] - 2026-10-06

##### Fixes

- Don't correct `bimap`

##### Features

- Updated the dictionary with the [September
2026](https://redirect.github.com/crate-ci/typos/issues/1610) 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-09 16:31:21 +00:00
Boshen 989862fedf perf(ci): overlap more workflow steps (#27485)
## Summary

- install `cross` in the background while checkout and Node/Zig/OpenHarmony setup run
- prepare Oxfmt conformance fixtures while test artifacts build
- run Oxfmt Vitest and conformance checks in parallel after the shared build

## Expected timing

The Oxfmt work on this PR was skipped by the changed-path filter because the diff only contains workflow files. The release matrix also does not run on pull requests. The comparison below is therefore modeled from recorded step durations on `main`:

| Area | Current `main` | This PR | Expected saving |
| --- | ---: | ---: | ---: |
| Oxfmt CI job | 3m 11s | ~2m 59s | ~12s / 6% |
| Oxlint Windows setup | 2m 39s | ~1m 27s | ~72s / 45% |
| Oxfmt Windows setup | 2m 41s | ~1m 27s | ~74s / 46% |
| Oxlint Linux setup | 37s | ~21s | ~16s / 43% |

The release workflow critical path should improve by roughly 70 seconds. The Oxfmt estimate uses [this CI run](https://github.com/oxc-project/oxc/actions/runs/37894245641/job/113701826192); release setup estimates use individual step timings from [this release run](https://github.com/oxc-project/oxc/actions/runs/36405839796).

## Validation

- `git diff --check`
- YAML parsed successfully with Ruby Psych
- `zizmor .github/workflows/ci.yml .github/workflows/release_apps.yml`
- `cargo shear --fix --check-test-targets`
- `cargo fmt`

`node --run fmt` could not run because the local `oxfmt` binary is not installed.

## AI disclosure

This PR was created with assistance from OpenAI Codex. The changes and validation results were reviewed before submission.
2026-10-09 09:03:48 +00:00
Boshen 3dd86d2b21 perf(ci): speed up Windows builds (#27483)
## Summary

- overlap Windows dependency installation with Rust test compilation
- build the five Windows compiler NAPI modules in one feature-unified Cargo invocation
- enable manual branch dispatch for the two optimized Windows jobs while keeping their PR behavior main-only

## CI timing

Baseline: [post-#27482 main CI](https://github.com/oxc-project/oxc/actions/runs/37900100567)

| Measurement | Baseline | After |
| --- | ---: | ---: |
| Main CI / Windows critical path | 9m55s / 9m52s | Benchmark pending |
| Test Windows | 9m52s | Benchmark pending |
| Test NAPI Compiler (windows) | 9m16s | Benchmark pending |
| Windows NAPI build packages | 5m26s | Benchmark pending |

The branch will be dispatched twice. Final timings will use the slower passing branch run and include step-level comparisons; GitHub-hosted Windows runner and cache variance should still be considered.

## Validation

- `target/debug/oxfmt --check .github/workflows/ci.yml`
- `zizmor .github`
- `git diff --check`

## AI usage

Prepared with Codex. I reviewed the workflow changes and remain responsible for the submitted result.
2026-10-09 07:56:17 +00:00
Boshen b43d1874c7 perf(ci): overlap dependent workflow steps (#27482)
## Summary

- start fixture cloning in the background while setup, cache restore, and tool installation continue
- install Playwright while WASM packages build and run JavaScript lint alongside Rust lint
- split NAPI package builds from tests so unit and e2e suites run in parallel on Linux and Windows
- retain explicit waits before every consumer and keep shared Cargo work serial

## CI timing

Observed single-run timings:

| Workflow | Before | After | Difference |
| --- | ---: | ---: | ---: |
| PR CI | [4m18s](https://github.com/oxc-project/oxc/actions/runs/37893395188) | [3m43s](https://github.com/oxc-project/oxc/actions/runs/37897201697) | **-35s (-14%)** |
| Main CI | [10m47s](https://github.com/oxc-project/oxc/actions/runs/37893796614) | Post-merge only | Main-only Windows jobs cannot run on a PR ref |
| Code Coverage job | [16m12s](https://github.com/oxc-project/oxc/actions/runs/37893796599) | [10m57s](https://github.com/oxc-project/oxc/actions/runs/37897225115) | **-5m15s (-32%) observed** |

Directly optimized PR jobs:

| Job | Before | After | Difference |
| --- | ---: | ---: | ---: |
| Test wasm32-wasip1-threads | 4m07s | 3m15s | **-52s (-21%)** |
| Test NAPI Compiler | 4m04s | 3m01s | **-63s (-26%)** |
| Lint | 2m00s | 1m51s | **-9s (-8%)** |
| Test Codegen | 2m10s | 1m52s | **-18s (-14%)** |

The NAPI post-cache path fell by about one minute after unit and e2e tests were overlapped. The coverage setup path itself improved from 29s to 26s; most of its larger end-to-end delta came from the instrumented command running 15m35s before versus 10m17s after, so that portion should be treated as cache/runner variance rather than attributed to this patch.

The [4m08s branch dispatch](https://github.com/oxc-project/oxc/actions/runs/37897226821) also passed and exercised modified Linux jobs skipped by PR path filters. Main-only Windows jobs were skipped by their existing job condition, so that run is validation rather than a comparison with main.

## Validation

- `target/debug/oxfmt --check .github/workflows/ci.yml .github/workflows/codecov.yml`
- `zizmor .github`
- `git diff --check`
- automatic PR CI, manual branch CI, and manual Code Coverage passed

## AI usage

Prepared with Codex. I reviewed the workflow changes and remain responsible for the submitted result.
2026-10-09 07:32:54 +00:00
Boshen 17a3aad5a7 perf(ci): parallelize independent workflow steps (#27476)
## Summary

- run independent setup, cache, artifact, and release preparation steps in parallel
- keep producer/consumer chains and shared-cache operations sequential
- apply grouping-only changes across CI, maintenance, and release workflows
- pin security-action v1.0.9 and restrict GitHub App tokens to required permissions
- use dedicated `$/.github/...` references for local actions and workflows

## CI timing

Measured from GitHub job timestamps on 2026-10-09. Setup-stage comparisons are used where the test workload differs between runs.

| Path | Sequential | Parallel | Difference |
| --- | ---: | ---: | ---: |
| Autofix job | 75–78 s | 51 s | 24–27 s faster (32–35%) |
| NAPI Compiler setup | 52 s | 36 s | 16 s faster (31%) |
| Codegen setup | 53 s | 38 s | 15 s faster (28%) |
| Lexer setup | 40–42 s | 26–28 s | 14 s faster (33–35%) |

The lexer baseline is the sum of the same run child-step durations; the other rows compare parallel runs with sequential workflow runs.

The [latest CI workflow](https://github.com/oxc-project/oxc/actions/runs/37891107675) completed in 5m24s. Its unchanged WASM job was the critical path at 5m08s, so this run demonstrates lower affected-job latency and runner time, but no material end-to-end workflow reduction.

Timing sources: [parallel autofix](https://github.com/oxc-project/oxc/actions/runs/37891107670), [sequential autofix A](https://github.com/oxc-project/oxc/actions/runs/37891199647), [sequential autofix B](https://github.com/oxc-project/oxc/actions/runs/37891193640), [sequential NAPI Compiler](https://github.com/oxc-project/oxc/actions/runs/37846341918), and [sequential Codegen](https://github.com/oxc-project/oxc/actions/runs/37815684125).

## Validation

- parsed every changed workflow as YAML
- verified all 31 parallel groups contain valid steps
- compared flattened workflows against main to confirm no steps or settings changed
- ran `zizmor .github` with zero findings
- passed the Security Analysis workflow
- ran `git diff --check`

Uses the GitHub Actions parallel steps feature: https://github.blog/changelog/2026-06-25-actions-steps-can-now-be-run-in-parallel/

## AI assistance

AI assistance was used to audit, implement, validate, and measure these workflow changes. The contributor remains responsible for reviewing and understanding the changes before merge.
2026-10-09 06:24:44 +00:00
camc314 bd57c1bdaf fix(ci): skip minify diff for missing Graphite base refs (#27414)
Skip the minify output comparison when its `graphite-base/...` base ref has disappeared from origin, and explain the skip in the job summary. Only the exact missing-ref diagnostic is tolerated; other fetch, checkout, and compilation failures still fail the step.

Addresses [this CI failure](https://github.com/oxc-project/oxc/actions/runs/37636681153/job/112844660465).
2026-10-07 14:55:59 +00:00
leaysgur c2e6d5fad2 feat(formatter_toml)!: add oxc_formatter_toml crate wrapping oxc-toml (#27365)
- Before: Oxfmt directly calls `oxc-toml`
- After: Oxfmt calls `oxc_formatter_toml` as like others
  - `oxc_formatter_toml` is wrapper for `oxc-toml` but aligned behavior with other formatters
  - Also embedded TOML (frontmatter, toml-in-markdown) are now formatted
  - Formatting logic still lives in `oxc-toml` side, not yet ported

And by bumping `oxc-toml`, TOML 1.1 syntax is supported.
2026-10-06 06:37:47 +00:00
renovate[bot] 976694f260 chore(deps): update taiki-e/install-action action to v2.87.22 (#27319)
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.87.20` → `v2.87.22` | `v2.87.24` (+1) |

---

### Release Notes

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

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

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

- Update `typos@latest` to 1.50.3.

- Update `tombi@latest` to 1.5.8.

- Update `prek@latest` to 0.5.4.

- Update `mise@latest` to 2026.9.16.

- Update `kache@latest` to 0.28.0.

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

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

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

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

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

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

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

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

- Update `wasmtime@latest` to 49.0.1.

- Update `uv@latest` to 0.12.19.

- Update `mise@latest` to 2026.9.13.

- Update `kingfisher@latest` to 2.7.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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-10-04 16:18:19 +00:00
camc314 c399fb24f9 ci(doc): update nightly toolchain to 2026-09-30 (#27260)
Update the docs CI toolchain from `nightly-2026-04-01` to `nightly-2026-09-30`. Remove the stale FIXME for the now-closed rust-lang/rust#154878.

Validated with the docs CI command, including `-D warnings` and `-Zrustdoc-mergeable-info`, and `just fmt`. Skipped the remainder of `just ready` at the contributor's request.
2026-10-01 14:26:56 +00:00
renovate[bot] 8c5a04ea0d chore(deps): update crate-ci/typos action to v1.50.3 (#27170)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

#### \[1.50.3] - 2026-09-25

##### Fixes

- Don'y panicwhen case-converting non-ASCII corrections

</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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-28 23:00:27 +00:00
overlookmotel a5290a690b test(lexer): add lexer wallclock benchmark (#27110)
Add wallclock benchmarks for `oxc_lexer` vs old lexer (`oxc_parser`).

Benchmarks can be run locally with `just bench-lexer`, and also run in CI for all PRs which touch `oxc_lexer`.

Running wallclock benchmarks on a noisy CI machine is not ideal, but it at least gives some rough guidance. It also gives me *some* way to run benchmarks on the x86_86 SIMD implementation, which otherwise I can't do, as I only have access to aarch64 Macs.
2026-09-27 22:16:11 +00:00
renovate[bot] 692f768f8b chore(deps): update github actions (#27106)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | minor | `1.177.0` → `1.178.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.87.14` → `v2.87.20` | `v2.87.21` |

---

### Release Notes

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

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

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

- Update `uv@latest` to 0.12.18.

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

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

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

- Update `wasmtime@latest` to 49.0.0.

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

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

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

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

- Update `oxfmt@latest` to 1.84.0.

- Update `mise@latest` to 2026.9.12.

- Update `kache@latest` to 0.26.3.

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

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

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

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

- Update `uv@latest` to 0.12.17.

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

- Update `kingfisher@latest` to 2.5.0.

- Update `kache@latest` to 0.25.0.

- Update `git-cliff@latest` to 2.14.2.

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

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

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

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

- Update `uv@latest` to 0.12.16.

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

- Update `protoc@latest` to 3.36.2.

- Update `mise@latest` to 2026.9.11.

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

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

- Update `syft@latest` to 1.52.0.

- Update `mise@latest` to 2026.9.10.

- Update `kingfisher@latest` to 2.4.0.

- Update `kache@latest` to 0.23.1.

- Update `coreutils@latest` to 0.12.0.

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

</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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-27 17:04:37 +00:00
Boshen f585cb42cd feat(napi): add threadless WASI builds (#26898)
## Summary

- add threadless `wasm32-wasip1` builds and generated loaders for parser, minify, transform, transform-react, and transform-relay
- use the threadless bindings for browser and Cloudflare Workers while preserving threaded WASI and WebContainer fallbacks
- build and publish the new target in CI and release workflows

Closes #25271

## Testing

- native NAPI builds and package tests: 1,091 passed
- parser Chromium browser tests passed
- local workerd smoke tests passed for all five packages
- deployed Workers using local package tarballs passed for all five packages and reported `wasm32-wasip1`
- packed main-package file lists match the published `0.150.0` packages
- `just fmt`, `just check`, `just lint`, `just doc`, `just ast`, targeted Oxlint, typos, and `git diff --check` passed
- `just ready` reaches three unrelated Oxlint ANSI-color snapshot mismatches in this non-interactive environment; no pending snapshots remain

## AI assistance

Codex was used to help implement and test this change. The contributor remains responsible for reviewing and understanding the changes before merge.
2026-09-23 06:54:41 +00:00
overlookmotel e18b83ed54 feat(lexer): require popcnt CPU feature for SIMD implementation (#26931)
Split out from #26919 to reduce the size of the diff on that PR.

That PR requires `popcnt` CPU feature for SIMD implementation. Alter all `#[cfg(...)]` blocks to include `target_feature = "popcnt"`.
2026-09-22 16:27:22 +00:00
renovate[bot] 7a30e9173f chore(deps): update github actions (#26867)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[codecov/codecov-action](https://redirect.github.com/codecov/codecov-action)
| action | minor | `v7.0.0` → `v7.1.1` | |
|
[namespacelabs/nscloud-cache-action](https://redirect.github.com/namespacelabs/nscloud-cache-action)
| action | minor | `v1.6.1` → `v1.7.0` | |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.87.10` → `v2.87.14` | `v2.87.17` (+2) |

---

### Release Notes

<details>
<summary>codecov/codecov-action (codecov/codecov-action)</summary>

###
[`v7.1.1`](https://redirect.github.com/codecov/codecov-action/compare/v7.1.0...v7.1.1)

[Compare
Source](https://redirect.github.com/codecov/codecov-action/compare/v7.1.0...v7.1.1)

###
[`v7.1.0`](https://redirect.github.com/codecov/codecov-action/compare/v7.0.0...v7.1.0)

[Compare
Source](https://redirect.github.com/codecov/codecov-action/compare/v7.0.0...v7.1.0)

</details>

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

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

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

##### What's Changed

- fix: Stabilize Brew and Maven cache mode tests by
[@&#8203;sebawita](https://redirect.github.com/sebawita) in
[#&#8203;170](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/170)
- fix: update actions toolkit to 0.5.0 by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;175](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/175)
- Add cache miss documentation hint by
[@&#8203;sebawita](https://redirect.github.com/sebawita) in
[#&#8203;169](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/169)
- fix: update vulnerable transitive dependencies by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;176](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/176)
- test: move Vitest mocks to module scope by
[@&#8203;rcrowe](https://redirect.github.com/rcrowe) in
[#&#8203;177](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/177)

##### New Contributors

- [@&#8203;sebawita](https://redirect.github.com/sebawita) made their
first contribution in
[#&#8203;170](https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/170)

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

</details>

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

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

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

- Update `vacuum@latest` to 0.30.6.

- Update `uv@latest` to 0.12.15.

- Update `typos@latest` to 1.50.2.

- Update `sccache@latest` to 0.18.0.

- Update `oxfmt@latest` to 1.83.0.

- Update `mise@latest` to 2026.9.9.

- Update `kingfisher@latest` to 2.3.0.

- Update `kache@latest` to 0.22.0.

- Update `biome@latest` to 2.5.14.

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

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

- Update `zola@latest` to 0.23.6.

- Update `vacuum@latest` to 0.30.5.

- Update `tombi@latest` to 1.5.5.

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

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

- Update `prek@latest` to 0.5.3.

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

- Update `mise@latest` to 2026.9.7.

- Update `kache@latest` to 0.21.0.

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

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

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

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

- Update `wasmtime@latest` to 48.0.2.

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

- Update `uv@latest` to 0.12.13.

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

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

- Update `mise@latest` to 2026.9.5.

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

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

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

- Update `biome@latest` to 2.5.13.

- Update `uv@latest` to 0.12.12.

- Update `mise@latest` to 2026.9.4.

- Update `kache@latest` to 0.19.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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-20 17:44:29 +00:00
renovate[bot] e67779de09 chore(deps): update crate-ci/typos action to v1.50.2 (#26811)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

#### \[1.50.2] - 2026-09-15

##### Fixes

- Don't panic when files being examined are removed

</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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDEuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-18 15:48:45 +00:00
leaysgur 7717813ee7 feat(formatter_markdown): implement markdown formatter (#26434)
- [x] Add `oxc_formatter_markdown` crate
  - `publish = false` as always
- [x] Implement basic syntax formatting
- [x] Implement GFM, extended syntaxes
- [x] Support directive container `::: foo`
- [x] Fixed reported, upstream bugs
- [x] Publish `oxc_markdown_parser` and use it
- [x] Bump `Cargo.toml` version
- [x] ~~Embedded code fence w/ Oxfmt integration~~ => Later PR
2026-09-18 08:28:32 +00:00
renovate[bot] 56cd51f1d9 chore(deps): update github actions (#26602)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[semgrep/semgrep](https://redirect.github.com/semgrep/semgrep-proprietary)
| container | patch | `1.176.0` → `1.176.1` | `1.177.0` |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | patch | `v2.87.4` → `v2.87.10` | `v2.87.12` (+1) |

---

### Release Notes

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

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

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

- Update `zizmor@latest` to 1.30.1.

- Update `uv@latest` to 0.12.11.

- Update `tombi@latest` to 1.5.4.

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

- Update `mise@latest` to 2026.9.3.

- Update `kingfisher@latest` to 2.2.0.

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

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

- Update `oxfmt@latest` to 1.82.0.

- Update `mise@latest` to 2026.9.2.

- Update `kache@latest` to 0.18.0.

- Update `d2@latest` to 0.9.0.

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

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

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

- Update `shfmt@latest` to 3.14.1.

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

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

- Update `dprint@latest` to 0.57.4.

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

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

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

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

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

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

- Update `uv@latest` to 0.12.10.

- Update `tombi@latest` to 1.5.2.

- Update `rclone@latest` to 1.75.1.

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

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

- Update `rafn@latest` to 0.1.6.

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

- Update `dprint@latest` to 0.57.1.

- Update `convco@latest` to 0.7.2.

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

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

- Update `vacuum@latest` to 0.30.3.

- Update `uv@latest` to 0.12.9.

- Update `typos@latest` to 1.50.1.

- Update `tombi@latest` to 1.5.1.

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

- Update `prek@latest` to 0.5.2.

- Update `oxfmt@latest` to 1.81.0.

- Update `mise@latest` to 2026.9.1.

- Update `martin@latest` to 1.15.0.

- Update `git-cliff@latest` to 2.14.1.

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

- Update `cargo-deb@latest` to 3.8.0.

- Update `biome@latest` to 2.5.12.

</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:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-13 17:35:07 +00: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 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
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 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
overlookmotelandCameron 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 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
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
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] 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
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
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