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
    Rolldown logo

    Rolldown

    [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.chunks in renderChunk hook (#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-ubuntu when 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_view return 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/runtime and @emnapi/core as 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-check scripts (#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
    Original source Report a problem
  • Mar 25, 2026
    • Date parsed from source:
      Mar 25, 2026
    • First seen by Releasebot:
      Mar 26, 2026
    Rolldown logo

    Rolldown

    [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: entriesAware should calculate sizes without duplication (#8887) by @hyf0
    • non-deterministic chunk generation (#8882) by @sapphi-red
    • is_top_level incorrectly 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
    Original source Report a problem
  • 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
    Rolldown logo

    Rolldown

    [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.sourcemapExcludeSources option (#8828) by @sapphi-red
    • support getIndentString in MagicString (#8775) by @IWANABETHATGUY
    • MagicString ignoreList support (#8773) by @IWANABETHATGUY

    ๐Ÿ› Bug Fixes

    • forward test filters through vp run (#8870) by @younggglcy
    • types: remove pluginName from MinimalPluginContext (#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 vpx instead of vp exec for pkg-pr-new (#8827) by @Boshen
    • set order for 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/lazy to examples/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
    Original source Report a problem
  • Mar 18, 2026
    • Date parsed from source:
      Mar 18, 2026
    • First seen by Releasebot:
      Mar 19, 2026
    • Modified by Releasebot:
      Mar 23, 2026
    Rolldown logo

    Rolldown

    [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_pnp option 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: false breaking 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_optimization by 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 BindingIdentifierExt to use BindingIdentifier::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 inject option 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.symlinks is 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 reset category 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/lazy to examples/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
    Original source Report a problem
  • Mar 11, 2026
    • Date parsed from source:
      Mar 11, 2026
    • First seen by Releasebot:
      Mar 11, 2026
    Rolldown logo

    Rolldown

    [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 false to '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-run build step from cargo-test (#8623) by @Boshen
    • rust: use cargo-shear to 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
    Original source Report a problem
  • Mar 9, 2026
    • Date parsed from source:
      Mar 9, 2026
    • First seen by Releasebot:
      Mar 10, 2026
    Rolldown logo

    Rolldown

    [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
    Original source Report a problem
  • Mar 5, 2026
    • Date parsed from source:
      Mar 5, 2026
    • First seen by Releasebot:
      Mar 10, 2026
    Rolldown logo

    Rolldown

    [1.0.0-rc.7] - 2026-03-05

    Rolldown unveils 1.0.0-rc.7 release candidate dated 2026-03-05.

    [1.0.0-rc.7]

    2026-03-05

    Original source Report a problem
  • Mar 5, 2026
    • Date parsed from source:
      Mar 5, 2026
    • First seen by Releasebot:
      Mar 6, 2026
    Rolldown logo

    Rolldown

    [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 offset property support (#8531) by @IWANABETHATGUY
    • add output.strict option 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 plugins on NormalizedInputOptions for buildStart hook (#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_sync deadlock (#8518) by @IWANABETHATGUY
    • remove debug-only jsx_preset and UntranspiledSyntaxError (#8511) by @IWANABETHATGUY
    • apply topLevelVar to exported const/let declarations (#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.generate and 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: formatOnSave for markdown files using oxc formatter (#8536) by @minsoo-web
    • deps: update test262 submodule for tests (#8528) by @sapphi-red
    • remove retry workaround 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
    Original source Report a problem
  • Feb 26, 2026
    • Date parsed from source:
      Feb 26, 2026
    • First seen by Releasebot:
      Feb 27, 2026
    • Modified by Releasebot:
      Mar 10, 2026
    Rolldown logo

    Rolldown

    [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
    Rolldown logo

    Rolldown

    [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 Visitor to rolldown/utils (#8373) by @sapphi-red
    • module-info: add inputFormat property to ModuleInfo (#8329) by @shulaoda
    • default treeshake.invalid_import_side_effects to false (#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: maxSize will 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 entriesAware chunks (#8275) by @hyf0
    • mcs: support entriesAware (#8274) by @hyf0

    Bug Fixes

    • improve circular dependency detection in chunk optimizer (#8371) by @IWANABETHATGUY
    • align minify.compress: true and minify.mangle: true with minify: 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_base output to fixed length to prevent slice panics (#8320) by @shulaoda
    • xxhash_with_base skips hashing when input is exactly 16 bytes (#8319) by @shulaoda
    • complete ImportKind::try_from with missing variants and correct url-import to url-token (#8310) by @shulaoda
    • mark Node.js builtin modules as side-effect-free when resolved via external config (#8304) by @IWANABETHATGUY
    • mcs: maxSize should split chunks correctly based on sizes (#8289) by @hyf0

    ... (content truncated to match verbatim block in source)

    Original source Report a problem

Related vendors