feat(dev): add scheduleBuildIfStale method to DevEngine#6087
Conversation
How to use the Graphite Merge QueueAdd 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. |
5c70c60 to
aa06291
Compare
28d2e34 to
a807db9
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR adds a scheduleBuildIfStale method to the DevEngine API that allows callers to determine whether a new build is triggered when requesting a build. The method returns a boolean indicating if a build was scheduled rather than waiting for the build to complete.
- Adds
scheduleBuildIfStalemethod to DevEngine that returns whether a build was triggered - Exposes
ScheduledBuildtype through binding exports - Updates build driver to return tuple indicating if build was already scheduled
Reviewed Changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/rolldown/src/api/dev/dev-engine.ts | Implements new scheduleBuildIfStale method that returns boolean indicating if build was scheduled |
| crates/rolldown_binding/src/binding_dev_engine.rs | Adds Rust binding for schedule_build_if_stale and ScheduledBuild struct |
| crates/rolldown/src/dev/build_driver.rs | Updates schedule_build_if_stale to return tuple with build future and already-scheduled flag |
| packages/rolldown/src/binding.js | Exports new ScheduledBuild type |
| packages/rolldown/src/rolldown-binding.wasi.cjs | Exports ScheduledBuild for WASI CommonJS build |
| packages/rolldown/src/rolldown-binding.wasi-browser.js | Exports ScheduledBuild for WASI browser build |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
hyf0
left a comment
There was a problem hiding this comment.
I leave comment here https://github.com/vitejs/rolldown-vite/pull/401/files#r2332202442. No matter if they overlap, we should do fast shipping and then polish them later.
Merge activity
|
aa06291 to
e81583d
Compare
Benchmarks Rust
|
Added `scheduleBuildIfStale` method to DevEngine to know whether the build is triggered. refs vitejs/rolldown-vite#401
a3530c5 to
7951772
Compare
Added `scheduleBuildIfStale` method to DevEngine to know whether the build is triggered. refs vitejs/rolldown-vite#401
e81583d to
8217f6a
Compare
7951772 to
9d53ea1
Compare
…leBuildIfStale` method refs #6087 refs vitejs/rolldown-vite#401
…leBuildIfStale` method (#6116) refs #6087 refs vitejs/rolldown-vite#401
…leBuildIfStale` method (#6116) refs #6087 refs vitejs/rolldown-vite#401
## [1.0.0-beta.37] - 2025-09-10 ### 🚀 Features - partial align with const inline strategy with oxc in smart mode (#6126) by @IWANABETHATGUY - dev: use PathsMut for non-debounced RecommendedWatcher (#6120) by @sapphi-red - dev: return whether the build is already scheduled from `scheduleBuildIfStale` method (#6116) by @sapphi-red - handle errors from `BundlerBuilder#build` (#6104) by @shulaoda - add debounceTickRate option for debounced watchers (#6113) by @hyf0 - support full build in `incrementalBuild` mode (#6098) by @IWANABETHATGUY - add compare_contents_for_polling option to dev watcher (#6108) by @hyf0 - dev: add `scheduleBuildIfStale` method to DevEngine (#6087) by @sapphi-red - dev: return changed files in onHmrUpdates callback (#6086) by @sapphi-red - support function config with custom CLI arguments (#6076) by @IWANABETHATGUY - improve `MISSING_EXPORT` warning to suggest `type` modifier (#6085) by @sapphi-red - crates/rolldown_watcher: introduce `PathsMut` to batch watch/unwatch behaviors (#6075) by @hyf0 - enable `treeshake.commonjs` by default (#6072) by @IWANABETHATGUY - dev: add debounce control and PollWatcher support to DevWatchOptions (#6070) by @hyf0 ### 🐛 Bug Fixes - use kqueue for file watch on mac (#6124) by @sapphi-red - use patched notify for better file change event debouncing (#6125) by @sapphi-red - support passing all js primitive value for `alias` plugin (#6123) by @IWANABETHATGUY - track spans in member expression properties for accurate sourcemaps (#6100) by @IWANABETHATGUY - correctly handle inlined CommonJS exports in member expressions (#6090) by @IWANABETHATGUY - dev: ensure patch file names to be unique (#6096) by @sapphi-red - dev: normalize slash on Windows before comparing paths (#6095) by @sapphi-red - dev/watch: debounce duration should default to 10 (#6078) by @hyf0 ### 🚜 Refactor - simplify `__export` runtime helper to create target object internally (#6114) by @IWANABETHATGUY - simplify module_namespace construction second try (#6118) by @IWANABETHATGUY - simplify module_namespace construction (#5939) by @IWANABETHATGUY - optimize member expression creation in AstSnippet (#6091) by @IWANABETHATGUY - test-dev-server: sensible watcher configuration for CI env (#6077) by @hyf0 ### 🧪 Testing - dev: apply HMR edits on Windows (#6094) by @sapphi-red ### ⚙️ Miscellaneous Tasks - Revert "chore: adjust breaking change template of cliff (#6069)" (#6130) by @IWANABETHATGUY - test-dev-server: improve hmr test configuration (#6115) by @hyf0 - deps: update dependency rolldown-plugin-dts to v0.16.2 (#6128) by @renovate[bot] - Revert "refactor: simplify module_namespace construction (#5939)" (#6117) by @IWANABETHATGUY - test-dev-server: optimize test log output (#6107) by @hyf0 - enable compare_contents_for_polling and update poll interval for CI test-dev-server (#6110) by @hyf0 - deps: update dependency vite to v7.1.5 [security] (#6111) by @renovate[bot] - fix warnings reported by `just lint` (#6105) by @shulaoda - deps: update dependency tsdown to v0.15.0 (#6102) by @renovate[bot] - use debug builds for browser tests in CI (#6092) by @hyf0 - test-dev-server: update polling interval and add retry logic for CI tests (#6088) by @hyf0 - adjust breaking change template of cliff (#6069) by @IWANABETHATGUY ###◀️ Revert - "fix: replace_plugin does not work as expected with .ts config (#5920)" (#6074) by @IWANABETHATGUY Co-authored-by: Boshen <[email protected]>

Added
scheduleBuildIfStalemethod to DevEngine to know whether the build is triggered.refs vitejs/rolldown-vite#401