Rolldown Release Notes
Last updated: Apr 1, 2026
- Apr 1, 2026
- Date parsed from source:Apr 1, 2026
- First seen by Releasebot:Apr 1, 2026
[1.0.0-rc.13] - 2026-04-01
Rolldown adds friendlier error messages for unloadable virtual modules and unsupported CSS, while improving chunking, tree-shaking, re-exports, glob imports, and watch rebuild behavior. It also includes docs, tests, dependency updates, and build maintenance.
๐ Features
- add friendly error for unloadable virtual modules (#8955) by @sapphi-red
- better error message for unsupported CSS error (#8911) by @sapphi-red
๐ Bug Fixes
- prevent chunk merging from leaking entry side effects (#8979) by @IWANABETHATGUY
- correct inlining based on module's def format and esModule flag (#8975) by @h-a-n-a
- generate init calls for excluded re-exports in strict execution order (#8858) by @IWANABETHATGUY
- consistent order for
meta.chunksinrenderChunkhook (#8956) by @sapphi-red - subpath imports in glob imports failing to find files (#8885) by @kalvenschraut
- browser: bundle binding types in dts output (#8930) by @nyan-left
- ci: guard artifact download step in
vite-test-ubuntuwhen build is skipped (#8934) by @Copilot - track CJS re-export import records to fix inline const and tree-shaking (#8925) by @h-a-n-a
- use ImportKind::Import for common-chunk root computation (#8899) by @IWANABETHATGUY
- watch: clear emitted_filenames between rebuilds (#8914) by @IWANABETHATGUY
- ci: cache esbuild snapshots to avoid 429 rate limiting (#8921) by @IWANABETHATGUY
- always check circular deps in chunk optimizer (#8915) by @IWANABETHATGUY
- don't mark calls to reassigned bindings as pure (#8917) by @IWANABETHATGUY
- magic-string: throw TypeError for non-string content args (#8905) by @IWANABETHATGUY
- magic-string: add split-point validation and overwrite/update options (#8904) by @IWANABETHATGUY
๐ Refactor
- pre-compute has_side_effects on ChunkCandidate (#8981) by @IWANABETHATGUY
- cleanup and simplify in dynamic_import.rs (#8927) by @ulrichstark
- rename came_from_cjs to came_from_commonjs for consistency (#8938) by @IWANABETHATGUY
- inline
create_ecma_viewreturn destructuring and remove redundant binding (#8932) by @shulaoda
๐ Documentation
- document ensure_lazy_module_initialization_order in code-splitting design doc (#8931) by @IWANABETHATGUY
๐งช Testing
- add regression test for runtime helper circular dependency (#8958) by @h-a-n-a
- enable 8 previously-skipped MagicString remove tests (#8945) by @IWANABETHATGUY
- add test for why PureAnnotation is needed in execution order check (#8933) by @IWANABETHATGUY
โ๏ธ Miscellaneous Tasks
- add
@emnapi/runtimeand@emnapi/coreas direct deps of@rolldown/browser(#8978) by @Copilot - deps: update dependency vite-plus to v0.1.15 (#8970) by @renovate[bot]
- deps: update dependency oxfmt to ^0.43.0 (#8969) by @renovate[bot]
- deps: upgrade oxc to 0.123.0 (#8967) by @shulaoda
- justfile: deduplicate update-submodule as alias of setup-submodule (#8968) by @shulaoda
- deps: update rollup submodule for tests to v4.60.1 (#8965) by @sapphi-red
- deps: update test262 submodule for tests (#8966) by @sapphi-red
- remove unused
type-checkscripts (#8957) by @sapphi-red - deps: update actions/cache action to v5 (#8953) by @renovate[bot]
- deps: update npm packages to v6 (major) (#8954) by @renovate[bot]
- deps: update npm packages (#8948) by @renovate[bot]
- deps: update rust crates (#8949) by @renovate[bot]
- deps: update github-actions (#8947) by @renovate[bot]
- deps: update napi (#8943) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to ^0.23.0 (#8944) by @renovate[bot]
- regenerate testing snapshots (#8928) by @ulrichstark
- deps: update dependency rust to v1.94.1 (#8923) by @renovate[bot]
โค๏ธ New Contributors
- @kalvenschraut made their first contribution in #8885
- @nyan-left made their first contribution in #8930
- Mar 25, 2026
- Date parsed from source:Mar 25, 2026
- First seen by Releasebot:Mar 26, 2026
[1.0.0-rc.12] - 2026-03-25
Rolldown ships performance and reliability updates with chunk optimizer improvements, better watch mode warnings, fixes for CJS init order and non-deterministic chunk generation, plus treeshake refactoring and test stability work.
๐ Features
- chunk-optimizer: skip circular dependency check when strict execution order is enabled (#8886) by @hyf0
๐ Bug Fixes
- emit build warnings during watch mode rebuilds (#8897) by @IWANABETHATGUY
- lazy-barrel: load import-then-export specifiers when barrel has local exports (#8895) by @shulaoda
- correct execution order of transferred CJS init calls (#8877) by @IWANABETHATGUY
- mcs:
entriesAwareshould calculate sizes without duplication (#8887) by @hyf0 - non-deterministic chunk generation (#8882) by @sapphi-red
is_top_levelincorrectly treats strict-mode scopes as top-level (#8878) by @Dunqing
๐ Refactor
- treeshake: migrate SideEffectDetector to Oxc's MayHaveSideEffects trait (#8624) by @Dunqing
๐งช Testing
- make dev server tests deterministic by replacing fixed sleeps with event-driven polling (#8561) by @Boshen
โ๏ธ Miscellaneous Tasks
- deps: update dependency vite-plus to v0.1.14 (#8902) by @camc314
- deps: update dependency oxfmt to ^0.42.0 (#8891) by @renovate[bot]
- deps: update rust crate oxc_sourcemap to v6.1.1 (#8890) by @renovate[bot]
- remove Rolldown MF plan (#8883) by @shulaoda
- deps: update rollup submodule for tests to v4.60.0 (#8881) by @sapphi-red
- deps: update test262 submodule for tests (#8880) by @sapphi-red
- deps: upgrade oxc crates to 0.122.0 (#8879) by @shulaoda
All of your release notes in one feed
Join Releasebot and get updates from Rolldown and hundreds of other software products.
- Mar 23, 2026
- Date parsed from source:Mar 23, 2026
- First seen by Releasebot:Mar 23, 2026
[1.0.0-rc.11] - 2026-03-23
Rolldown ships MagicString and sourcemap upgrades, with regex replace support, ignore list handling, and improved source map exclusions. It also brings bug fixes, performance gains, TypeScript cleanup, and broader cross-platform testing and documentation polish.
๐ Features
- magicString replace with regex (#8802) by @IWANABETHATGUY
- support
output.sourcemapExcludeSourcesoption (#8828) by @sapphi-red - support
getIndentStringin MagicString (#8775) by @IWANABETHATGUY - MagicString ignoreList support (#8773) by @IWANABETHATGUY
๐ Bug Fixes
- forward test filters through vp run (#8870) by @younggglcy
- types: remove
pluginNamefromMinimalPluginContext(#8864) by @sapphi-red - do not report eval?.() as direct eval (#8860) by @IWANABETHATGUY
- handle negative indices, overlapping ranges, and moved content in MagicString remove (#8829) by @IWANABETHATGUY
- enable arbitrary_precision for serde_json to fix JSON float parsing (#8848) by @elderapo
- resolve TypeScript lint errors (#8841) by @Boshen
- avoid panic on multi-byte UTF-8 chars in hash placeholder iterator (#8790) by @shulaoda
- ci: skip failing vite build watch raw query test (#8840) by @Boshen
- ci: use step-level env override to unset VITE_PLUS_CLI_BIN in vite tests (#8838) by @Boshen
- ci: move vite tests into CI workflow by @Boshen
- ci: unset all VITE_PLUS_* env vars in vite-tests workflow (#8837) by @Boshen
- test: skip watch CLI tests on Windows (#8830) by @Boshen
- ci: unset VITE_PLUS_CLI_BIN in vite-tests workflow (#8832) by @Boshen
- remove redundant bare side-effect imports in entry/facade chunks (#8804) by @h-a-n-a
- magicString prepend issues (#8797) by @IWANABETHATGUY
- ci: use
vpxinstead ofvp execforpkg-pr-new(#8827) by @Boshen - set
orderfor callable plugins (#8815) by @sapphi-red - handle reversed slice ranges with moved content (#8750) by @IWANABETHATGUY
- update emnapi to latest to avoid version mismatch (#8781) by @sapphi-red
- external.md on Windows OS (#8780) by @bddjr
- align MagicString length/isEmpty with reference magic-string (#8776) by @IWANABETHATGUY
๐ Refactor
- extract canonical_ref_resolving_namespace helper (#8836) by @Boshen
๐ Documentation
- improve external examples for cross-platform correctness (#8786) by @hyf0-agent
- update reference to transform function in plugin API documentation (#8778) by @zOadT
โก Performance
- reduce timing of
dervie_entries_aware_chunk_name(#8847) by @AliceLanniste - bench: remove redundant sourcemap benchmark cases (#8825) by @Boshen
- reduce intermediate allocations in
collapse_sourcemaps(#8821) by @Boshen - enable parallel AST cloning on macOS (#8814) by @Boshen
๐งช Testing
- watch: use polling watcher and retry for watch error test (#8772) by @sapphi-red
โ๏ธ Miscellaneous Tasks
- deps: update dependency @oxc-project/types to v0.122.0 (#8873) by @renovate[bot]
- publish-to-npm: use correct vp pm publish (#8871) by @shulaoda
- justfile: skip setup-vite-plus if vp is already installed (#8862) by @Boshen
- add expectWarning option to test config (#8861) by @IWANABETHATGUY
- justfile: support windows for
just setup(#8846) by @AliceLanniste - deps: update rust crates (#8852) by @renovate[bot]
- deps: update endbug/version-check action to v3 (#8855) by @renovate[bot]
- deps: update github-actions (#8853) by @renovate[bot]
- deps: update dependency vitepress to v2.0.0-alpha.17 (#8854) by @renovate[bot]
- deps: update npm packages (#8851) by @renovate[bot]
- bench: use mimalloc as global allocator in bench crate (#8844) by @IWANABETHATGUY
- reuse native build artifact in node-validation job (#8826) by @Boshen
- speed up CodSpeed benchmark build by disabling LTO (#8824) by @Boshen
- remove redundant critcmp benchmark job (#8823) by @Boshen
- deps: update rust crate oxc_sourcemap to v6.1.0 (#8785) by @renovate[bot]
- node: migrate oxlint and oxfmt to Vite+ (#8813) by @Boshen
- revert namespace runners for release build jobs (#8820) by @Boshen
- migrate runners to namespace (#8819) by @Boshen
- test: relax test utils path assertion to support git worktrees (#8816) by @younggglcy
- rename
examples/lazytoexamples/lazy-compilation(#8789) by @shulaoda - improve "needs reproduction" wording by @Boshen
- deps: update dependency oxlint-tsgolint to v0.17.1 (#8807) by @renovate[bot]
- enable 7 previously-skipped MagicString tests (#8771) by @IWANABETHATGUY
- upgrade oxc to 0.121.0 (#8784) by @shulaoda
- increase Windows dev drive size from 12GB to 20GB (#8779) by @Copilot
โค๏ธ New Contributors
- @younggglcy made their first contribution in #8870
- @elderapo made their first contribution in #8848
- @bddjr made their first contribution in #8780
- @zOadT made their first contribution in #8778
- Mar 18, 2026
- Date parsed from source:Mar 18, 2026
- First seen by Releasebot:Mar 19, 2026
- Modified by Releasebot:Mar 23, 2026
[1.0.0-rc.10] - 2026-03-18
Rolldown ships bug fixes, performance tuning, and developer-facing improvements, including a new MagicString indent exclusion option, exposed oxcRuntimePlugin, better dynamic import handling, and watch mode and Windows path fixes.
๐ Features
- add indentExclusionRanges property to MagicString (#8746) by @IWANABETHATGUY
- expose
oxcRuntimePlugin(#8654) by @sapphi-red - rust: make bundler generic over FileSystem for in-memory benchmarks (#8652) by @Boshen
๐ Bug Fixes
- rolldown_plugin_vite_dynamic_import_vars: align dynamic import fast check with Vite (#8760) by @shulaoda
- renamer: handle existing bindings in nested scopes when finding unique names (#8741) by @drewolson
- pass
yarn_pnpoption where needed (#8736) by @sapphi-red - preserve optional chaining in namespace member expr rewrite (#8712) by @Copilot
- correct UTF-16 index handling in native MagicString (#8693) by @IWANABETHATGUY
- mark failing doctests as ignore (#8700) by @Boshen
- prevent may_partial_namespace from leaking through include_module (#8682) by @IWANABETHATGUY
- ci: bump native-build cache key to invalidate stale napi-rs artifacts (#8678) by @Boshen
comments.annotation: falsebreaking tree-shaking (#8657) by @IWANABETHATGUY- validate filenames for NUL bytes from chunkFileNames/entryFileNames (#8644) by @IWANABETHATGUY
- dce-only minify should not set NODE_ENV to production (#8651) by @IWANABETHATGUY
๐ Refactor
- rust: remove dead
CrossModuleOptimizationConfig::side_effects_free_function_optimization(#8673) by @Dunqing - rust: simplify
cross_module_optimizationby removing redundant scope tracking (#8672) by @Dunqing - simplify string repeat in guess_indentor (#8753) by @IWANABETHATGUY
- consolidate custom magic-string tests into one file (#8696) by @IWANABETHATGUY
- extract CJS bailout checks from include_symbol (#8683) by @IWANABETHATGUY
- rust: remove
BindingIdentifierExtto useBindingIdentifier::symbol_id()instead (#8667) by @Dunqing - bench: add bench_preset helper and inline presets (#8658) by @Boshen
- rust: filter external modules from entries instead of mapping bit positions (#8637) by @Dunqing
๐ Documentation
- clarify watch mode behavior and its limitations (#8751) by @sapphi-red
- add external link icon to GitHub button in Hero section (#8731) by @thisisnkc
- guide: clarify that
injectoption is only conceptually similar to esbuild's one (#8743) by @sapphi-red - meta/design: add
devtools.md(#8663) by @hyf0 - add viteplus alpha announcement banner (#8668) by @shulaoda
โก Performance
- rolldown: some minor perf optimization found by autoresearch (#8730) by @Brooooooklyn
- replace Vec allocation with lazy iterator in find_hash_placeholders (#8703) by @Boshen
- replace TypedDashMap with TypedMap in CustomField (#8708) by @Boshen
- bench: remove scan benchmark binary to halve LTO link time (#8694) by @Boshen
๐งช Testing
- watch: increase timeout for error output (#8766) by @sapphi-red
- vite-tests: remove JS plugin tests (#8767) by @sapphi-red
- watch: add CLI exit code test (#8752) by @sapphi-red
- normalize paths on Windows even if
resolve.symlinksis false (#8483) by @sapphi-red
โ๏ธ Miscellaneous Tasks
- correct comment in bundle-analyzer-plugin.ts (#8770) by @origami-z
- upgrade oxc to 0.120.0 (#8764) by @Boshen
- enable all test for
resetcategory in MagicString.test.ts (#8749) by @IWANABETHATGUY - deps: update test262 submodule for tests (#8742) by @sapphi-red
- deps: update oxc apps (#8734) by @renovate[bot]
- deps: update softprops/action-gh-release action to v2.6.1 (#8724) by @renovate[bot]
- deps: update npm packages (major) (#8722) by @renovate[bot]
- deps: update github-actions (major) (#8721) by @renovate[bot]
- deps: update softprops/action-gh-release action to v2.6.0 (#8720) by @renovate[bot]
- deps: update npm packages (#8718) by @renovate[bot]
- bench: use mimalloc as global allocator in bench crate (#8844) by @IWANABETHATGUY
- reuse native build artifact in node-validation job (#8826) by @Boshen
- speed up CodSpeed benchmark build by disabling LTO (#8824) by @Boshen
- remove redundant critcmp benchmark job (#8823) by @Boshen
- deps: update rust crate oxc_sourcemap to v6.1.0 (#8785) by @renovate[bot]
- node: migrate oxlint and oxfmt to Vite+ (#8813) by @Boshen
- revert namespace runners for release build jobs (#8820) by @Boshen
- migrate runners to namespace (#8819) by @Boshen
- test: relax test utils path assertion to support git worktrees (#8816) by @younggglcy
- rename
examples/lazytoexamples/lazy-compilation(#8789) by @shulaoda - improve "needs reproduction" wording by @Boshen
- deps: update dependency oxlint-tsgolint to v0.17.1 (#8807) by @renovate[bot]
- enable 7 previously-skipped MagicString tests (#8771) by @IWANABETHATGUY
- upgrade oxc to 0.121.0 (#8784) by @shulaoda
- increase Windows dev drive size from 12GB to 20GB (#8779) by @Copilot
โค๏ธ New Contributors
- @origami-z made their first contribution in #8770
- @drewolson made their first contribution in #8741
- @thisisnkc made their first contribution in #8731
- Mar 11, 2026
- Date parsed from source:Mar 11, 2026
- First seen by Releasebot:Mar 11, 2026
[1.0.0-rc.9] - 2026-03-11
Rolldown unveils a broad update with a breaking change renaming BindingMagicString to RolldownMagicString, adds isRolldownMagicString detection, and brings CLI alignment, performance tweaks, bug fixes, refactors, docs, and CI improvements across the project.
๐ฅ BREAKING CHANGES
- rename exported BindingMagicString to RolldownMagicString (#8626) by @IWANABETHATGUY
๐ Features
- rolldown: add isRolldownMagicString property for reliable native detection (#8614) by @IWANABETHATGUY
- cli: align object type with rollup (#8598) by @h-a-n-a
๐ Bug Fixes
- rust: circular inter-chunk imports when external dynamic imports exist (#8596) by @Dunqing
- update minify default docs from
falseto'dce-only'(#8620) by @shulaoda
๐ผ Other
- fix early exit in script build-node (#8617) by @h-a-n-a
๐ Refactor
- binding: remove outdated TODO comment in MagicString to_string() (#8613) by @IWANABETHATGUY
๐ Documentation
- add viteplus alpha announcement banner (#8615) by @mdong1909
- update VitePress theme to 4.8.2 for narrow-screen layout regression (#8612) by @Copilot
โก Performance
- merge 4 integration test binaries into 1 (#8610) by @Boshen
๐งช Testing
- replace heavy filename_with_hash test with targeted hash fixtures (#8597) by @Boshen
โ๏ธ Miscellaneous Tasks
- ci: remove redundant
--no-runbuild step from cargo-test (#8623) by @Boshen - rust: use
cargo-shearto toggle Cargo.toml [lib] test = bool (#8622) by @Boshen - deps: update test262 submodule for tests (#8611) by @sapphi-red
- skip macOS CI jobs on pull requests (#8608) by @Copilot
- add rust cache to repo validation job (#8607) by @Boshen
- skip running empty bin test targets (#8605) by @Boshen
- skip building examples in cargo-test to reduce build time (#8603) by @Boshen
- switch plain workflow checkouts to taiki-e action (#8601) by @Boshen
- skip Windows CI jobs on PRs (#8600) by @Boshen
- remove unused asset module (#8594) by @shulaoda
โ๏ธ Revert
- "docs: add viteplus alpha announcement banner (#8615)" (#8616) by @shulaoda
- Mar 9, 2026
- Date parsed from source:Mar 9, 2026
- First seen by Releasebot:Mar 10, 2026
[1.0.0-rc.8] - 2026-03-09
Rolldown unveils a strengthened watch workflow with a full functional fs watcher in wasm and debounce options, plus improved devtools tracing and automatic rebuilds for missing files. The release includes refactors, performance tweaks, testing improvements, docs updates, and new contributors.
๐ Features
- watch: enable full functional fs watcher in wasm (#8575) by @hyf0
- watch: expose debounce related options (#8572) by @hyf0
๐ Bug Fixes
- detect new URL(โฆ, import.meta.url) with no-sub template literal (#8565) by @char
- devtools: trace dynamic imports in devtools (#8581) by @cal-gooo
- watch: rebuild when a previously missing file is created (#8562) by @hyf0-agent
- watch: filter out Access events to prevent infinite rebuild loop on Linux (#8557) by @hyf0-agent
๐ Refactor
- watch: remove auto watch for fail imports (#8585) by @hyf0
- fs_watcher: unify the way of constructing watcher (#8571) by @hyf0
- cli: migrate CLI to CAC (#8551) by @h-a-n-a
- switch asset module support from hard-code to builtin plugin (#8546) by @hyf0
๐ Documentation
- fix subject-verb agreement in why-bundlers.md (#8591) by @brandonzylstra
- maintenance: align release and canary workflow guide (#8538) by @minsoo-web
- add format option to directives example config (#8590) by @shulaoda
- fix: change twitter to x logo in team (#8552) by @mdong1909
- correct composable filter support explanation (#8550) by @sapphi-red
โก Performance
- testing: share tokio runtime across fixture tests (#8567) by @Boshen
๐งช Testing
- hmr: fix infinite loop in dev server test retry logic (#8576) by @hyf0-agent
- cli: add more cli-e2e test cases (#8548) by @h-a-n-a
โ๏ธ Miscellaneous Tasks
- docs: update in-depth/directives for output.strict option (#8535) by @minsoo-web
- add PNPM_HOME Dev Drive mapping to Windows CI workflows (#8589) by @Boshen
- deps: update github-actions (#8588) by @renovate[bot]
- move Windows cargo target dir to Dev Drive (#8586) by @Boshen
- optimize cache keys to fix race conditions and reduce usage (#8578) by @Boshen
- remove WASI build & test pipeline (#8580) by @Boshen
- remove unnecessary submodule checkouts (#8577) by @Boshen
- use Dev Drive for Windows CI jobs (#8574) by @Boshen
- skip redundant native binding build for browser and remove standalone job (#8573) by @Boshen
- parallelize Node tests on ubuntu, single Node 24 on macOS/windows (#8570) by @Boshen
- docs: bump @voidzero-dev/vitepress-theme to 4.8.0 (#8558) by @crusty-voidzero
- dedupe type-check from dev server workflow (#8554) by @Boshen
โค๏ธ New Contributors
- @brandonzylstra made their first contribution in #8591
- @char made their first contribution in #8565
- @cal-gooo made their first contribution in #8581
- @hyf0-agent made their first contribution in #8562
- @h-a-n-a made their first contribution in #8551
- Mar 5, 2026
- Date parsed from source:Mar 5, 2026
- First seen by Releasebot:Mar 10, 2026
[1.0.0-rc.7] - 2026-03-05
Rolldown unveils 1.0.0-rc.7 release candidate dated 2026-03-05.
- Mar 5, 2026
- Date parsed from source:Mar 5, 2026
- First seen by Releasebot:Mar 6, 2026
[1.0.0-rc.7] - 2026-03-05
Rolldown rolls out a major update with breaking changes to minify defaults and inlineConst, adds new capabilities like original getter in BindingMagicString and strict mode emission control, enhances watch mode, and introduces LLM friendly markdown output. Also bundles bug fixes, refactors, docs, and performance boosts.
๐ฅ BREAKING CHANGES
- enable minify: 'dce-only' by default (#8465) by @IWANABETHATGUY
- settings
inlineConst: { mode: 'smart', pass: 1}by default (#8444) by @IWANABETHATGUY
๐ Features
- binding: add original getter to BindingMagicString (#8533) by @IWANABETHATGUY
- native-magic-string: add
offsetproperty support (#8531) by @IWANABETHATGUY - add
output.strictoption to control"use strict"directive emission (#8489) by @Copilot - watch: expose
watcher.compareContentsForPolling(#8526) by @hyf0 - watch: use new watcher to support watch mode (#8475) by @hyf0
- rust/watch: handle bulk-change (#8466) by @hyf0
- add LLM-friendly markdown output format to bundle analyzer plugin (#8242) by @IWANABETHATGUY
๐ Bug Fixes
- expose
pluginsonNormalizedInputOptionsforbuildStarthook (#8521) by @Copilot - only uppercase facade symbols in JSX preserve mode (#8519) by @IWANABETHATGUY
- binding: export BindingResult in generated dts header (#8537) by @minsoo-web
- pre-resolve paths option to avoid
invoke_syncdeadlock (#8518) by @IWANABETHATGUY - remove debug-only jsx_preset and UntranspiledSyntaxError (#8511) by @IWANABETHATGUY
- apply
topLevelVarto exportedconst/letdeclarations (#8507) by @IWANABETHATGUY - rolldown_plugin_vite_web_worker_post: avoid replacing
new.target(#8488) by @sapphi-red - update copyright year to 2026 (#8486) by @maciekzygmunt
๐ Refactor
- rust: use Oxc's SymbolFlags::ConstVariable instead of custom IsConst flag (#8543) by @Dunqing
- rust: remove FacadeScoping, use Scoping::create_symbol for facade symbols (#8540) by @Dunqing
- rust/watch: remove hacky
reset_closed_for_watch_mode(#8530) by @hyf0 - binding: return &str instead of String in filename() getter (#8534) by @IWANABETHATGUY
- rust: remove old watch mode implementation (#8525) by @hyf0
- rust/watch: simply watch logic in the binding layer (#8516) by @hyf0
- rust/watch: tweak struct/function names (#8464) by @hyf0
๐ Documentation
- explain how external modules work in rolldown (#8457) by @sapphi-red
- add some diagrams using graphviz (#8499) by @sapphi-red
- use
vitepress-plugin-graphviz(#8498) by @sapphi-red - list s390x/ppc64le prebuilt binaries (#8495) by @crusty-voidzero
- fix error type for
RolldownBuild.generateand others (#8490) by @sapphi-red
โก Performance
- string_wizard: reduce allocations and add ASCII fast paths (#8541) by @IWANABETHATGUY
- use IndexBitSet to replace IndexVec<XXXIdx, bool> for module/stmt inclusion tracking (#8503) by @IWANABETHATGUY
- plugin: use IndexBitSet to optimize skipped plugins checking (#8497) by @ShroXd
- rust/tla: skip compute_tla if there is no module use TLA (#8487) by @ShroXd
๐งช Testing
- node/watch: make watch tests run in concurrent and retry-able (#8512) by @hyf0
- add test case for static flag tree-shaking (#8476) by @IWANABETHATGUY
- migrate post-banner sourcemap-with-shebang to Rust (#8477) by @Copilot
โ๏ธ Miscellaneous Tasks
- vscode:
formatOnSavefor markdown files using oxc formatter (#8536) by @minsoo-web - deps: update test262 submodule for tests (#8528) by @sapphi-red
- remove
retryworkaround from output paths test fixtures (#8520) by @Copilot - docs: add Shuyuan Wang (h-a-n-a) and remove from acknowledgements (#8509) by @Copilot
- consolidate top_level_var test cases using configVariants (#8508) by @IWANABETHATGUY
- add s390x and ppc64le linux gnu targets (#8493) by @Brooooooklyn
- Feb 26, 2026
- Date parsed from source:Feb 26, 2026
- First seen by Releasebot:Feb 27, 2026
- Modified by Releasebot:Mar 10, 2026
[1.0.0-rc.6] - 2026-02-26
Rolldown rolls out a release with breaking CSS changes, new data URL handling, and added module/type support plus bug fixes. It introduces data URL id hashing, PluginOrder::PinPost, and ESTree types exposure, while fixing sourcemaps, resolver behavior, and parsing rules for better stability.
BREAKING CHANGES
- css: remove css_entry_filenames , css_chunk_filenames and related code (#8402) by @hyf0
- css: drop builtin CSS bundling to explore alternative solutions (#8399) by @hyf0
Features
- rust/data-url: use hash as id for data url modules to prevent long string overhead (#8420) by @hyf0
- validate bundle stays within output dir (#8441) by @sapphi-red
- rust: support PluginOrder::PinPost (#8417) by @hyf0
- support ModuleType:Copy (#8407) by @hyf0
- expose ESTree types from rolldown/utils (#8400) by @sapphi-red
Bug Fixes
- incorrect sourcemap when postBanner/postFooter is used with shebang (#8459) by @Copilot
- resolver: disable node_path option to align ESM resolver behavior (#8472) by @sapphi-red
- parse .js within "type": "commonjs" as ESM for now (#8470) by @sapphi-red
- case-insensitive filename conflict detection for chunk deduplication (#8458) by @Copilot
- prevent inlining CJS exports that are mutated by importers (#8456) by @IWANABETHATGUY
- parse .cjs /.cts /.js within "type": "commonjs" as CommonJS (#8455) by @sapphi-red
- plugin/copy-module: correct hooks' priority (#8423) by @hyf0
- plugin/chunk-import-map: ensure render_chunk_meta run after users plugin (#8422) by @hyf0
- rust: correct hooks order of DataUriPlugin (#8418) by @hyf0
- jsx.preserve should also considering tsconfig json preserve (#8324) by @IWANABETHATGUY
- deferred_scan_data.rs "Should have resolved id: NotFound" error (#8379) by @sapphi-red
- cli: require value for --dir / -d and --file / -o (#8378) by @Copilot
- dev: avoid mutex deadlock caused by inconsistent lock order (#8370) by @sapphi-red
(etc)
Original source Report a problem - Feb 18, 2026
- Date parsed from source:Feb 18, 2026
- First seen by Releasebot:Feb 19, 2026
- Modified by Releasebot:Mar 6, 2026
[1.0.0-rc.5] - 2026-02-18
Rolldown delivers a feature rich release with new utilities and build improvements. It adds Visitor to utils, moduleInfo inputFormat, tree shaking refinements, new IndexBitSet, extended BitSet, import analysis and reporter enhancements, plus assorted bug fixes that tighten dependency paths and stability.
Features
- add
Visitortorolldown/utils(#8373) by @sapphi-red - module-info: add
inputFormatproperty toModuleInfo(#8329) by @shulaoda - default
treeshake.invalid_import_side_effectstofalse(#8357) by @sapphi-red - rolldown_utils: add
IndexBitSet(#8343) by @sapphi-red - rolldown_utils: add more methods and trait impls to BitSet (#8342) by @sapphi-red
- rolldown_plugin_vite_build_import_analysis: add support for
await import().then((m) => m.prop)(#8328) by @sapphi-red - rolldown_plugin_vite_reporter: support custom logger for build infos (#7652) by @shulaoda
- rust/mcs: support
entriesAwareMergeThreshold(#8312) by @hyf0 - mcs:
maxSizewill split the oversized chunk with taking file relevance into account (#8277) by @hyf0 - rolldown_plugin_vite_import_glob: support template literal in glob import patterns (#8298) by @shulaoda
- rolldown_plugin_chunk_import_map: output importmap without spaces (#8297) by @sapphi-red
- add INEFFECTIVE_DYNAMIC_IMPORT warning in core (#8284) by @shulaoda
- mcs: generate more readable name for
entriesAwarechunks (#8275) by @hyf0 - mcs: support
entriesAware(#8274) by @hyf0
Bug Fixes
- improve circular dependency detection in chunk optimizer (#8371) by @IWANABETHATGUY
- align
minify.compress: trueandminify.mangle: truewithminify: true(#8367) by @sapphi-red - rolldown_plugin_esm_external_require: apply conversion to UMD and IIFE outputs (#8359) by @sapphi-red
- cjs: bailout treeshaking on cjs modules that have multiple re-exports (#8348) by @hyf0
- handle member expression and this expression in JSX element name rewriting (#8323) by @IWANABETHATGUY
- pad
encode_hash_with_baseoutput to fixed length to prevent slice panics (#8320) by @shulaoda xxhash_with_baseskips hashing when input is exactly 16 bytes (#8319) by @shulaoda- complete
ImportKind::try_fromwith missing variants and correcturl-importtourl-token(#8310) by @shulaoda - mark Node.js builtin modules as side-effect-free when resolved via
externalconfig (#8304) by @IWANABETHATGUY - mcs:
maxSizeshould split chunks correctly based on sizes (#8289) by @hyf0
... (content truncated to match verbatim block in source)
Original source Report a problem