Releases: rolldown/rolldown
v1.0.0-rc.16
[1.0.0-rc.16] - 2026-04-16
🚀 Features
- const enum cross-module inlining support (#8796) by @Dunqing
- implement module tagging system for code splitting (#9045) by @hyf0
🐛 Bug Fixes
- rolldown_plugin_vite_manifest: handle duplicate chunk names for CSS entries (#9059) by @sapphi-red
- improve error message for invalid return values in function options (#9125) by @shulaoda
- await async export-star init wrappers (#9101) by @thezzisu
- never panic during diagnostic emission (#9091) by @IWANABETHATGUY
- include array rest pattern in binding_identifiers (#9112) by @IWANABETHATGUY
- rolldown: set worker thread count with ROLLDOWN_WORKER_THREADS (#9086) by @fpotter
- rolldown_plugin_lazy_compilation: escape request ID in proxy modules (#9102) by @h-a-n-a
- treat namespace member access as side-effect-free (#9099) by @IWANABETHATGUY
- relax overly conservative side-effect leak check in chunk optimizer (#9085) by @IWANABETHATGUY
- runtime: release
cbreference after__commonJSfactory initialization (#9067) by @hyf0-agent @__NO_SIDE_EFFECTS__wrapper should not remove dynamic imports (#9075) by @IWANABETHATGUY- rolldown_plugin_vite_import_glob: use POSIX path join/normalize for glob resolution (#9077) by @shulaoda
- emit REQUIRE_TLA error when require() loads a module with top-level await (#9071) by @jaehafe
- emit namespace declaration for empty modules in manual chunks (#8993) by @privatenumber
- rolldown_plugin_vite_import_glob: keep common base on path segment boundary (#9070) by @shulaoda
- prevent circular runtime helper imports during facade elimination (#8989) (#9057) by @IWANABETHATGUY
- correct circular dependency check in facade elimination (#9047) by @h-a-n-a
- docs: correct dead link in CodeSplittingGroup.tags JSDoc (#9051) by @hyf0
- emit DUPLICATE_SHEBANG warning when banner contains shebang (#9026) by @IWANABETHATGUY
🚜 Refactor
- use semantic reference flags for member write detection (#9060) by @Dunqing
- extract UsedSymbolRefs newtype wrapper (#9130) by @IWANABETHATGUY
- dedupe await wrapping in export-star init emit (#9119) by @IWANABETHATGUY
- calculate side-effect-free function symbols on demand (#9120) by @IWANABETHATGUY
- extract duplicated top-level await handling into shared helper (#9087) by @IWANABETHATGUY
- rolldown_plugin_vite_import_glob: use split_first for get_common_base (#9069) by @shulaoda
- simplify ESM init deduplication with idiomatic insert check (#9044) by @IWANABETHATGUY
📚 Documentation
- document runtime module placement strategy in code-splitting design (#9062) by @IWANABETHATGUY
- clarify
optionshook behavior difference with Rollup in watch mode (#9053) by @sapphi-red - meta/design: introduce module tags (#9017) by @hyf0
⚡ Performance
- convert
generate_transitive_esm_initto iterative (#9046) by @IWANABETHATGUY
🧪 Testing
- merge strict/non_strict test variants using configVariants (#9089) by @IWANABETHATGUY
⚙️ Miscellaneous Tasks
- disable Renovate auto-updates for oxc packages (#9129) by @IWANABETHATGUY
- upgrade oxc@0.126.0 (#9127) by @Dunqing
- deps: update napi to v3.8.5 (#9126) by @renovate[bot]
- deps: update dependency @napi-rs/cli to v3.6.2 (#9123) by @renovate[bot]
- move lazy-compilation design doc (#9117) by @h-a-n-a
- deps: update dependency vite-plus to v0.1.18 (#9118) by @renovate[bot]
- deps: update dependency vite-plus to v0.1.17 (#9113) by @renovate[bot]
- deps: update oxc to v0.125.0 (#9094) by @renovate[bot]
- deps: update dependency follow-redirects to v1.16.0 [security] (#9103) by @renovate[bot]
- deps: update test262 submodule for tests (#9097) by @sapphi-red
- deps: update crate-ci/typos action to v1.45.1 (#9096) by @renovate[bot]
- deps: update rust crates (#9081) by @renovate[bot]
- deps: update npm packages (#9080) by @renovate[bot]
- remove outdated TODO in determine_module_exports_kind (#9072) by @jaehafe
- rust/test: support
extendedTests: falseshorthand in test config (#9050) by @hyf0 - ci: extract shared infra-changes anchor in path filters (#9054) by @hyf0
- add docs build check to catch dead links in PRs (#9052) by @hyf0
❤️ New Contributors
- @thezzisu made their first contribution in #9101
- @fpotter made their first contribution in #9086
- @jaehafe made their first contribution in #9071
- @privatenumber made their first contribution in #8993
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.15
[1.0.0-rc.15] - 2026-04-09
🐛 Bug Fixes
- prevent stack overflow in
generate_transitive_esm_initon circular dependencies (#9041) by @shulaoda
🚜 Refactor
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.14
[1.0.0-rc.14] - 2026-04-08
🚀 Features
- rust: add
disable_panic_hookfeature to disable the panic hook (#9023) by @sapphi-red - support inlineConst for CJS exports accessed through module.exports (#8976) by @h-a-n-a
🐛 Bug Fixes
- rolldown_plugin_vite_import_glob: normalize resolved alias path to prevent double slashes (#9032) by @shulaoda
- rolldown_plugin_vite_import_glob: follow symlinks in file scanning (#9000) by @Copilot
- wrap CJS entry modules for IIFE/UMD when using exports/module (#8999) by @IWANABETHATGUY
- emit separate __toESM bindings for mixed ESM/CJS external imports (#8987) by @IWANABETHATGUY
- tree-shake dead dynamic imports to side-effect-free CJS modules (#8529) by @sapphi-red
- skip inlining stale CJS export constants on module.exports reassignment (#8990) by @IWANABETHATGUY
🚜 Refactor
- generator: migrate ecma formatting from npx oxfmt to vp fmt (#9022) by @shulaoda
- generator: replace npx oxfmt with vp fmt for ecma formatting (#9021) by @shulaoda
📚 Documentation
- contrib-guide: mention that running tests on older Node.js version will have different stat results (#8996) by @claude
⚙️ Miscellaneous Tasks
- deps: update npm packages (#9002) by @renovate[bot]
- deps: update dependency @napi-rs/cli to v3.6.1 (#9034) by @renovate[bot]
- deps: upgrade oxc to 0.124.0 (#9018) by @shulaoda
- deps: update test262 submodule for tests (#9010) by @sapphi-red
- deps: update dependency oxfmt to ^0.44.0 (#9012) by @renovate[bot]
- deps: update dependency vite to v8.0.5 [security] (#9009) by @renovate[bot]
- deps: update dependency vite-plus to v0.1.16 (#9008) by @renovate[bot]
- deps: update rust crates (#9003) by @renovate[bot]
- deps: update github-actions (#9004) by @renovate[bot]
- deps: update dependency lodash-es to v4.18.1 [security] (#8992) by @renovate[bot]
- deps: update crate-ci/typos action to v1.45.0 (#8988) by @renovate[bot]
- upgrade oxc npm packages to 0.123.0 (#8985) by @shulaoda
◀️ Revert
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.13
[1.0.0-rc.13] - 2026-04-01
🚀 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
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.12
[1.0.0-rc.12] - 2026-03-25
🚀 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
🧪 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
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.11
[1.0.0-rc.11] - 2026-03-23
🚀 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
📚 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
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.10
[1.0.0-rc.10] - 2026-03-18
🚀 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]
- deps: update rust crates (#8717) by @renovate[bot]
- deps: update github-actions (#8716) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.17.0 (#8713) by @renovate[bot]
- deps: bump cargo-shear to v1.11.2 (#8711) by @Boshen
- use org level
CODE_OF_CONDUCT.md(#8706) by @sapphi-red - fix cache key mismatch and remove redundant cache saves (#8695) by @Boshen
- deps: update oxc apps (#8692) by @renovate[bot]
- deps: update oxc apps (#8649) by @renovate[bot]
- should do matrix out side of reusable workflows 2 (#8691) by @hyf0
- should do matrix out side of reusable workflows (#8690) by @hyf0
- deps: update dependency rolldown-plugin-dts to v0.22.5 (#8689) by @renovate[bot]
- upgrade oxc to 0.119.0 and oxc_resolver to 11.19.1 (#8686) by @Boshen
- correct if condition of
type-checkjob (#8677) by @hyf0 - Gate CI type-check job on node changes (#8669) by @Copilot
- benchmark: improve codspeed build (#8665) by @Boshen
- deps: update oxc to v0.118.0 (#8650) by @renovate[bot]
- deps: update crate-ci/typos action to v1.44.0 (#8647) by @renovate[bot]
- deps: update oxc resolver to v11.19.1 (#8646) by @renovate[bot]
- deps: update dependency rust to v1.94.0 (#8648) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.22.4 (#8645) by @renovate[bot]
◀️ Revert
- Revert "ci: Gate CI type-check job on node changes" (#8674) by @hyf0
- "chore(deps): update dependency rust to v1.94.0 (#8648)" (#8660) by @shulaoda
❤️ New Contributors
- @origami-z made their first contribution in #8770
- @drewolson made their first contribution in #8741
- @thisisnkc made their first contribution in #8731
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.9
[1.0.0-rc.9] - 2026-03-11
💥 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
🚜 Refactor
- binding: remove outdated TODO comment in MagicString to_string() (#8613) by @IWANABETHATGUY
📚 Documentation
- update VitePress theme to 4.8.2 for narrow-screen layout regression (#8612) by @Copilot
⚡ Performance
🧪 Testing
⚙️ 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
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.8
[1.0.0-rc.8] - 2026-03-09
🚀 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
formatoption 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
- 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.strictoption (#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
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com
v1.0.0-rc.7
[1.0.0-rc.7] - 2026-03-05
⚡ Smarter Code Generation Defaults
- DCE-only minification and smart constant inlining are now enabled by default
- Produces cleaner, smaller output bundles without requiring explicit configuration
💡 LLM-Friendly Bundle Analyzer Reports
- New markdown output format for the bundle analyzer plugin with bundle summaries, module graphs, dependency chains, and optimization suggestions
- Optimization suggestions now also recommend using the entriesAware option when common chunks contain modules only reachable from specific entries
💥 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
◀️ Revert
❤️ New Contributors
- @minsoo-web made their first contribution in #8536
- @crusty-voidzero made their first contribution in #8495
- @maciekzygmunt made their first contribution in #8486
Co-authored-by: shulaoda 165626830+shulaoda@users.noreply.github.com