Skip to content

Comments

refactor(rust/dev): construct the bundler within itself#7553

Merged
graphite-app[bot] merged 1 commit intomainfrom
12-17-refactor_rust_dev_construct_the_bundler_within_itself
Dec 19, 2025
Merged

refactor(rust/dev): construct the bundler within itself#7553
graphite-app[bot] merged 1 commit intomainfrom
12-17-refactor_rust_dev_construct_the_bundler_within_itself

Conversation

@hyf0
Copy link
Member

@hyf0 hyf0 commented Dec 17, 2025

No description provided.

Copy link
Member Author

hyf0 commented Dec 17, 2025


How to use the Graphite Merge Queue

Add the label graphite: merge 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.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the DevEngine initialization to construct the bundler internally rather than accepting a pre-built bundler instance. The changes simplify the API by using BundlerConfig (which contains options and plugins) and having DevEngine::new() handle bundler construction itself, replacing the previous with_bundler() pattern.

Key Changes

  • DevEngine::new() now takes BundlerConfig and constructs the bundler internally, removing the with_bundler() method
  • Added bundler_options() method to DevEngine for accessing bundler configuration
  • Integration tests and bindings updated to create BundlerConfig instead of pre-built bundlers

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
crates/rolldown_dev/src/lib.rs Re-exports BundlerConfig from the rolldown crate
crates/rolldown_dev/src/dev_engine.rs Refactors DevEngine::new() to construct bundler from BundlerConfig, removes with_bundler(), adds bundler_options() method
crates/rolldown_testing/src/integration_test.rs Updates tests to use BundlerConfig instead of pre-built bundler, fixes drop(dev_engine) placement, updates execute_output_assets signature
crates/rolldown_binding/src/binding_dev_engine.rs Updates binding layer to use create_bundler_options_from_binding_options instead of create_bundler_from_binding_options, removes unused import
crates/rolldown/examples/dev.rs Updates example to construct BundlerConfig directly instead of using BundlerBuilder

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

@github-actions
Copy link
Contributor

github-actions bot commented Dec 17, 2025

Benchmarks Rust

  • target: 12-17-refactor_rust_watcher_polish_api_of_watcher_struct(d4a01a0)
  • pr: 12-17-refactor_rust_dev_construct_the_bundler_within_itself(f3c2f78)
group                                                        pr                                     target
-----                                                        --                                     ------
bundle/bundle@multi-duplicated-top-level-symbol              1.00     61.7±1.07ms        ? ?/sec    1.00     61.7±1.05ms        ? ?/sec
bundle/bundle@multi-duplicated-top-level-symbol-sourcemap    1.00     67.7±1.12ms        ? ?/sec    1.00     68.0±1.58ms        ? ?/sec
bundle/bundle@rome_ts                                        1.00    105.4±1.60ms        ? ?/sec    1.00    105.0±1.57ms        ? ?/sec
bundle/bundle@rome_ts-sourcemap                              1.00    117.4±2.31ms        ? ?/sec    1.00    117.2±1.58ms        ? ?/sec
bundle/bundle@threejs                                        1.00     39.0±2.45ms        ? ?/sec    1.00     39.0±2.00ms        ? ?/sec
bundle/bundle@threejs-sourcemap                              1.00     42.0±0.47ms        ? ?/sec    1.00     42.0±0.52ms        ? ?/sec
bundle/bundle@threejs10x                                     1.00    386.7±4.11ms        ? ?/sec    1.00    387.3±3.10ms        ? ?/sec
bundle/bundle@threejs10x-sourcemap                           1.00    444.5±2.95ms        ? ?/sec    1.01    447.8±3.52ms        ? ?/sec
scan/scan@rome_ts                                            1.00     84.8±1.44ms        ? ?/sec    1.00     84.5±2.15ms        ? ?/sec
scan/scan@threejs                                            1.01     28.9±1.84ms        ? ?/sec    1.00     28.7±1.65ms        ? ?/sec
scan/scan@threejs10x                                         1.01    293.9±3.55ms        ? ?/sec    1.00    291.2±3.64ms        ? ?/sec

@hyf0 hyf0 force-pushed the 12-17-refactor_rust_watcher_polish_api_of_watcher_struct branch from 305869c to 3f657af Compare December 18, 2025 02:53
@hyf0 hyf0 force-pushed the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch from 174d994 to f4a69e5 Compare December 18, 2025 02:53
@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_watcher_polish_api_of_watcher_struct branch 2 times, most recently from 66840f2 to 16226c1 Compare December 18, 2025 05:10
@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch from f4a69e5 to eaef0a2 Compare December 18, 2025 05:10
@graphite-app
Copy link
Contributor

graphite-app bot commented Dec 18, 2025

Merge activity

@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_watcher_polish_api_of_watcher_struct branch from 16226c1 to d4a01a0 Compare December 18, 2025 08:18
@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch from eaef0a2 to f3c2f78 Compare December 18, 2025 08:19
@hyf0 hyf0 force-pushed the 12-17-refactor_rust_watcher_polish_api_of_watcher_struct branch from d4a01a0 to 9cd1226 Compare December 18, 2025 09:11
@graphite-app graphite-app bot changed the base branch from 12-17-refactor_rust_watcher_polish_api_of_watcher_struct to graphite-base/7553 December 18, 2025 14:24
@graphite-app graphite-app bot force-pushed the graphite-base/7553 branch from 9cd1226 to 3f539ce Compare December 19, 2025 01:58
@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch from f3c2f78 to 59edafa Compare December 19, 2025 01:58
@graphite-app graphite-app bot changed the base branch from graphite-base/7553 to main December 19, 2025 01:59
@graphite-app graphite-app bot force-pushed the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch from 59edafa to 6e68b60 Compare December 19, 2025 01:59
@netlify
Copy link

netlify bot commented Dec 19, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 6e68b60
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6944b16aca01dc00086573d0

@graphite-app graphite-app bot merged commit 6e68b60 into main Dec 19, 2025
31 checks passed
@graphite-app graphite-app bot deleted the 12-17-refactor_rust_dev_construct_the_bundler_within_itself branch December 19, 2025 02:09
shulaoda added a commit that referenced this pull request Dec 22, 2025
## [1.0.0-beta.56] - 2025-12-22

### 💥 BREAKING CHANGES

- rename `MIXED_EXPORT` error to `MIXED_EXPORTS` (#7565) by @sapphi-red

### 🚀 Features

- rename `id` property to `exporter` in CIRCULAR_REEXPORT error (#7592) by @sapphi-red
- add `ids` property to `CIRCULAR_DEPENDENCY` error (#7591) by @sapphi-red
- node/dev: expose `devMode.lazy` (#7549) by @hyf0
- set log and pos properties for `parseAst` function errors (#7568) by @sapphi-red
- set log and pos properties for logs (#7567) by @sapphi-red
- test-dev-sever: support to manually configure port, run tests in concurrent (#7576) by @hyf0
- add `exporter` property to `MISSING_EXPORT` error (#7564) by @sapphi-red
- add `id` property to `PARSE_ERROR` error (#7563) by @sapphi-red
- support ImporterId hook filter (#7540) by @IWANABETHATGUY

### 🐛 Bug Fixes

- types: better "go to definition" experience for interface `OutputPlugin` (#7610) by @KazariEX
- `postBanner` content should be placed after shebang (#7583) by @btea
- use sanitized filename for preserve modules chunk name (#7603) by @IWANABETHATGUY
- correct filter out unused cjs namespace  (#7602) by @IWANABETHATGUY
- watch: property respect `notify.pollInternal` and `notify.compareContents` (#7595) by @sapphi-red
- make `cleanDir` work with default output directory (#7579) by @shulaoda
- merge `MISSING_NAME_OPTION_FOR_UMD_EXPORT` error to `MISSING_NAME_OPTION_FOR_IIFE_EXPORT` error (#7566) by @sapphi-red
- dev/hmr: ensure cjs modules with no exports reference correct `module` identifier (#7544) by @leegeunhyeok

### 🚜 Refactor

- remove `stable_id` field from `PARSE_ERROR` error (#7593) by @sapphi-red
- make include_runtime_symbol reuseable after linking stage (#7580) by @IWANABETHATGUY
- rust/dev: construct the bundler within itself (#7553) by @hyf0
- rust/watcher: polish API of `Watcher` struct (#7551) by @hyf0
- use `LinkingMetadata::stmt_info_included` to check if a stmt_info is included (#7572) by @IWANABETHATGUY
- use `LinkingMetadata::is_included` to check if a module is included (#7571) by @IWANABETHATGUY
- store module and stmt_info is included info to module meta (#7570) by @IWANABETHATGUY
- make include_* method reunsable after linking stage (#7552) by @IWANABETHATGUY
- rust/watcher: construct the bundler within watcher itself (#7550) by @hyf0
- extract make include_runtime_symbol reusable (#7546) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- renovate: add `kill-port` in `ignoreDeps` in renovate.json (#7619) by @sapphi-red
- deps: update rust crates (#7617) by @renovate[bot]
- deps: update npm packages (#7616) by @renovate[bot]
- deps: update github-actions (#7615) by @renovate[bot]
- ci: skip benchmark workflows on draft PRs (#7611) by @Copilot
- deps: update dependency rolldown-plugin-dts to ^0.19.0 (#7607) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.10.0 (#7601) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.18.4 (#7599) by @renovate[bot]
- deps: update notify (#7594) by @sapphi-red
- test-dev-server: add retry mechanism to hmr-full-bundle-mode tests (#7588) by @Copilot
- deps: update napi to v3.7.1 (#7590) by @renovate[bot]
- add JSDoc documentation for memfs type (#7587) by @Copilot
- deps: update dependency oxlint to v1.34.0 (#7589) by @renovate[bot]
- move some tests in ignored-by-unsupported-features that are passing (#7569) by @sapphi-red
- deps: update dependency oxlint-tsgolint to v0.9.2 (#7582) by @renovate[bot]
- deps: update oxc resolver to v11.16.0 (#7574) by @renovate[bot]
- test/dev-server: don't run `pnpm install` during tests (#7560) by @hyf0
- test/dev-server: use `kill-port@1` to improve performance (#7575) by @hyf0
- normalize error object to make some Rollup tests pass (#7562) by @sapphi-red
- ci: separate dev-server(hmr) tests and normal tests (#7558) by @hyf0
- ci: make native rolldown build reusable (#7557) by @hyf0
- resolve some TODOs (#7561) by @sapphi-red

### ❤️ New Contributors

* @KazariEX made their first contribution in [#7610](#7610)
* @leegeunhyeok made their first contribution in [#7544](#7544)

Co-authored-by: shulaoda <[email protected]>
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.

2 participants