Skip to content

chore(deps): update oxc to 0.135.0#9670

Merged
graphite-app[bot] merged 1 commit into
mainfrom
chore/upgrade-oxc-0.135.0
Jun 8, 2026
Merged

chore(deps): update oxc to 0.135.0#9670
graphite-app[bot] merged 1 commit into
mainfrom
chore/upgrade-oxc-0.135.0

Conversation

@Boshen

@Boshen Boshen commented Jun 8, 2026

Copy link
Copy Markdown
Member

Summary

Upgrades oxc to 0.135.0 across Rust crates and npm packages.

Package group Old New
npm @oxc-project/*, oxc-minify/parser/transform 0.134.0 0.135.0
Rust oxc, oxc_allocator, oxc_ecmascript, oxc_*_napi, oxc_traverse, oxc_napi, oxc_str 0.134.0 0.135.0
oxc_index 4.1.0 5.0.0

Breaking changes handled

  • oxc_index 4 → 5: oxc 0.135 pulls in oxc_index 5.0.0; bumped the workspace pin from "4" to "5" to avoid two conflicting versions in the tree.
  • AST structs became #[non_exhaustive] + gained node_id: struct-literal construction (Foo { .. } with ..Foo::dummy()) no longer compiles. Migrated all such sites to AstBuilder constructors.
  • AstBuilder::template_element dropped its trailing lone_surrogates bool arg (4 → 3 params).
  • oxc_transform_napi::TransformOptions gained a react_compiler field: wired through the binding (None) and added a matching ReactCompilerOptionsSchema + reactCompiler field to validator.ts. Generated binding.d.cts now exposes reactCompiler / ReactCompilerOptions.

Other

  • pnpm-workspace.yaml: bumped catalog entries plus the minimumReleaseAgeExclude pin list to 0.135.0.
  • Regenerated embedded_helpers.rs and binding.d.cts; updated the CLI e2e snapshot for the new --transform.react-compiler flag.

🤖 Generated with Claude Code

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 04849daa9c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/rolldown/src/utils/validator.ts
@codspeed-hq

codspeed-hq Bot commented Jun 8, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 4 untouched benchmarks
⏩ 10 skipped benchmarks1


Comparing chore/upgrade-oxc-0.135.0 (04849da) with main (a04e9bf)2

Open in CodSpeed

Footnotes

  1. 10 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (51fbfc7) during the generation of this report, so a04e9bf was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@netlify

netlify Bot commented Jun 8, 2026

Copy link
Copy Markdown

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 5cfff49
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6a26e8c8702e2800082709d0

hyf0 commented Jun 8, 2026

Copy link
Copy Markdown
Member

Merge activity

graphite-app Bot pushed a commit that referenced this pull request Jun 8, 2026
## Summary

Upgrades oxc to **0.135.0** across Rust crates and npm packages.

| Package group | Old | New |
|---|---|---|
| npm `@oxc-project/*`, `oxc-minify/parser/transform` | 0.134.0 | 0.135.0 |
| Rust `oxc`, `oxc_allocator`, `oxc_ecmascript`, `oxc_*_napi`, `oxc_traverse`, `oxc_napi`, `oxc_str` | 0.134.0 | 0.135.0 |
| `oxc_index` | 4.1.0 | 5.0.0 |

## Breaking changes handled

- **`oxc_index` 4 → 5**: oxc 0.135 pulls in `oxc_index` 5.0.0; bumped the workspace pin from `"4"` to `"5"` to avoid two conflicting versions in the tree.
- **AST structs became `#[non_exhaustive]` + gained `node_id`**: struct-literal construction (`Foo { .. }` with `..Foo::dummy()`) no longer compiles. Migrated all such sites to `AstBuilder` constructors.
- **`AstBuilder::template_element`** dropped its trailing `lone_surrogates` bool arg (4 → 3 params).
- **`oxc_transform_napi::TransformOptions` gained a `react_compiler` field**: wired through the binding (`None`) and added a matching `ReactCompilerOptionsSchema` + `reactCompiler` field to `validator.ts`. Generated `binding.d.cts` now exposes `reactCompiler` / `ReactCompilerOptions`.

## Other

- `pnpm-workspace.yaml`: bumped catalog entries plus the `minimumReleaseAgeExclude` pin list to 0.135.0.
- Regenerated `embedded_helpers.rs` and `binding.d.cts`; updated the CLI e2e snapshot for the new `--transform.react-compiler` flag.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@graphite-app graphite-app Bot force-pushed the chore/upgrade-oxc-0.135.0 branch from 04849da to 655ad0a Compare June 8, 2026 16:01
@Boshen Boshen force-pushed the chore/upgrade-oxc-0.135.0 branch from 655ad0a to 04849da Compare June 8, 2026 16:06

Boshen commented Jun 8, 2026

Copy link
Copy Markdown
Member Author

How to use the Graphite Merge Queue

Add the label graphite: merge-when-ready to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

## Summary

Upgrades oxc to **0.135.0** across Rust crates and npm packages.

| Package group | Old | New |
|---|---|---|
| npm `@oxc-project/*`, `oxc-minify/parser/transform` | 0.134.0 | 0.135.0 |
| Rust `oxc`, `oxc_allocator`, `oxc_ecmascript`, `oxc_*_napi`, `oxc_traverse`, `oxc_napi`, `oxc_str` | 0.134.0 | 0.135.0 |
| `oxc_index` | 4.1.0 | 5.0.0 |

## Breaking changes handled

- **`oxc_index` 4 → 5**: oxc 0.135 pulls in `oxc_index` 5.0.0; bumped the workspace pin from `"4"` to `"5"` to avoid two conflicting versions in the tree.
- **AST structs became `#[non_exhaustive]` + gained `node_id`**: struct-literal construction (`Foo { .. }` with `..Foo::dummy()`) no longer compiles. Migrated all such sites to `AstBuilder` constructors.
- **`AstBuilder::template_element`** dropped its trailing `lone_surrogates` bool arg (4 → 3 params).
- **`oxc_transform_napi::TransformOptions` gained a `react_compiler` field**: wired through the binding (`None`) and added a matching `ReactCompilerOptionsSchema` + `reactCompiler` field to `validator.ts`. Generated `binding.d.cts` now exposes `reactCompiler` / `ReactCompilerOptions`.

## Other

- `pnpm-workspace.yaml`: bumped catalog entries plus the `minimumReleaseAgeExclude` pin list to 0.135.0.
- Regenerated `embedded_helpers.rs` and `binding.d.cts`; updated the CLI e2e snapshot for the new `--transform.react-compiler` flag.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@graphite-app graphite-app Bot force-pushed the chore/upgrade-oxc-0.135.0 branch from 04849da to 5cfff49 Compare June 8, 2026 16:07
@graphite-app graphite-app Bot merged commit 5cfff49 into main Jun 8, 2026
34 checks passed
@graphite-app graphite-app Bot deleted the chore/upgrade-oxc-0.135.0 branch June 8, 2026 16:14
graphite-app Bot pushed a commit that referenced this pull request Jun 9, 2026
## Summary

Adds `meta/design/ast-construction.md` documenting how rolldown should construct oxc AST, and cross-links it from `ast-mutation.md`.

The convention:
- **Generic nodes → oxc's `AstBuilder` directly** (handle named `ast`).
- **Rolldown-specific patterns → an `AstBuilderExt` extension trait**, methods prefixed `make_` and named after the operation (e.g. `make_to_esm_wrapper`), mirroring oxc's builder signature style. The call site self-identifies (bare node name = oxc; `make_*` = rolldown) and avoids inherent-vs-trait method shadowing.
- **Build programmatically by default; parsing source is an exception.** Direct construction has no runtime cost; parsing pays lexing+parsing overhead every build. Authoring code as JS and parsing it (`EcmaCompiler::parse`) is reserved for a large fixed blob — in practice just the runtime module.
- The `AstSnippet` facade is retired over time (its author already noted the name was a compromise for `AstBuilder`).

## Background

oxc made `AstBuilder` the single sanctioned construction path (`#[non_exhaustive]` on `NodeId`-bearing nodes, oxc#23046, handled in #9670) and is redesigning it further (oxc#23043, which cites #9609). This doc aligns rolldown with that direction instead of growing a divergent local layer.

## Notes

- **Docs-only; no code changes.**
- The `## Plan` section is **temporary** and will be removed once the migration it describes is implemented.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@shulaoda shulaoda mentioned this pull request Jun 11, 2026
@rolldown-guard rolldown-guard Bot mentioned this pull request Jun 11, 2026
shulaoda pushed a commit that referenced this pull request Jun 11, 2026
## [1.1.1] - 2026-06-11

### 🚀 Features

- ecmascript_utils: introduce AstFactory for AST construction (#9682) by @hyf0
- drop no-op init calls for empty wrapped-ESM modules (#9678) by @IWANABETHATGUY

### 🐛 Bug Fixes

- resolver: honor package.json#type for .jsx/.tsx extensions (#9690) (#9699) by @IWANABETHATGUY
- hmr: report the full-reload reason for the invalidate-loop case (#9708) by @hyf0
- explicit `moduleSideEffects` from a hook must take priority over the `package.json#sideEffects` (#9688) by @sapphi-red
- keep the `rolldown-runtime` name for the standalone runtime chunk (#9685) by @shulaoda
- lazy-barrel: request all exports for entry barrels on first encounter (#9672) by @shulaoda
- finalizer: skip init_*() for tree-shaken wrapped ESM owners (#9669) by @IWANABETHATGUY
- order `chunk.imports` by execution order (#9654) by @chuganzy
- vite-resolve: preserve slash separators for Sass partial exports (#9546) by @cjc0013
- cross-chunk CJS wrapper shadowed by author-local binding (#9648) by @IWANABETHATGUY

### 🚜 Refactor

- precompute wrapped-ESM init metadata in generate stage (#9712) by @IWANABETHATGUY
- ecmascript_utils: fold construction ext traits onto AstFactory and delete AstSnippet (#9702) by @hyf0
- finalizer: finish ScopeHoistingFinalizer migration to AstFactory (#9701) by @hyf0
- finalizer: migrate module_finalizers/mod.rs to AstFactory (#9700) by @hyf0
- hmr: migrate hmr finalizer to AstFactory (#9695) by @hyf0
- plugin: migrate vite_build_import_analysis to AstFactory (#9693) by @hyf0
- scanner: migrate tweak_ast_for_scanning to AstFactory (#9683) by @hyf0
- always split runtime module first (#9419) by @IWANABETHATGUY

### 📚 Documentation

- tsconfig: correct auto-discovery resolution to match TypeScript (#9714) by @shulaoda
- design: plan to unify all internal AST construction (#9673) by @hyf0
- tsconfig: align reference resolution docs with TypeScript behavior (#9641) by @shulaoda

### ⚡ Performance

- avoid per-module join Strings in scope-hoisting concatenation (#9645) by @Boshen
- avoid intermediate Strings in the ESM export clause (#9644) by @Boshen
- reuse a scratch buffer for facade namespace names in the scanner (#9642) by @Boshen
- reuse the import-matching tracker stack across named imports (#9643) by @Boshen
- avoid cloning the per-chunk export-items map in render_chunk_exports (#9639) by @Boshen
- avoid CompactStr allocation in sorted-exports membership check (#9640) by @Boshen

### 🧪 Testing

- add more `moduleSideEffects` precedence tests (#9689) by @sapphi-red
- 9651: drop shimMissingExports from regression fixture (#9674) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- update react repo links (#9711) by @iiio2
- remove outdated pnpm configurations (#9666) by @btea
- deps: update github actions to v2.81.5 (#9665) by @renovate[bot]
- testing: migrate test harness off deprecated inlineDynamicImports (#9710) by @IWANABETHATGUY
- hmr: delete commented-out dead code left from old register-module codegen (#9707) by @hyf0
- deps: update napi-rs toolchain (#9706) by @shulaoda
- deps: update rollup submodule for tests to v4.61.1 (#9676) by @rolldown-guard[bot]
- deps: update test262 submodule for tests (#9677) by @rolldown-guard[bot]
- deps: update oxc to 0.135.0 (#9670) by @Boshen
- pass ALGOLIA_APP_ID and ALGOLIA_API_KEY to void deploy (#9667) by @Boshen
- deps: update github actions (#9662) by @renovate[bot]
- deps: update rust crates (#9663) by @renovate[bot]
- deps: update rolldown-plugin-dts to v0.25.2 (#9661) by @renovate[bot]
- deps: update typos to v1.47.2 (#9660) by @renovate[bot]
- deps: update docs dependencies (#9657) by @bddjr
- deps: update typos to v1.47.1 (#9655) by @renovate[bot]
- deploy website in its own workflow, only on docs output change (#9650) by @Boshen
- publish to pkg.pr.new add pm and `commentWithDev` option (#9638) by @btea

### ❤️ New Contributors

* @chuganzy made their first contribution in [#9654](#9654)
* @cjc0013 made their first contribution in [#9546](#9546)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants