Skip to content

docs(design): add bundler data lifecycle design doc#9212

Merged
graphite-app[bot] merged 1 commit intomainfrom
04-23-docs_design_add_bundler_data_lifecycle_design_doc
Apr 23, 2026
Merged

docs(design): add bundler data lifecycle design doc#9212
graphite-app[bot] merged 1 commit intomainfrom
04-23-docs_design_add_bundler_data_lifecycle_design_doc

Conversation

@hyf0
Copy link
Copy Markdown
Member

@hyf0 hyf0 commented Apr 23, 2026

Documents the two-tier data lifecycle model (bundler-level vs
bundle-level) that was established by the refactoring in #6877
through #6896. Covers BundleMode, PluginDriverFactory, ScanStageCache
ownership, and bugs found by the separation.

Copy link
Copy Markdown
Member Author

hyf0 commented Apr 23, 2026


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.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 23, 2026

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 948918b
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69e99cca640ba70008729e0d

@hyf0 hyf0 marked this pull request as ready for review April 23, 2026 02:09
Copilot AI review requested due to automatic review settings April 23, 2026 02:09
@hyf0 hyf0 requested a review from IWANABETHATGUY April 23, 2026 02:15
Copy link
Copy Markdown
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

Adds a new design document describing Rolldown’s two-tier data lifecycle model (bundler-level vs bundle-level) introduced during the Bundler/Bundle refactors, with specific focus on BundleMode, PluginDriverFactory, and ScanStageCache ownership.

Changes:

  • Introduces meta/design/bundler-data-lifecycle.md documenting lifecycle/ownership boundaries for bundler vs bundle data.
  • Describes how BundleMode maps to cache/state reset behavior and why it prevents incremental/HMR/watch bugs.
  • Captures historical bugs uncovered by the separation and the architectural fixes applied.

Comment thread meta/design/bundler-data-lifecycle.md Outdated
Comment thread meta/design/bundler-data-lifecycle.md Outdated
Comment thread meta/design/bundler-data-lifecycle.md Outdated
Comment thread meta/design/bundler-data-lifecycle.md Outdated
Copy link
Copy Markdown
Member Author

hyf0 commented Apr 23, 2026

Merge activity

@hyf0 hyf0 force-pushed the 04-23-docs_design_add_bundler_data_lifecycle_design_doc branch from fc5c1a3 to ea2d200 Compare April 23, 2026 02:17
Documents the two-tier data lifecycle model (bundler-level vs
bundle-level) that was established by the refactoring in #6877
through #6896. Covers BundleMode, PluginDriverFactory, ScanStageCache
ownership, and bugs found by the separation.
@graphite-app graphite-app Bot force-pushed the 04-23-docs_design_add_bundler_data_lifecycle_design_doc branch from 33ec845 to 948918b Compare April 23, 2026 04:15
@graphite-app graphite-app Bot merged commit 948918b into main Apr 23, 2026
32 checks passed
@graphite-app graphite-app Bot deleted the 04-23-docs_design_add_bundler_data_lifecycle_design_doc branch April 23, 2026 04:16
This was referenced Apr 29, 2026
shulaoda added a commit that referenced this pull request Apr 29, 2026
## [1.0.0-rc.18] - 2026-04-29

### 💥 BREAKING CHANGES

- optimization: default unspecified inlineConst.mode to smart (#9248) by @IWANABETHATGUY

### 🐛 Bug Fixes

- rolldown_plugin_vite_import_glob: return error instead of panicking when virtual module uses a relative glob (#9241) by @shulaoda
- binding: treat empty inlineConst object as omitted (#9247) by @IWANABETHATGUY
- rolldown: keep enum declaration for optional-chain access (#9229) by @Dunqing
- link_stage: restore inline let-else in exports-kind filter (#9237) by @IWANABETHATGUY
- dev/lazy: avoid module reinitialization in lazy compilation patches (#9179) by @h-a-n-a
- dev: visit identifier references for runtime rewrites in HMR finalizer (#9191) by @h-a-n-a
- chunk-optimizer: pick dominator for runtime placement to avoid cycles (#9164) by @IWANABETHATGUY
- make `this.emitFile` chunk path synchronous to avoid deadlock (#9031) by @lazarv
- use sentinel id for `browser: false` ignored modules (#9192) by @shulaoda
- prevent chunk optimizer from creating import cycles (#9228) by @IWANABETHATGUY

### 🚜 Refactor

- replace tokio::sync::Mutex with std::sync::Mutex for non-IO data (#9176) by @shulaoda
- rolldown_plugin_vite_import_glob: do not rewrite import path for absolute base (#9195) by @shulaoda
- runtime_helper: wrap DependedRuntimeHelperMap in a struct (#9215) by @IWANABETHATGUY
- drop redundant clear() in determine_safely_merge_cjs_ns (#9206) by @IWANABETHATGUY
- clean up generate_lazy_export (#9208) by @IWANABETHATGUY
- bitset: return bool from set_bit to fuse guard-and-set (#9207) by @IWANABETHATGUY
- link_stage: simplify exports-kind filter and clarify safety comments (#9205) by @IWANABETHATGUY

### 📚 Documentation

- determine_module_exports_kind (#9252) by @IWANABETHATGUY
- fix dead link to esbuild ESM/CJS interop tests (#9230) by @Copilot
- remove CSS bundling references (#9234) by @shulaoda
- correct IncrementalFullBuild row in BundleMode table (#9214) by @IWANABETHATGUY
- design: add bundler data lifecycle design doc (#9212) by @hyf0
- remove minifier alpha status notices (#9202) by @sapphi-red

### ⚙️ Miscellaneous Tasks

- upgrade oxc to 0.128.0 (#9260) by @shulaoda
- deps: bump rolldown-ariadne to 0.6.0 (#9254) by @IWANABETHATGUY
- deps: update github actions (#9259) by @renovate[bot]
- deps: update github actions (#9258) by @renovate[bot]
- remove renovate overrides (#9257) by @Boshen
- use ubuntu-latest for security workflow (#9256) by @Boshen
- notify Discord around release publish (#9251) by @Boshen
- add release environment to npm publish workflow (#9250) by @Boshen
- justfile: drop the `--` separator before forwarded args in `vp run` (#9246) by @shulaoda
- deps: update test262 submodule for tests (#9243) by @sapphi-red
- add more tracing instrumentations (#9220) by @sapphi-red
- rolldown_plugin_vite_import_glob: remove outdated sourcemap doc comment (#9213) by @shulaoda
- update security workflow (#9201) by @Boshen

### ❤️ New Contributors

* @lazarv made their first contribution in [#9031](#9031)

Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
@rolldown-guard rolldown-guard Bot mentioned this pull request Apr 29, 2026
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