Commit Graph

1048 Commits

Author SHA1 Message Date
Boshen 763ade0fb0 ci: fix release napi 2025-03-07 16:21:45 +08:00
Boshen 80820085bb ci: remove --dry-run from pnpm napi pre-publish 2025-03-07 15:04:59 +08:00
Boshen 0bbb197c87 ci(npm): rework release pipeline (#9581) 2025-03-07 11:49:50 +08:00
overlookmotel 2985bf3d37 ci(wasm): check wasm32-wasip1-threads build (#9569)
Duplicate of #9555, but just stacked on top of #9566.

`napi-rs` for some reason omits the `export * from '@oxc-project/types';` line from `index.d.ts` when building for WASM.

I don't know how to fix that, so added a hacky script to fix up `index.d.ts` manually. This is not at all ideal, but at least it now compiles and CI passes.
2025-03-06 01:34:21 +00:00
overlookmotel a59b9fe4cb ci(ast_tools): move AST changes watch list file (#9564)
Pure refactor. Move the YAML file for AST changes watch list to a `generated` sub-directory. This follows our convention that all generated files go in a `generated` directory.
2025-03-05 13:22:59 +00:00
Boshen 679681c18d ci: remove running tests in reusable_release_napi.yml
It's already run in previous steps.
2025-03-05 14:41:08 +08:00
overlookmotel a9889f5c9a ci(benchmarks): benchmark NAPI parser (#9519)
Add benchmarks for NAPI parser. Benchmarks cover both "standard" mode and "raw transfer" mode.

Codspeed say they've sorted out the problems with wide variance in NodeJS benchmarks, so hopefully they won't wave all over the place, the way they did last year when we first tried to add these benchmarks.

What we also found last year is that Codspeed's measures didn't reflect real-world wallclock measurements at all when comparing code running on Rust side vs JS side. Raw transfer moves a lot of work from Rust side to JS side, and so likely the bench results will be misleading if comparing "standard" vs "raw".

I've added benchmarks for both, not to compare the 2, but because I think there's room to improve the performance of both "standard" and "raw" independently.
2025-03-05 02:21:01 +00:00
overlookmotel d55dbe2d78 feat(ast/estree): raw transfer (experimental) (#9516)
First version of raw transfer (#2409).

Provides a solid speed-up transferring data from Rust to JS. Further iterations will speed it up further.

Tests check that output via raw transfer matches output via JSON transfer exactly for all of Test262 which Acorn is able to parse. It should also match for TypeScript and JSX, but that's not covered by tests as yet.

However, I think we should consider this experimental for now because there are a few rough edges (discussed below).

Therefore I've put it behind an "experimental" flag:

```js
const ret = parseSync(filename, code, { experimentalRawTransfer: true });
console.log(ret.program);
```

### How it works

* JS creates an `ArrayBuffer` and passes it to Rust.
* Rust creates an `Allocator` using that buffer as its backing memory.
* Rust parses the AST into that allocator (including comments).
* Rust also converts module record and errors into arena types, and writes them into the allocator.
* Rust writes into the end of the buffer the offset at which data begins in the buffer.
* Control passes back to JS.
* JS code decodes data in the buffer, and creates JS objects fitting the ESTree shape.

There is *no* serialization step on Rust side. There is no JSON encoding or decoding involved. These are the main sources of the speed gain.

### Preconditions

The reason all this works is that all AST types (and other transferred types) are `#[repr(C)]`. So the memory layouts of those types are specified, and can be statically calculated.

`oxc_ast_tools` does those layout calculations, and generates the JS-side deserializer code based on its knowledge of what offsets struct fields are at, what the discriminants of enums are etc.

### Rough edges

There are a few rough edges.

#### `Allocator::from_raw_parts`

This PR adds a method `Allocator::from_raw_parts`. It creates a `bumpalo::Bump` that uses an existing block of memory as the allocator's backing memory. This ability is required, but it's not an API that `bumpalo` offers (and the maintainer was not willing to add it).

The implementation of `Allocator::from_raw_parts` is extremely hacky. It depends on internal implementation details of `bumpalo` which are not specified. And the method used to determine the memory layout of `Bump` depends on unspecified details of Rust's memory model. So, while it does seem to work in practice, it is, strictly speaking, UB.

It could break in a future Rust version, or with esoteric compiler flags e.g. [`-Zrandomize-layout`](https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/randomize-layout.html). And it could break if we update `bumpalo` from the version we're currently using. For this reason, this PR pins the version of `bumpalo` in `Cargo.toml`.

I think this OK for now, but it's unpleasantly fragile.

We can resolve all these problems by replacing `bumpalo` with our own arena allocator (which I think we should do anyway, for other reasons).

In the meantime, `Allocator::from_raw_parts` is behind a cargo feature `from_raw_parts`, to avoid it being used anywhere else in our codebase.

#### Unspecified type layouts

As noted above, all AST types are `#[repr(C)]`, so their layout is specified and stable. There are a few types which are outside of our control, though:

1. `Vec<T>`. We use `allocator_api2::vec::Vec`, which is not `#[repr(C)]`.
2. `&str`. I don't believe the layout of this type is specified.
3. `Option<T>`.

For production-grade stability, we need to try to work around these.

`Vec` - we should replace `allocator_api2::vec::Vec` with our own `Vec` type. This will also allow us to reduce its size (https://github.com/oxc-project/backlog/issues/18).

`&str` - again, we need our own string slice type, to work around the problem of lone surrogates (#3526) and to make it more efficient (https://github.com/oxc-project/backlog/issues/46). We can make its memory layout stable at the same time.

`Option<T>` is tricky. We don't want to replace Rust's `Option` because of the niche optimization benefits it gives. I'm not sure this one is 100% soluable, but Rust gives at least *some* guarantees about the layout of `Option`. Maybe we can avoid using `Option` in the AST in ways which go outside that specification.

#### Large buffers

For speed, raw transfer requires the entire AST to be in a single contiguous memory region, and for the start of that region to be aligned on 4 GiB.

JS does not support 64-bit integers, so offset calculations are much cheaper when the buffer is aligned on 4 GiB and no larger than 4 GiB - because then all pointers have the same value in their top 32 bits. So the pointer can be treated as a 32-bit value (bottom 32 bits only). JS can handle 32 bit integers no problem.

When creating a large buffer on JS side, it *mostly* ends up aligned on a 4 GiB boundary anyway, but occasionally it doesn't. So in order to ensure the buffer has at least 1 region within it which is aligned on 4 GiB, and 2 GiB in size, we have to create a 6 GiB buffer.

I *think* this is OK. On systems with virtual memory, allocating 6 GiB only reserves 6 GiB of *virtual* memory. Physical memory is only consumed when the pages of that allocation are actually written to.

But I may be missing something here, and memory exhaustion might be a danger. I think we need some real-world usage to find out.

*Possibly* we could reduce the need for so much memory if JS deserializer called into a small WASM module to do offset calculations. WASM can work with `i64` values. Or there may be other solutions.

#### Endianness

Currently only little-endian systems are supported. Probably in practice this doesn't matter much, but it'd be ideal to cover big-endian too.
2025-03-04 14:40:35 +00:00
renovate[bot] 3ded4a6780 chore(deps): update crate-ci/typos action to v1.30.1 (#9528) 2025-03-04 10:55:14 +08:00
renovate 1ed18bdafa chore(deps): update github-actions (#9485)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://redirect.github.com/actions/cache) | action | patch | `v4.2.1` -> `v4.2.2` |
| [actions/download-artifact](https://redirect.github.com/actions/download-artifact) | action | patch | `v4.1.8` -> `v4.1.9` |
| [codecov/codecov-action](https://redirect.github.com/codecov/codecov-action) | action | minor | `v5.3.1` -> `v5.4.0` |
| [peter-evans/create-pull-request](https://redirect.github.com/peter-evans/create-pull-request) | action | patch | `v7.0.6` -> `v7.0.7` |
| [taiki-e/install-action](https://redirect.github.com/taiki-e/install-action) | action | patch | `v2.49.1` -> `v2.49.10` |

---

### Release Notes

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

### [`v4.2.2`](https://redirect.github.com/actions/cache/releases/tag/v4.2.2)

[Compare Source](https://redirect.github.com/actions/cache/compare/v4.2.1...v4.2.2)

##### What's Changed

> \[!IMPORTANT]
> As a reminder, there were important backend changes to release v4.2.0, see [those release notes](https://redirect.github.com/actions/cache/releases/tag/v4.2.0) and [the announcement](https://redirect.github.com/actions/cache/discussions/1510) for more details.

-   Bump [@&#8203;actions/cache](https://redirect.github.com/actions/cache) to v4.0.2 by [@&#8203;robherley](https://redirect.github.com/robherley) in [https://github.com/actions/cache/pull/1560](https://redirect.github.com/actions/cache/pull/1560)

**Full Changelog**: https://github.com/actions/cache/compare/v4.2.1...v4.2.2

</details>

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

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

[Compare Source](https://redirect.github.com/actions/download-artifact/compare/v4.1.8...v4.1.9)

##### What's Changed

-   Add workflow file for publishing releases to immutable action package by [@&#8203;Jcambass](https://redirect.github.com/Jcambass) in [https://github.com/actions/download-artifact/pull/354](https://redirect.github.com/actions/download-artifact/pull/354)
-   docs: small migration fix by [@&#8203;froblesmartin](https://redirect.github.com/froblesmartin) in [https://github.com/actions/download-artifact/pull/370](https://redirect.github.com/actions/download-artifact/pull/370)
-   Update MIGRATION.md by [@&#8203;andyfeller](https://redirect.github.com/andyfeller) in [https://github.com/actions/download-artifact/pull/372](https://redirect.github.com/actions/download-artifact/pull/372)
-   Update artifact package to 2.2.2 by [@&#8203;yacaovsnc](https://redirect.github.com/yacaovsnc) in [https://github.com/actions/download-artifact/pull/380](https://redirect.github.com/actions/download-artifact/pull/380)

##### New Contributors

-   [@&#8203;Jcambass](https://redirect.github.com/Jcambass) made their first contribution in [https://github.com/actions/download-artifact/pull/354](https://redirect.github.com/actions/download-artifact/pull/354)
-   [@&#8203;froblesmartin](https://redirect.github.com/froblesmartin) made their first contribution in [https://github.com/actions/download-artifact/pull/370](https://redirect.github.com/actions/download-artifact/pull/370)
-   [@&#8203;andyfeller](https://redirect.github.com/andyfeller) made their first contribution in [https://github.com/actions/download-artifact/pull/372](https://redirect.github.com/actions/download-artifact/pull/372)
-   [@&#8203;yacaovsnc](https://redirect.github.com/yacaovsnc) made their first contribution in [https://github.com/actions/download-artifact/pull/380](https://redirect.github.com/actions/download-artifact/pull/380)

**Full Changelog**: https://github.com/actions/download-artifact/compare/v4...v4.1.9

</details>

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

### [`v5.4.0`](https://redirect.github.com/codecov/codecov-action/blob/HEAD/CHANGELOG.md#v540)

[Compare Source](https://redirect.github.com/codecov/codecov-action/compare/v5.3.1...v5.4.0)

##### What's Changed

-   update wrapper submodule to 0.2.0, add recurse_submodules arg by [@&#8203;matt-codecov](https://redirect.github.com/matt-codecov) in [https://github.com/codecov/codecov-action/pull/1780](https://redirect.github.com/codecov/codecov-action/pull/1780)
-   build(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1775](https://redirect.github.com/codecov/codecov-action/pull/1775)
-   build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1776](https://redirect.github.com/codecov/codecov-action/pull/1776)
-   build(deps): bump github/codeql-action from 3.28.9 to 3.28.10 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1777](https://redirect.github.com/codecov/codecov-action/pull/1777)
-   Clarify in README that `use_pypi` bypasses integrity checks too by [@&#8203;webknjaz](https://redirect.github.com/webknjaz) in [https://github.com/codecov/codecov-action/pull/1773](https://redirect.github.com/codecov/codecov-action/pull/1773)
-   Fix use of safe.directory inside containers by [@&#8203;Flamefire](https://redirect.github.com/Flamefire) in [https://github.com/codecov/codecov-action/pull/1768](https://redirect.github.com/codecov/codecov-action/pull/1768)
-   Fix description for report_type input by [@&#8203;craigscott-crascit](https://redirect.github.com/craigscott-crascit) in [https://github.com/codecov/codecov-action/pull/1770](https://redirect.github.com/codecov/codecov-action/pull/1770)
-   build(deps): bump github/codeql-action from 3.28.8 to 3.28.9 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1765](https://redirect.github.com/codecov/codecov-action/pull/1765)
-   Fix a typo in the example by [@&#8203;miranska](https://redirect.github.com/miranska) in [https://github.com/codecov/codecov-action/pull/1758](https://redirect.github.com/codecov/codecov-action/pull/1758)
-   build(deps): bump github/codeql-action from 3.28.5 to 3.28.8 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1757](https://redirect.github.com/codecov/codecov-action/pull/1757)
-   build(deps): bump github/codeql-action from 3.28.1 to 3.28.5 by [@&#8203;app/dependabot](https://redirect.github.com/app/dependabot) in [https://github.com/codecov/codecov-action/pull/1753](https://redirect.github.com/codecov/codecov-action/pull/1753)

**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.3.1..v5.4.0

</details>

<details>
<summary>peter-evans/create-pull-request (peter-evans/create-pull-request)</summary>

### [`v7.0.7`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v7.0.7): Create Pull Request v7.0.7

[Compare Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v7.0.6...v7.0.7)

⚙️ Fixes an issue with commit signing where modifications to the same file in multiple commits squash into the first commit.

#### What's Changed

-   build(deps): bump [@&#8203;octokit/core](https://redirect.github.com/octokit/core) from 6.1.2 to 6.1.3 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3593](https://redirect.github.com/peter-evans/create-pull-request/pull/3593)
-   build(deps-dev): bump [@&#8203;types/node](https://redirect.github.com/types/node) from 18.19.68 to 18.19.70 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3594](https://redirect.github.com/peter-evans/create-pull-request/pull/3594)
-   Update distribution by [@&#8203;actions-bot](https://redirect.github.com/actions-bot) in [https://github.com/peter-evans/create-pull-request/pull/3603](https://redirect.github.com/peter-evans/create-pull-request/pull/3603)
-   build(deps-dev): bump typescript from 5.7.2 to 5.7.3 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3610](https://redirect.github.com/peter-evans/create-pull-request/pull/3610)
-   build(deps): bump octokit dependencies by [@&#8203;peter-evans](https://redirect.github.com/peter-evans) in [https://github.com/peter-evans/create-pull-request/pull/3618](https://redirect.github.com/peter-evans/create-pull-request/pull/3618)
-   docs: add workflow tip for showing message via workflow command by [@&#8203;ybiquitous](https://redirect.github.com/ybiquitous) in [https://github.com/peter-evans/create-pull-request/pull/3626](https://redirect.github.com/peter-evans/create-pull-request/pull/3626)
-   build(deps-dev): bump eslint-plugin-prettier from 5.2.1 to 5.2.3 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3628](https://redirect.github.com/peter-evans/create-pull-request/pull/3628)
-   build(deps): bump node-fetch-native from 1.6.4 to 1.6.6 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3627](https://redirect.github.com/peter-evans/create-pull-request/pull/3627)
-   build(deps-dev): bump undici from 6.21.0 to 6.21.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3630](https://redirect.github.com/peter-evans/create-pull-request/pull/3630)
-   build(deps-dev): bump [@&#8203;types/node](https://redirect.github.com/types/node) from 18.19.70 to 18.19.71 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3629](https://redirect.github.com/peter-evans/create-pull-request/pull/3629)
-   Update distribution by [@&#8203;actions-bot](https://redirect.github.com/actions-bot) in [https://github.com/peter-evans/create-pull-request/pull/3647](https://redirect.github.com/peter-evans/create-pull-request/pull/3647)
-   build(deps-dev): bump [@&#8203;types/node](https://redirect.github.com/types/node) from 18.19.71 to 18.19.74 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3657](https://redirect.github.com/peter-evans/create-pull-request/pull/3657)
-   build(deps-dev): bump [@&#8203;types/node](https://redirect.github.com/types/node) from 18.19.74 to 18.19.75 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3663](https://redirect.github.com/peter-evans/create-pull-request/pull/3663)
-   build(deps): bump [@&#8203;octokit/plugin-rest-endpoint-methods](https://redirect.github.com/octokit/plugin-rest-endpoint-methods) from 13.3.0 to 13.3.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3670](https://redirect.github.com/peter-evans/create-pull-request/pull/3670)
-   build(deps-dev): bump prettier from 3.4.2 to 3.5.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3671](https://redirect.github.com/peter-evans/create-pull-request/pull/3671)
-   Update distribution by [@&#8203;actions-bot](https://redirect.github.com/actions-bot) in [https://github.com/peter-evans/create-pull-request/pull/3680](https://redirect.github.com/peter-evans/create-pull-request/pull/3680)
-   build(deps): bump [@&#8203;octokit/request-error](https://redirect.github.com/octokit/request-error) from 6.1.6 to 6.1.7 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3685](https://redirect.github.com/peter-evans/create-pull-request/pull/3685)
-   build(deps): bump [@&#8203;octokit/plugin-paginate-rest](https://redirect.github.com/octokit/plugin-paginate-rest) from 11.4.0 to 11.4.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3688](https://redirect.github.com/peter-evans/create-pull-request/pull/3688)
-   build(deps): bump [@&#8203;octokit/endpoint](https://redirect.github.com/octokit/endpoint) from 10.1.2 to 10.1.3 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3700](https://redirect.github.com/peter-evans/create-pull-request/pull/3700)
-   Update distribution by [@&#8203;actions-bot](https://redirect.github.com/actions-bot) in [https://github.com/peter-evans/create-pull-request/pull/3691](https://redirect.github.com/peter-evans/create-pull-request/pull/3691)
-   build(deps-dev): bump prettier from 3.5.0 to 3.5.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3709](https://redirect.github.com/peter-evans/create-pull-request/pull/3709)
-   build(deps-dev): bump eslint-import-resolver-typescript from 3.7.0 to 3.8.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3710](https://redirect.github.com/peter-evans/create-pull-request/pull/3710)
-   build(deps): bump [@&#8203;octokit/plugin-paginate-rest](https://redirect.github.com/octokit/plugin-paginate-rest) from 11.4.1 to 11.4.2 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3713](https://redirect.github.com/peter-evans/create-pull-request/pull/3713)
-   build(deps-dev): bump [@&#8203;types/node](https://redirect.github.com/types/node) from 18.19.75 to 18.19.76 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3712](https://redirect.github.com/peter-evans/create-pull-request/pull/3712)
-   build(deps): bump [@&#8203;octokit/core](https://redirect.github.com/octokit/core) from 6.1.3 to 6.1.4 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/peter-evans/create-pull-request/pull/3711](https://redirect.github.com/peter-evans/create-pull-request/pull/3711)
-   Update distribution by [@&#8203;actions-bot](https://redirect.github.com/actions-bot) in [https://github.com/peter-evans/create-pull-request/pull/3736](https://redirect.github.com/peter-evans/create-pull-request/pull/3736)
-   Use showFileAtRefBase64 to read per-commit file contents by [@&#8203;grahamc](https://redirect.github.com/grahamc) in [https://github.com/peter-evans/create-pull-request/pull/3744](https://redirect.github.com/peter-evans/create-pull-request/pull/3744)

#### New Contributors

-   [@&#8203;ybiquitous](https://redirect.github.com/ybiquitous) made their first contribution in [https://github.com/peter-evans/create-pull-request/pull/3626](https://redirect.github.com/peter-evans/create-pull-request/pull/3626)
-   [@&#8203;grahamc](https://redirect.github.com/grahamc) made their first contribution in [https://github.com/peter-evans/create-pull-request/pull/3744](https://redirect.github.com/peter-evans/create-pull-request/pull/3744)

**Full Changelog**: https://github.com/peter-evans/create-pull-request/compare/v7.0.6...v7.0.7

</details>

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

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

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

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

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

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

-   Update `typos@latest` to 1.30.0.

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

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

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

-   Update `cargo-audit@latest` to 0.21.2.

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

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

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

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

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

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

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

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

-   Update `wasmtime@latest` to 30.0.2.

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

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

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

-   Update `typos@latest` to 1.29.10.

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

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

-   Update `wash@latest` to 0.39.0.

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

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

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

-   Update `sccache@latest` to 0.10.0.

-   Update `cargo-machete@latest` to 0.8.0.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 10pm on monday" in timezone Asia/Shanghai, Automerge - "before 10pm on monday" in timezone Asia/Shanghai.

🚦 **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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
2025-03-02 21:36:37 +00:00
Boshen e6dbf797b7 ci(benchmark): shard codspeed (#9461)
closes #9452
2025-03-01 18:19:16 +08:00
renovate f074815298 chore(deps): update crate-ci/typos action to v1.30.0 (#9453)
This PR contains the following updates:

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

---

### Release Notes

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

### [`v1.30.0`](https://redirect.github.com/crate-ci/typos/compare/v1.29.10...v1.30.0)

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "before 10pm on monday" in timezone Asia/Shanghai.

🚦 **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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
2025-03-01 08:07:24 +00:00
overlookmotel e2423e113a ci(miri): run oxc_data_structures tests under Miri on CI (#9380)
`oxc_data_structures` crate is stuffed full of unsafe code. Run its
tests under Miri on CI.

We already had `crates/oxc_data_structures/**` included in the filter
for Miri CI task, but it wasn't actually running the tests for the
crate. This appears to have been an oversight.
2025-02-26 12:20:01 +00:00
overlookmotel 28eb816b05 ci(miri): run Miri on oxc_ast crate (#9370)
#9359 introduced unsafe code to `oxc_ast` crate. Run Miri on `oxc_ast`
crate, but only when the files containing that unsafe code are altered.
2025-02-26 10:31:12 +00:00
renovate[bot] 3c35485f53 chore(deps): update crate-ci/typos action to v1.29.10 (#9358) 2025-02-26 10:04:04 +08:00
renovate[bot] 669b94526c chore(deps): update taiki-e/install-action action to v2.49.1 (#9328) 2025-02-24 19:26:15 +08:00
renovate[bot] 98d537e1f4 chore(deps): update github-actions (#9305)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | minor | `v3.3.1` -> `v3.4.0` |
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `v4.6.0` -> `v4.6.1` |
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v3.28.9` -> `v3.28.10` |
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.48.15` -> `v2.49.0` |

---

### Release Notes

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

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

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

##### What's Changed

##### <!-- 0 -->🚀 Features

- feat: add `GH_MATRIX` and `GH_STRATEGY` env variables by
[@&#8203;fargito](https://redirect.github.com/fargito) in
[https://github.com/CodSpeedHQ/action/pull/123](https://redirect.github.com/CodSpeedHQ/action/pull/123)
- Add run_part to upload metadata by
[@&#8203;fargito](https://redirect.github.com/fargito) in
[#&#8203;57](https://redirect.github.com/CodSpeedHQ/runner/pull/57)

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

- Fix stderr error display by
[@&#8203;art049](https://redirect.github.com/art049) in
[#&#8203;63](https://redirect.github.com/CodSpeedHQ/runner/pull/63)

**Full Changelog**:
https://github.com/CodSpeedHQ/action/compare/v3.3.1...v3.4.0
**Full Runner Changelog**:
https://github.com/CodSpeedHQ/runner/blob/main/CHANGELOG.md

</details>

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

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

[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v4.6.0...v4.6.1)

#### What's Changed

- Update to use artifact 2.2.2 package by
[@&#8203;yacaovsnc](https://redirect.github.com/yacaovsnc) in
[https://github.com/actions/upload-artifact/pull/673](https://redirect.github.com/actions/upload-artifact/pull/673)

**Full Changelog**:
https://github.com/actions/upload-artifact/compare/v4...v4.6.1

</details>

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v3.28.10`](https://redirect.github.com/github/codeql-action/releases/tag/v3.28.10)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v3.28.9...v3.28.10)

### CodeQL Action Changelog

See the [releases
page](https://redirect.github.com/github/codeql-action/releases) for the
relevant changes to the CodeQL CLI and language packs.

#### 3.28.10 - 21 Feb 2025

- Update default CodeQL bundle version to 2.20.5.
[#&#8203;2772](https://redirect.github.com/github/codeql-action/pull/2772)
- Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS.
[#&#8203;2768](https://redirect.github.com/github/codeql-action/pull/2768)

See the full
[CHANGELOG.md](https://redirect.github.com/github/codeql-action/blob/v3.28.10/CHANGELOG.md)
for more information.

</details>

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

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

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

- Allow installing pre-release versions using binstall.
([#&#8203;868](https://redirect.github.com/taiki-e/install-action/pull/868))

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

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

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

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

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

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

-   Update `wasmtime@latest` to 30.0.1.

-   Update `syft@latest` to 1.20.0.

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

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

-   Update `cargo-udeps@latest` to 0.1.55.

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

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

-   Update `typos@latest` to 1.29.9.

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

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

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

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

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

-   Update `wasmtime@latest` to 30.0.0.

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

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

-   Update `typos@latest` to 1.29.8.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 10pm on monday" in timezone
Asia/Shanghai, Automerge - "before 10pm on monday" in timezone
Asia/Shanghai.

🚦 **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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-23 21:55:16 +00:00
Boshen 55dfb48af8 Revert "ci: reset broken .d.ts files (again)" (#9290)
This reverts commit 414ce78a80.
2025-02-22 13:42:13 +08:00
Boshen 414ce78a80 ci: reset broken .d.ts files (again) 2025-02-22 11:55:56 +08:00
Boshen c933c6d67a chore(deps): bump napi (#9274) 2025-02-21 23:33:21 +08:00
Boshen c8147329c0 ci: fix windows (#9268) 2025-02-21 21:23:18 +08:00
renovate[bot] ed6bd5dc8b chore(deps): update crate-ci/typos action to v1.29.9 (#9261) 2025-02-21 11:25:09 +08:00
renovate[bot] 0fa92cfadb chore(deps): update crate-ci/typos action to v1.29.8 (#9241) 2025-02-20 09:04:00 +08:00
renovate[bot] fd6f1355d9 chore(deps): update github-actions (#9213) 2025-02-19 09:32:18 +08:00
Boshen 5d2028d2c1 ci: temporarily reset the broken napi .d.ts files (#9197) 2025-02-18 18:48:35 +08:00
Boshen b20fd6c4b0 ci: change the cache-key for napi 2025-02-18 17:05:26 +08:00
Alexander S. 34747e2bbe ci(linter): bumpoxlint-migrate when releasing oxlint (#9178)
---------

Co-authored-by: Boshen <boshenc@gmail.com>
2025-02-18 17:01:23 +08:00
renovate[bot] e8fa09174f chore(deps): update taiki-e/install-action action to v2.48.14 (#9184) 2025-02-18 09:02:47 +08:00
renovate[bot] dd4c9d7089 chore(deps): update taiki-e/install-action action to v2.48.13 (#9166) 2025-02-17 11:54:57 +08:00
Boshen 0715e34efb chore(deps): update crate-ci/typos action to v1.29.7 (#9131) 2025-02-15 02:24:51 +00:00
Boshen de57b0fb90 ci: fix linter benchmark dir 2025-02-14 16:20:19 +08:00
Boshen a8b83de740 ci: fix codspeed upload dir 2025-02-14 15:52:17 +08:00
Boshen 60e0498a60 ci: fix linter benchmark 2025-02-14 15:34:44 +08:00
Boshen 79fa8e7410 ci: fix codspeed dir (#9099)
Latest version changed target dir
https://github.com/CodSpeedHQ/codspeed-rust/releases
2025-02-14 14:09:10 +08:00
Boshen ff4ab88ed9 chore(deps): update github-actions (#9097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-14 13:37:06 +08:00
Boshen 88af8761c8 ci: fix release_runtime runtime working-directory 2025-02-12 11:41:00 +08:00
Boshen d7512a2684 chore(deps): update github-actions (#9000) 2025-02-10 07:06:07 +00:00
Boshen 64562f4b29 chore(deps): update crate-ci/typos action to v1.29.5 (#8999) 2025-02-10 06:58:06 +00:00
Boshen 951b2d53d3 feat(npm/runtime): add @oxc-project/runtime package (#8595)
closes #7422
2025-02-06 23:06:56 +08:00
Boshen e453be4bf2 ci: wait 3 minutes for oxlint sub-packages to sync on npm 2025-02-06 14:29:29 +08:00
Boshen 0afbc7b2bd ci: download ast-grep from npm 2025-02-02 17:18:37 +08:00
Boshen 003c190d93 chore(deps): update github-actions (#8760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 13:30:28 +08:00
Boshen ad87fc7a53 ci: download ast-grep from github (#8728) 2025-01-26 18:19:00 +08:00
Boshen b7f13e636e feat(ast): implement utf8 to utf16 span converter (#8687)
closes #8629
2025-01-24 16:57:44 +00:00
Boshen 4f6d164f52 ci: fix release napi scripts 2025-01-24 13:37:01 +08:00
Boshen a78a72fb16 ci: fix overly broad permissions reported by zizmor (#8611)
https://woodruffw.github.io/zizmor/audits/#excessive-permissions
2025-01-20 13:19:50 +08:00
renovate[bot] 7923971783 chore(deps): update github-actions 2025-01-20 01:06:44 +00:00
Alexander S. 1a99d3539e ci(lint_rules): trigger on utils/mod.rs and on its workflow file (#8601)
The vitest rules documentation did not get updated after
https://github.com/oxc-project/oxc/pull/8445
2025-01-19 22:38:39 +08:00
Boshen 9dc65cfa6a ci: fix release napi script 2025-01-19 10:35:51 +08:00
Boshen 4a59d29c30 refactor(workflows): add reusable_release_napi.yml (#8581) 2025-01-18 15:27:22 +08:00