⚡️ Rspack 2.0 Released! ⚡️
- 🚀 Read our announcement blog post for new features, and highlights
- 🛠️ Check out the step-by-step migration guide for upgrading from v1 to v2
What's Changed
Breaking Changes 🛠
- feat!: remove
experiments.SubResourceIntegrityPluginby @LingyuCoder in #12642 - feat!: remove
experiments.rspackFutureand movebundlerInfotooutputby @LingyuCoder in #12654 - feat!: remove
experiments.parallelLoaderby @LingyuCoder in #12658 - feat!: remove
profileandstats.profileby @LingyuCoder in #12662 - feat!: enable
verbatimModuleSyntaxofbuiltin:swc-loaderby default by @LingyuCoder in #12668 - feat!: remove
rspack.experiments.lazyCompilationMiddlewareby @LingyuCoder in #12736 - feat!: remove deprecated WarnCaseSensitiveModulesPlugin by @LingyuCoder in #12737
- feat!: remove deprecated draft option from LightningCSS minimizer by @LingyuCoder in #12740
- feat!: remove deprecated cssHeadDataCompression option by @LingyuCoder in #12741
- feat!: remove deprecated output library fields by @LingyuCoder in #12745
- feat!: make @rspack/dev-server an optional peer dependency by @LingyuCoder in #12750
- feat!: use rspackChunk as default value of chunkLoadingGlobal by @LingyuCoder in #12779
- feat!: disable requireAsExpression by default by @LingyuCoder in #12786
- feat!: use "rspack" as default trustedTypes policy name by @LingyuCoder in #12799
- feat!: remove sri option of HtmlRspackPlugin by @LingyuCoder in #12651
- feat!: remove
output.charsetby @LingyuCoder in #12660 - feat!: disable
.swcrcreading in JavaScript compiler by @CPunisher in #12667 - feat!: remove deprecated getHooks method from plugins by @LingyuCoder in #12738
- feat!: Rspack off modules and assets in normal stats by @SyMind in #12701
- feat!: default loader/plugin target by rspack target by @ahabhgk in #12752
- feat!: use rspackHotUpdate as default hotUpdateGlobal by @LingyuCoder in #12774
- feat!: enable css by default by @JSerFeng in #12744
- feat!: default targets for loader/plugin derived by rspack target, part 2 by @ahabhgk in #12780
- feat!: do not expose EsmLibraryPlugin to user directly, use modern-module instead by @JSerFeng in #12792
- feat!: revert enable verbatimModuleSyntax by @hardfist in #12846
- feat!: remove experiments.outputModule config by @JSerFeng in #12912
- feat!: change default value for devtool by @SyMind in #12934
- feat!: default resolve roots to empty array by @stormslowly in #13273
- feat!: remove .wasm from default js extensions by @hardfist in #13321
- feat!: remove 'webpack' from default CSS import conditions by @chenjiahan in #13348
- feat!: change exports presence default to true by @ahabhgk in #13002
- feat!: Add
pnp_manifestoption to resolver by @smeng9 in #12417 - feat(swc-loader)!: move rspackExperiments.import to top-level transformImport by @JSerFeng in #13345
- feat(pnp)!: drop multi yarn pnp project resolving by @stormslowly in #13389
- feat!: disable bundlerInfo force by default by @LingyuCoder in #13599
- feat(progress-plugin)!: replace handler rest args with structured info object by @chenjiahan in #13049
- fix!: remove unsafe cache by @SyMind in #12892
- fix!: remove debug hash algorithm by @chenjiahan in #12951
- fix!: remove deprecated readResourceForScheme hook by @chenjiahan in #13027
- fix!: remove unconsumed useless
optimization.removeAvailableModulesconfig option by @JSerFeng in #13317 - refactor!: remove default exports in hot modules by @Timeless0911 in #13213
- refactor!: drop support for Node 18 by @Timeless0911 in #12739
- refactor!: drop CommonJS build and transition to pure ESM package by @Timeless0911 in #12733
- refactor!: move incremental option from experiments to top-level config by @ahabhgk in #12793
- refactor(browser)!: remove
rspack_browsercrate and require@rspack/browserto run in a Worker by @CPunisher in #13712 - refactor!: use
strictThisContextOnImportsto control ns obj as this by @ahabhgk in #13234
Performance Improvements ⚡
- perf: remove ropey crate to reduce binary size by @SyMind in #12433
- perf: optimize require regex compilation using static LazyLock by @LingyuCoder in #12944
- perf: try fix mf performance regression by @hardfist in #12958
- perf: Cache default context regexp for parser plugins by @hardfist in #13024
- perf: Enable more Clippy performance checks and reduce redundant clones by @hardfist in #13069
- perf: remove unused env call by @hardfist in #13080
- perf: use slotmap for scope info by @CPunisher in #13101
- perf: optimize DependencyLocation computation with incremental caching by @SyMind in #13109
- perf: Convert dependent full hash hook to sync with rayon support by @hardfist in #13130
- perf: Replace OverlayMap with RollbackAtomMap in exports artifact by @hardfist in #13143
- perf: remove ProcessUnlazyDependenciesTask by @hardfist in #13151
- perf: reduce content hash and lazy filename tempate ctx compute by @SyMind in #13156
- perf: by json-escape-simd by @SyMind in #13183
- perf: Add smallvec-backed member chains by @hardfist in #13227
- perf: improve find_new_name by @LingyuCoder in #13209
- perf(regex): enable case-insensitive endsWith fast path by @LingyuCoder in #13232
- perf: reduce replace source string alloc by @SyMind in #13150
- perf: improve data structure by @LingyuCoder in #13259
- perf(core): cache ModuleId hash by @LingyuCoder in #13264
- perf: use UkeySet or IdentifierSet for graph and plugin collections by @LingyuCoder in #13266
- perf: remove ukey collections by @LingyuCoder in #13309
- perf: replace unnecessary usize and u64 with u32 by @hardfist in #13338
- perf: dyn lint for default hash by @SyMind in #13346
- perf: parser hook plugins by @SyMind in #13373
- perf(esm-lib): optimize ESM library rendering performance by @JSerFeng in #13334
- perf(build_chunk_graph): optimize data structures in code splitter by @JSerFeng in #13403
- perf: rspack_storage parallel write by @jerrykingxyz in #13407
- perf(core): reduce target resolution overhead by @LingyuCoder in #13513
- perf(javascript): cache non-nested export target lookups by @LingyuCoder in #13545
- perf(rspack-sources): perf potential tokens and source map to json by @SyMind in #13497
- perf: modules should use IdentifierHasher by @SyMind in #13601
- perf(code-splitting): reuse side effects evaluation state by @LingyuCoder in #13668
- perf: trace hook interception only pays off once global tracing is already on by @SyMind in #13689
- perf: Replace parser hook dispatch SmallVecs with bitmasks by @hardfist in #13774
New Features 🎉
- feat: improve external module rendering by @JSerFeng in #12813
- feat: builtin react server component by @SyMind in #12012
- feat: expose dependency loc to js by @JSerFeng in #12840
- feat: add cache.portable configuration by @jerrykingxyz in #12842
- feat: support
import.defer()for statical path by @ahabhgk in #12900 - feat(rstest): only handle global variables when globals is true by @9aoy in #12921
- feat: add
beforeModuleIdshook by @hamlim in #12809 - feat: support
import.defer()for context module by @ahabhgk in #12938 - feat: support MF share treeshake by @2heal1 in #12250
- feat: make license banner comment more concise by @chenjiahan in #12960
- feat: preserve tla expr for EsmLibrary by @JSerFeng in #12942
- feat: add support for readonly persistent cache by @cellison-figma in #12902
- feat(css): introduce
resolveImportparser option for css parser to choose whether to resolve@importsyntax by @JSerFeng in #12672 - feat: add the map of json data size to rspack_plugin_rsdoctor for use rsdoctor by @yifancong in #12950
- feat: splitChunks for EsmLibraryPlugin by @JSerFeng in #12521
- feat: automatically split runtime chunk by @JSerFeng in #13123
- feat: optimize star exports from externals by @JSerFeng in #13050
- feat: optimize dyn import for esm output by @JSerFeng in #13121
- feat: making RSC compatible with lazy compilation by @SyMind in #13136
- feat: cjs require destructuring assignment tree shaking by @ahabhgk in #13149
- feat: keep unknown import.meta properties by @intellild in #12796
- feat(javascript): align scope termination and DCE with webpack by @LingyuCoder in #13147
- feat: support strict this context on imports by @ahabhgk in #13169
- feat: rsdoctor support the side effects infos by @yifancong in #12983
- feat(javascript): improve const eval by @LingyuCoder in #13167
- feat(stats): enable stats.colors by default when environment supports by @LingyuCoder in #13161
- feat(esm-library): auto-name unnamed dynamic import chunks with deterministic module name by @JSerFeng in #13172
- feat(deps): update @rspack/dev-server to 2.0.0-beta.1 by @chenjiahan in #13205
- feat: cjs require variable property access tree shaking by @ahabhgk in #13155
- feat: enable mangle exports for cjs full require by @ahabhgk in #13212
- feat(esm-library): deduplicate non-concatenated external modules after scope hoisting by @JSerFeng in #13210
- feat(esm): optimize dynamic import exports for namespace and tree-shaking by @JSerFeng in #13211
- feat: support regex flags and JavaScript lookaheads in extractComments condition by @Copilot in #12990
- feat(mf): shareScope support array type by @2heal1 in #13107
- feat: add Node.js version check during initialization by @chenjiahan in #13261
- feat: rsc support disable client api checks by @SyMind in #13263
- feat: update
devServertypes for@rspack/dev-serverv2 by @chenjiahan in #13278 - feat(create-rspack): add Rstest as an optional tool by @chenjiahan in #13300
- feat: support rsc manifest callback by @SyMind in #13277
- feat: rspack_plugin_rsdoctor add collect connections function by @yifancong in #13181
- feat: tree shaking for inlined members access dynamic import by @ahabhgk in #13381
- feat: add EsmNodeTargetPlugin for ESM-aware node builtin externals by @JSerFeng in #13370
- feat(rsdoctor): add support for dependency connections by @yifancong in #13384
- feat: enable mangle exports for cjs reexport by @ahabhgk in #13413
- feat(rstest): support unmockRequire methods by @9aoy in #13412
- feat(create-rspack): update typescript to v6 by @chenjiahan in #13445
- feat(swc-loader): add detectSyntax option to infer parser by @chenjiahan in #13467
- feat: support
import.meta.mainby @ahabhgk in #13489 - feat: support expression in
import.meta.resolveargument by @ahabhgk in #13523 - feat: add ModuleGraph.getUsedExports to ModuleGraph by @SyMind in #13519
- feat: Implement HashedModuleIdsPlugin by @aancuta in #13197
- feat: add TryFutureConsumer with short-circuit cancellation by @jerrykingxyz in #13554
- feat(binding): add active-related APIs to ModuleGraphConnection by @JSerFeng in #13548
- feat: support optimize side effects free function calls by @JSerFeng in #12559
- feat(node-binding): add external wasm debug info for wasm dwarf debugging by @hardfist in #13638
- feat(create-rspack): modernize starter template configs by @chenjiahan in #13645
- feat(split-chunks): support enforceSizeThreshold option by @jaehafe in #13576
- feat(resolve): support
#/subpath alias import by @stormslowly in #13633 - feat(create-rspack): reuse rspack config in rstest templates by @chenjiahan in #13666
- feat: enforce macro-generated implemented_hooks in debug builds by @SyMind in #13677
- feat: only apply require-* parser plugins to js-auto/js-dynamic by @SyMind in #13678
- feat: skip building side-effect-only imports in make by @ahabhgk in #13688
- feat: add compiler.hooks.shouldRecord for NoEmitOnErrorsPlugin by @stormslowly in #13630
- feat(cli): use jiti to load typescript config by @hardfist in #13690
- feat: expose jsonp template plugin by @ahabhgk in #13700
- feat(config): update default performance budgets by @chenjiahan in #13717
- feat: support relative output.path relative to context by @hardfist in #13718
- feat(create-rspack): add optional agent skills by @chenjiahan in #13729
- feat: persistent cache for swc js minimizer plugin by @ahabhgk in #13706
- feat(cli): add --open / --no-open to rspack dev / serve by @mvanhorn in #13777
Bug Fixes 🐞
-
fix: failed to resolve 'browserslist-load-config' module by @chenjiahan in #12767
-
fix: correct watchpack require path by @chenjiahan in #12771
-
fix(browser): fix
@rspack/browserfailure after pure esm transformation by @Timeless0911 in #12781 -
fix(template): add @rspack/dev-server to dev dependencies by @LingyuCoder in #12821
-
fix: normalize paths for extract source map by @ahabhgk in #12825
-
fix(mf): use dynamic exports type for MF modules by @ahabhgk in #12841
-
fix: should not panic when access slate stats by @SyMind in #12839
-
fix(mf): prevent entry-specific chunks from polluting manifest assets and refactor manifest generation by @2heal1 in #12836
-
fix: enable panic backtrace for release-debug profile by @Copilot in #12856
-
fix(mf): respect request changes in shared plugins by @ahabhgk in #12863
-
fix: prevent panic on template literals with invalid escape sequences by @Copilot in #12867
-
fix: rsc should handle concat module in build server manifest by @SyMind in #12859
-
fix: fix used exports for global entry that inject to async entrypoints by @ahabhgk in #12883
-
fix: should render export name when re-export from different modules by @JSerFeng in #12886
-
fix: prevent server actions from being removed in production build by @SyMind in #12898
-
fix(rstest):
rstest.importActualnot work when imported from@rstest/coreby @9aoy in #12908 -
fix: rsc plugin stats should use AtomicRefCell by @SyMind in #12923
-
fix: context dependencies hash calculation use cache.snapshot configuration by @jerrykingxyz in #12937
-
fix: RSC fails to properly handle Windows paths by @SyMind in #12969
-
fix: webpack_chunk_load api compile wrong by @SyMind in #12971
-
fix: Replace AtomicRefCell with Mutex in RSC Coordinator by @SyMind in #12972
-
fix: port webpack fix for webpack_module name collision by @Copilot in #12956
-
fix: preserve import external without modify mg by @JSerFeng in #12973
-
fix: allow to export the same name of same local, fix entry splitting algorithm by @JSerFeng in #13000
-
fix(esm-lib-plugin): support inline export for dyn import by @JSerFeng in #12949
-
fix: enable requireAsExpression by default again and not to throw warning when requireAlias is disabled by @LingyuCoder in #12998
-
fix: prevent module point to wild pointer by @SyMind in #13021
-
fix(core): missing @rspack/lite-tapable types by @chenjiahan in #13031
-
fix: allow both 0.24+ and 2.0+ of @module-federation/runtime-tools by @chenjiahan in #13039
-
fix: infinite loop in
is_available_chunkwhen chunk groups form a cycle by @SyMind in #13042 -
fix: normalize file dependencies paths in CopyPlugin to prevent incorrect rebuild triggers by @SyMind in #13043
-
fix(module-federation): encode runtime data URI and support named wrappers by @BleedingDev in #12982
-
fix: generating correct types for
@rspack/lite-tapableby @colinaaa in #13048 -
fix(rstest): hoist importActual ESM imports by @9aoy in #13025
-
fix(rstest): replace
mockRequiretorstest_mock_requireby @9aoy in #13056 -
fix: compile document fragments in HtmlRspackPlugin by @LingyuCoder in #13103
-
fix: should not treat module with module variable as esm compatible by @JSerFeng in #13129
-
fix: preserve optional chaining in CommonJS self-reference expressions by @LingyuCoder in #13132
-
fix(core): type issues when skipLibCheck is disabled by @chenjiahan in #13138
-
fix: skip SRI for external URLs not under publicPath by @LingyuCoder in #13134
-
fix: when there are 2+ dep targets in the same chunk, create facade chunks for all of them by @JSerFeng in #13154
-
fix(html): handle html fragments and diagnostics by @LingyuCoder in #13178
-
fix: try catch return statement DCE by @LingyuCoder in #13179
-
fix: revert lastCompilation check for stats by @hardfist in #13214
-
fix(esm-library): fix dynamic import of same-chunk concatenated modules and external name deconfliction by @JSerFeng in #13220
-
fix: Fix stats artifact fallback warning test to use stale stats by @hardfist in #13219
-
fix: Remove DerefMut impl from ArcPath by @hardfist in #13235
-
fix(defaults): make module rules regex case-sensitive by @LingyuCoder in #13238
-
fix: dup external module declarations by @JSerFeng in #13231
-
fix: merge exports info when merging external modules by @JSerFeng in #13257
-
fix(create-rspack): update @rspack/dev-server to 2.0.0-beta.4 by @chenjiahan in #13268
-
fix: avoid import duplicate identifiers by @JSerFeng in #13267
-
fix: restore panic backtrace for macOS arm64 bindings by @hardfist in #13283
-
fix(collections): use FxHasher for Ukey by @hardfist in #13293
-
fix(esm-lib): tree-shake unused exports, fix property_access name collision and get_binding panic by @JSerFeng in #13288
-
fix: cjs tree shaking used with named export by @ahabhgk in #13303
-
fix: huge file dependencies cause range error by @SyMind in #13305
-
fix: dynamic import tree shaking used with named export by @ahabhgk in #13307
-
fix: correct dev server types by @chenjiahan in #13313
-
fix(rstest): prevent the re-exports optimization for mocked modules by @9aoy in #13262
-
fix(esm-lib): render init fragments after import source by @JSerFeng in #13308
-
fix: normal runtime use should not contains require function by @JSerFeng in #13190
-
fix: strict this context for dynamic import and cjs require by @ahabhgk in #13328
-
fix(javascript): preserve live code after labeled breaks by @LingyuCoder in #13325
-
fix: WorkerPlugin should be inherented in children compiler by @stormslowly in #13310
-
fix(parser): avoid treating require.resolve chains as require by @Timeless0911 in #13341
-
fix(esm-lib): avoid exporting webpack_require and useless runtime when runtimeChunk is false by @JSerFeng in #13374
-
fix: optimize concatenated module code generation hot paths by @LingyuCoder in #13375
-
fix: avoid analyze cjs tree shaking for user defined require by @ahabhgk in #13401
-
fix(esm-lib): replace panics in get_module_chunk with Result-based error handling by @JSerFeng in #13396
-
fix(rsc): should compile css without use server-entry by @SyMind in #13402
-
fix(esm-library): deduplicate external module import identifiers in ESM output by @JSerFeng in #13418
-
fix(esm-lib): use package name for node_modules short name in dynamic imports by @JSerFeng in #13406
-
fix: add coverage for esm library linking, and fix linking errors by @JSerFeng in #13424
-
fix: should enforce orphan:false for concatenated module by @JSerFeng in #10317
-
fix: lightningcss with previous loader source maps by @SyMind in #13436
-
fix(core): implement new Map methods on Compilation.entries by @chenjiahan in #13444
-
fix(core): preserve external namespace access in esm externals by @JSerFeng in #13442
-
fix: keep empty entry runtime chunk for modern-module render by @Timeless0911 in #13452
-
fix(esm-library): support star reexport namespaces by @JSerFeng in #13448
-
fix(core): bump rslib and fix type related issues by @Timeless0911 in #13376
-
fix: use Symbol.for() for shared symbol identity in module bindings by @tryggvigy in #13457
-
fix:
import.meta.resolve()and add tests by @ahabhgk in #13469 -
fix(rstest): resolve manual mock targets with resolver by @9aoy in #13439
-
fix(esm-library): avoid duplicate webpack_require export by @JSerFeng in #13483
-
fix(esm): deconflict external bindings in module output by @JSerFeng in #13466
-
fix(watcher): rename typo
recursiron_directoriestorecurse_parent_directoriesby @jaehafe in #13510 -
fix: avoid spreading huge dependency iterables by @SyMind in #13517
-
fix(types): allow partial jsc.parser config when detectSyntax is auto by @chenjiahan in #13531
-
fix(swc-loader): fallback detectSyntax auto for virtual modules by @chenjiahan in #13529
-
fix: reset chunk.rendered in incremental build by @hardfist in #13544
-
fix(cli): surface fatal errors and unhandled rejections on process exit by @briansilah in #13506
-
fix: multicompiler devServer false support in serve by @LingyuCoder in #13572
-
fix(cli): bundle lazy-loaded helper deps by @chenjiahan in #13587
-
fix: cjs self reference mangle exports by @ahabhgk in #13588
-
fix(esm-library): emit empty export for empty node chunks by @JSerFeng in #13462
-
fix(wasm): avoid blocking-thread work under node:wasi by @hardfist in #13598
-
fix(core): move connection states to ModuleGraphConnection by @JSerFeng in #13624
-
fix(side-effects): respect DefinePlugin purity evaluation by @ahabhgk in #13628
-
fix(externals): correct external type for aliased node builtin externals by @JSerFeng in #13627
-
fix(browser): import napi symbols from binding by @CPunisher in #13641
-
fix(core): fix cjs export function tree shaking by @ahabhgk in #13643
-
fix(config): tighten rule loader/use typings by @kyungilcho in #13514
-
fix: add
@emnapi/coreand@emnapi/runtimeas dependencies by @CPunisher in #13665 -
fix(loader): preserve additionalData in builtin loaders by @ahabhgk in #13661
-
fix(cli): disable hmr in preview by @chenjiahan in #13669
-
fix(hash): keep fullhash in sync with css-only content changes by @GiveMe-A-Name in #13491
-
fix(watcher): flush pending events on unpause to prevent stuck files_data by @stormslowly in #13603
-
fix(watcher): filter stale FSEvents with mtime baseline comparison by @stormslowly in #13610
-
fix(rstest): respect importFunctionName when importDynamic is disabled by @9aoy in #13673
-
fix: support module external type in array externals by @JSerFeng in #13663
-
fix(mf): resolve version from parent package for secondary entry points by @davidfestal in #13636
-
fix(wasm): fix browser e2e timeout by running @rspack/browser builds in a worker by @hardfist in #13687
-
fix: Revert rstest importFunctionName feature when importDynamic is disabled by @9aoy in #13699
-
fix: escape invalid chars anywhere in to_identifier_with_escaped by @JSerFeng in #13707
-
fix: correct app type constraint in DevServerOptions by @chenjiahan in #13711
-
fix(esm-library): deconflict module external helper names by @JSerFeng in #13695
-
fix: render numeric chunk IDs as number literals by @JSerFeng in #13604
-
fix: align logger timing with webpack by @hardfist in #13721
-
fix(esm_library): extract TLA shared modules to break circular dependency by @JSerFeng in #13606
-
fix: rspack sources cache save and recovery by @ahabhgk in #13731
-
fix(css-extract): propagate css loading runtime requirements by @SyMind in #13746
-
fix(rstest): avoid async wrapper for sync mock factories by @9aoy in #13764
-
fix(esm-library): handle CSS modules in preserveModules by @JSerFeng in #13670
-
fix(mf): remove debug assertions from collect_expose_requirements function by @2heal1 in #13773
-
fix(rsc): render client component CSS as stylesheet resources by @SyMind in #13769
-
fix(test-tools): move wast-loader to dependencies by @colinaaa in #13782
-
fix(rstest): preserve mock hoist positions in cache by @9aoy in #13775
Refactor 🔨
- refactor: use EsmLibraryPlugin for modern-module library type by @JSerFeng in #12712
- refactor: align IncrementalPass with rspack hooks naming by @hardfist in #12817
- refactor: remove misleadning naming and adjust cache call place by @hardfist in #12818
- refactor: unify persistent_cache and memory_cache recover logic by @hardfist in #12829
- refactor: additional chunk runtime requirements hook use readonly compilation ref by @stormslowly in #12828
- refactor: move recover build_chunk_graph into artifact by @hardfist in #12835
- refactor: collect module runtime requirements by @LingyuCoder in #12843
- refactor: use runtime module for optimized deferred module by @ahabhgk in #12884
- refactor: optimize RuntimeGlobals definition with auto-inc macro by @ahabhgk in #12889
- refactor: enable rule for all crates by @hardfist in #12893
- refactor: enable more perf rule by @hardfist in #12901
- refactor: incremental.buildChunkGraph works only for skip building chunk graph by @JSerFeng in #12845
- refactor: collect runtime module runtime requirements by @LingyuCoder in #12890
- refactor: introduce PassExt trait by @hardfist in #12896
- refactor: runtime requirements in parser by @LingyuCoder in #12928
- refactor: improve runtime module macro by @LingyuCoder in #12941
- refactor: make lazy compilation active request meaningful by @stormslowly in #12887
- refactor: move build_chunk_graph result to build_chunk_graph_artifact by @hardfist in #12917
- refactor: using sync hook for dependency_referenced_exports hook by @hardfist in #12963
- refactor: use runtime template for context module codegen by @ahabhgk in #12957
- refactor: rename derefOption to stealCell and migrate atomicRefCell to Stealcell by @hardfist in #12974
- refactor: wrap artifact in StealCell by @hardfist in #12979
- refactor: Replace artifact default initialization with explicit new by @hardfist in #13005
- refactor: Ensure each crate enables workspace clippy lint by @hardfist in #12995
- refactor: improve runtime code template architecture by @LingyuCoder in #12954
- refactor: improve rspack_plugin_esm_library code style by @JSerFeng in #13009
- refactor: move exports info out of module graph by @ahabhgk in #13055
- refactor: Bind ImportedByDeferModulesArtifact to optimize chunk modules pass by @hardfist in #13059
- refactor: make finishModules readonly for compilation by @hardfist in #13058
- refactor: Add iterators to module graph helpers to avoid cloning by @hardfist in #13067
- refactor: replace collect api with iterator api by @hardfist in #13095
- refactor: make compilation readonly for CompilationSeal hook by @hardfist in #13060
- refactor: Refactor Compilation runtime requirement hook by @hardfist in #13116
- refactor: replace compiler.webpack references with rspack by @chenjiahan in #13166
- refactor: remove impl in pass by @hardfist in #13168
- refactor: using namespace object for dynamic import by @JSerFeng in #13170
- refactor: return empty artifact when access stats during artifact mutation by @hardfist in #13196
- refactor: cache regex patterns for performance by @LingyuCoder in #13217
- refactor: remove &mut Compilation in CompilationAddEntry hook by @hardfist in #13251
- refactor:
SourceSizeCachefor module size cache by @CPunisher in #13258 - refactor(core): reduce identifier hashing in hot paths by @hardfist in #13269
- refactor: specialize overlay map hashers by @hardfist in #13291
- refactor: better task loop scheduler by @CPunisher in #13280
- refactor: use enum payload for
BasicEvaluatedExpressionby @CPunisher in #13265 - refactor(ids): reduce string cloning in named module ids by @LingyuCoder in #13281
- refactor(core): batch runtime spec key updates by @LingyuCoder in #13316
- refactor: remove Ukey DataBase abstraction by @hardfist in #13339
- refactor: persistent cache storage v2 by @jerrykingxyz in #13292
- refactor(core): reduce exports info overhead in esm import checks by @LingyuCoder in #13383
- refactor: flush storage when compiler close by @jerrykingxyz in #13395
- refactor: remove
swc_node_commentsby @CPunisher in #13470 - refactor(split-chunks): optimize get_combs lookups by @LingyuCoder in #13532
- refactor: rename rspack_futures to rspack_parallel by @jerrykingxyz in #13547
- refactor: Refactor build chunk graph artifact render state reset by @hardfist in #13569
- refactor(split-chunks): reduce module group allocation churn by @LingyuCoder in #13560
- refactor(watcher): clean up stale entries from watch_patterns after unwatch by @jaehafe in #13511
- refactor(storage): db switch to readonly mode when save failed by @jerrykingxyz in #13584
- refactor: persistent cache remove lock by @jerrykingxyz in #13589
- refactor: improve persistent cache load error handling by @jerrykingxyz in #13608
- refactor(concatenated-module): reduce clone overhead by @LingyuCoder in #13642
- refactor: replace expect("TODO") with descriptive error messages by @jaehafe in #13685
- refactor: cacheable_dyn macro support crate args by @jerrykingxyz in #13776
Document Updates 📖
- docs: remove deprecated parallelCodeSplitting by @LingyuCoder in #12751
- docs: add missing documentation for JavascriptParserOptions by @LingyuCoder in #12748
- docs: update bundlerInfo version and formatting by @chenjiahan in #12772
- docs: fix typo in CSS docs by @JSerFeng in #12784
- docs: update externals function callback about
booleantype by @9aoy in #12824 - docs: add tip for devtool's cheap modifier in production build by @SyMind in #12849
- docs: correct plugin hook in SRI plugin by @chenjiahan in #12935
- docs: add guide for React Server Components by @SyMind in #12919
- docs: remove experimental outputModule configuration by @chenjiahan in #12952
- docs: move deprecated options to dedicated page by @chenjiahan in #12953
- docs: add docs about using module external with defer import by @ahabhgk in #12965
- docs: update doc links for Rspack versions by @chenjiahan in #12985
- docs: update import defer supported syntax by @ahabhgk in #12987
- docs(config): clarify output.uniqueName default value and usage by @chenjiahan in #12993
- docs: remove meaningless comments from config examples by @chenjiahan in #12994
- docs(agents): clarify semver commit requirements by @hardfist in #12996
- docs: sort config option sections alphabetically by @chenjiahan in #12999
- docs(ecosystem): add Meteor to ecosystem page by @chenjiahan in #13004
- docs(module-federation): improve plugin documentation for clarity by @chenjiahan in #12997
- docs: add cache.readonly doc by @jerrykingxyz in #12991
- docs: fix various documentation links and typos by @chenjiahan in #13013
- docs: improve performance configuration documentation by @chenjiahan in #13015
- docs(config): add examples module rules by @chenjiahan in #13016
- docs: improve
optimization.mangleExportsdocs by @chenjiahan in #13018 - docs: add Rspack 1.x to 2.0 migration guide by @LingyuCoder in #12826
- docs: improve migration guide content and structure by @chenjiahan in #13040
- docs: standardize heading case in documentation by @chenjiahan in #13051
- docs: fix for words without space between them in the Introduction section by @arijitpatra in #13094
- docs: add agent skills section to migration guide and readme by @chenjiahan in #13124
- docs: update webpack migration guide for Rspack 2.0 by @chenjiahan in #13141
- docs: move Hana from Core team to Emeriti members by @Copilot in #13159
- docs(config): clarify array entry behavior and add polyfill example by @chenjiahan in #13162
- docs: update node imports to use node: protocol by @chenjiahan in #13163
- docs: update examples to use esm syntax by @chenjiahan in #13165
- docs: update node version requirements for v2 by @Timeless0911 in #13180
- docs: fix html-rspack-plugin hook types of beforeEmit and afterEmit by @Gehbt in #13184
- docs: update devServer.proxy documentation for v2 by @chenjiahan in #13206
- docs: update webpack migration guide for minimizers by @chenjiahan in #13250
- docs(dev-server): improve static files configuration documentation by @chenjiahan in #13253
- docs: update descriptions to reflect refined webpack API by @chenjiahan in #13254
- docs: add AI documentation by @Timeless0911 in #13323
- docs: update devtool default value changes in migration guide by @chenjiahan in #13326
- docs(config): clarify default mode behavior by @chenjiahan in #13330
- docs: update dev server documentation for v2 by @chenjiahan in #13331
- docs: fix formatting in SKILL.md by @chenjiahan in #13333
- docs: clarify JSON.stringify usage in DefinePlugin by @chenjiahan in #13337
- docs: docs for strict this context on imports by @ahabhgk in #13340
- docs: clarify merge rules and extensions behavior in resolve config by @chenjiahan in #13347
- docs: unify website description by @chenjiahan in #13349
- docs: update benchmark data by @chenjiahan in #13357
- docs: migration guide for
readResourceForSchemehook by @chenjiahan in #13365 - docs: add mf optional deps migration docs by @ahabhgk in #13367
- docs: correct the migration docs for
builtin:swc-loaderby @CPunisher in #13366 - docs: correct mf runtime tools to optional peer dependency by @ahabhgk in #13368
- docs: update migration guide for dev server changes by @chenjiahan in #13369
- docs: sync en v1-to-v2 migration guide with zh by @LingyuCoder in #13371
- docs(migration): clarify async webassembly defaults by @LingyuCoder in #13372
- docs: generate description for all documentations by @chenjiahan in #13377
- docs: remove useless placeholder comments by @chenjiahan in #13378
- docs: remove EsmLibraryPlugin documentation by @chenjiahan in #13386
- docs(split-chunks): refine production guidance and FAQ by @JSerFeng in #13451
- docs: recommand avoid using require paramter of require.ensure by @ahabhgk in #13453
- docs(migration): add transformImport upgrade notes by @JSerFeng in #13473
- docs: invite @fansenze to Rspack core team by @chenjiahan in #13475
- docs: removed module.unsafeCache in rspack_1.x.mdx by @SyMind in #13476
- docs(migration): simplify v2 experimental changes by @LingyuCoder in #13479
- docs: improve docs for worker custom syntax by @ahabhgk in #13552
- docs: improve
import.metadocs by @ahabhgk in #13574 - docs: update image-minimizer-webpack-plugin compatibility status to compatible by @jaehafe in #13618
- docs: update import for React Refresh plugin by @chenjiahan in #13632
- docs: clarify v2 migration package upgrades by @chenjiahan in #13664
- docs: supplement preserveModules documentation by @JSerFeng in #13659
- docs: use detectSyntax in swc-loader examples by @chenjiahan in #13672
- docs: document package.json imports resolution by @chenjiahan in #13686
- docs: clarify externals configuration by @chenjiahan in #13692
- docs: correct several config option types by @chenjiahan in #13694
- docs: improve library.type and ESM output docs by @JSerFeng in #13648
- docs(config): replace generic webpack references with Rspack by @chenjiahan in #13719
- docs: improve persistent cache documentation by @jerrykingxyz in #13720
- docs: clarify compiler target documentation by @chenjiahan in #13766
- docs: update import.meta documentation for clarity by @chenjiahan in #13771
- docs(blog): add blog list component by @SoonIter in #13770
- docs: update roadmap by @chenjiahan in #13779
- docs: document CLI --open flags for dev server by @chenjiahan in #13783
- docs: refine pureFunctions and splitChunks config refs by @JSerFeng in #13772
- docs: normalize experiments config line endings by @chenjiahan in #13784
Other Changes
- chore: update main by @LingyuCoder in #12760
- chore: update main by @LingyuCoder in #12776
- chore: update main by @LingyuCoder in #12803
- chore: update main by @LingyuCoder in #12814
- release: version 2.0.0-alpha.0 by @LingyuCoder in #12815
- chore(ci): read size limit threshold from env variable by @stormslowly in #12822
- chore(deps): update dependency lodash-es to v4.17.23 [security] by @renovate[bot] in #12833
- chore(test): exclude flaky native watch test case by @stormslowly in #12837
- chore: run workflow for v1.x branch by @SyMind in #12855
- chore: release 2.0.0-alpha.1 by @LingyuCoder in #12860
- chore(build): remove banner plugin for CommonJS default export workaround by @Timeless0911 in #12869
- chore(deps): update dependency lodash to v4.17.23 [security] by @renovate[bot] in #12832
- test: use tapAsyc api to wait server to close by @stormslowly in #12870
- chore(deps): update patch crates by @renovate[bot] in #12871
- chore(deps): update patch npm dependencies by @renovate[bot] in #12872
- chore: move agents folder to .agents and add rspack-perf-profiling skill by @hardfist in #12880
- chore(ci): update diff action commit id by @yifancong in #12881
- chore: update Rspress to v2 and enable llms by @chenjiahan in #12907
- chore: add rspack-sftrace skill by @quininer in #12911
- chore: bump swc_core from 55 to 56 and swc-experimental from 0.4.1 to 0.5.0 by @CPunisher in #12906
- chore(test): remove rust flaky test by @stormslowly in #12914
- chore: gracefully explain unsupported interfaces by @martinjlowm in #12782
- chore: release 2.0.0-beta.0 by @LingyuCoder in #12926
- chore(deps): update babel to ^7.29.0 by @renovate[bot] in #12932
- chore(deps): update patch npm dependencies by @renovate[bot] in #12930
- chore(deps): update rust crate bytes to v1.11.1 [security] by @renovate[bot] in #12931
- chore(deps): update patch crates by @renovate[bot] in #12929
- chore(test): unref makes the server garbage unstable by @stormslowly in #12936
- chore(core): move @rspack/lite-tapable to dev dependencies by @chenjiahan in #12939
- chore(build): remove 'module.exports' export from dts for backward compatibility of TS < 5.6.2 by @Timeless0911 in #12948
- test: bump rstest 0.8.3 by @9aoy in #12959
- chore: remove color-backtrace and enable panic backtrace for ci profile by @hardfist in #12967
- chore: use httpClient to mock test server by @stormslowly in #12962
- chore(test): show cli test stdout/err when child proceess killed by @stormslowly in #12913
- chore(ci): keep debug info in CI profile by @stormslowly in #12981
- chore: bump @rslint/core to 0.2.1 by @fansenze in #13003
- chore(deps): update dependency axios to v1.13.5 [security] by @renovate[bot] in #13014
- chore: Add build_module_graph benchmark in codspeed suite by @hardfist in #13012
- chore: remove rspackExperiments.collectTypeScriptInfo related code by @LingyuCoder in #13026
- chore: release v2.0.0-beta.1 by @LingyuCoder in #13023
- chore(test): use seperate test config for native watcher test project by @stormslowly in #13029
- chore(deps): update dependency @swc/plugin-remove-console to ^12.5.0 by @renovate[bot] in #13038
- chore(deps): update patch crates by @renovate[bot] in #13034
- chore(deps): update dependency @shikijs/transformers to ^3.22.0 by @renovate[bot] in #13037
- chore(deps): update patch npm dependencies by @renovate[bot] in #13035
- chore: release v2.0.0-beta.2 by @chenjiahan in #13041
- chore(workflow): remove API check from pre commit by @chenjiahan in #13044
- chore(deps): remove simd-adler32 crate patch by @stormslowly in #13045
- chore(ci): remove setting mirror by @stormslowly in #13057
- chore(deps): update dependency prettier to v3.8.1 by @renovate[bot] in #13065
- chore(deps): update dependency rspack-vue-loader to ^17.5.0 by @renovate[bot] in #13066
- chore(deps): update dependency core-js to v3.48.0 by @renovate[bot] in #13062
- chore(deps): update dependency create-rstack to v1.8.0 by @renovate[bot] in #13063
- chore(deps): update dependency enhanced-resolve to v5.19.0 by @renovate[bot] in #13064
- chore(deps): update dependency @playwright/test to v1.58.2 by @renovate[bot] in #12874
- chore: update sftrace skill by @hardfist in #13078
- chore(deps): update dependency terser to v5.46.0 by @renovate[bot] in #13076
- chore(deps): update dependency mini-css-extract-plugin to ^2.10.0 by @renovate[bot] in #13075
- chore(deps): update dependency markdown-to-jsx to ^9.7.4 by @renovate[bot] in #13073
- chore(deps): update patch npm dependencies by @renovate[bot] in #13084
- chore(deps): update patch crates by @renovate[bot] in #13083
- chore(deps): update dependency @microsoft/api-extractor to v7.56.3 by @renovate[bot] in #13036
- chore(deps): update dependency webpack-sources to v3.3.4 by @renovate[bot] in #13082
- chore(deps): update dependency ws to ^8.19.0 by @renovate[bot] in #13089
- chore(deps): update dependency acorn to ^8.16.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13088
- chore(deps): update dependency check-dependency-version-consistency to v6 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13092
- chore(deps): update dependency @actions/core to v3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13090
- chore(ci): don't cancel diff CI task on main branch by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13099
- test: update imports to use rspack instead of webpack by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13100
- chore(deps): update dependency @biomejs/biome to ^2.4.4 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13085
- chore: remove api change and doc coverage checks by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13102
- chore(deps): update patch crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13110
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13111
- chore: Add benchmark for module graph API by @hardfist in https://github.com/web-infra-dev/rspack/pull/13112
- chore: release 2.0.0-beta.3 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13115
- chore: print better backtrace for wasm by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13122
- chore: remove
-productionbench cases by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13125 - chore(deps): upgrade sugar path to 2.0.1 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13113
- release: 2.0.0-beta.4 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13140
- chore(ci): add bench runner label input in CI by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13127
- chore(ci): add timeout for benchmark action by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13146
- chore: switch to mimalloc crate by @hardfist in https://github.com/web-infra-dev/rspack/pull/13160
- chore: bump
swc_corefrom 56 to 58 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13164 - chore: use new rule to generate crate version by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13175
- chore: release 2.0.0-beta.5 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13176
- chore(deps): update dependency @ast-grep/napi to ^0.41.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13188
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13186
- chore(ci): update rsdoctor actions by @yifancong in https://github.com/web-infra-dev/rspack/pull/13192
- chore: update codeowners and teams by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13207
- chore(deps): update dependency @module-federation/runtime-tools to v2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13091
- chore(deps): update patch crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13185
- chore: remove unused dependencies from root package.json by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13236
- test: remove defaults base snapshot alignment by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13239
- chore(deps): update dependency cspell to ^9.7.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13246
- chore(deps): update dependency lint-staged to ^16.3.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13247
- chore(deps): update dependency case-police to ~2.2.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13245
- chore(deps): update rust crate cargo_toml to 0.22.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12538
- chore(deps): update rust crate oneshot to v0.1.12 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12857
- chore: remove cargo build warning by @hardfist in https://github.com/web-infra-dev/rspack/pull/13255
- chore: lock file maintenance by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13256
- chore(ci): use cnpm mirror to setup node in self hosted mac by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13233
- chore(deps): update dependency @rstest/core to ^0.9.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13244
- chore: release 2.0.0 beta.6 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13282
- chore: update @rspack/dev-server to 2.0.0-beta.5 and update docs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13286
- chore(ai): add rspack pgo skill by @hardfist in https://github.com/web-infra-dev/rspack/pull/13284
- chore(deps): update dependency @rslib/core to v0.20.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13298
- chore(deps): update dependency enhanced-resolve to v5.20.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13299
- chore(deps): update patch crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13295
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13296
- chore: docs for config rsc build entries by @SyMind in https://github.com/web-infra-dev/rspack/pull/13289
- chore(deps): update rust crate rspack_resolver to 0.6.8 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13187
- chore: rm unused rsc client entry loader by @SyMind in https://github.com/web-infra-dev/rspack/pull/13312
- chore: lock emnapi by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13329
- chore: introduce polars for sftrace skill by @quininer in https://github.com/web-infra-dev/rspack/pull/13324
- chore(ci): run wasm test in github runner by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13252
- chore(deps): update dependency webpack to v5.104.1 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/12966
- chore(deps): update dependency @rslint/core to v0.2.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13294
- ci: simplify lint workflow and remove redundant checks by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13335
- chore(defaults): remove obsolete IGNORE comments by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13336
- chore(ci): eco benchmark compare using by commits perf data by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13315
- chore(deps): update dependency cac to v7 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13355
- chore(deps): update dependency pretty-format to v30.3.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13353
- chore(deps): update dependency terser-webpack-plugin to ^5.4.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13354
- ci(workflow): add condition to only run canary release in main by @wChenonly in https://github.com/web-infra-dev/rspack/pull/13359
- chore: enable enableGlobalVirtualStore for pnpm by @hardfist in https://github.com/web-infra-dev/rspack/pull/13363
- chore(ci): eco benchmark compare base optimize by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13360
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13350
- chore: release 2.0.0-beta.7 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13385
- chore(deps): update patch crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13393
- chore: bump rslint to 0.3.1 & migrate rslint.json to rslint.config.ts by @fansenze in https://github.com/web-infra-dev/rspack/pull/13398
- chore: remove old deprecated code of ModernModuleLibraryPlugin by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/13318
- chore(deps): update dependency less to v4.6.4 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13351
- chore(deps): update dependency @ast-grep/napi to ^0.42.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13394
- chore(ci): switch wasm test runner back to self hosted by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13414
- chore: upgrade path-serializer 0.6.0 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13411
- chore: renovate ignore linting crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13391
- chore: Add memory codspeed benchmarks by @hardfist in https://github.com/web-infra-dev/rspack/pull/13017
- chore: bump napi dependencies by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13362
- chore: bump
swc_corefrom 58 to 59 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13434 - chore: use ci profile for windows by @hardfist in https://github.com/web-infra-dev/rspack/pull/13441
- chore(ci): fix taplo wrong parameters by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13449
- chore: release v2.0.0-beta.8 by @SyMind in https://github.com/web-infra-dev/rspack/pull/13447
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13456
- chore(deps): update dependency @rslint/core to v0.3.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13458
- chore: fix local website build by @hardfist in https://github.com/web-infra-dev/rspack/pull/13455
- chore(deps): update dependency @module-federation/runtime-tools to v2.2.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13460
- chore(deps): update dependency mermaid to ^11.13.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13352
- chore(deps): update rust crate itoa to 1.0.18 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13459
- ci: update ecosystem CI suite by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13463
- chore: pin rspack_resolver version to exact =0.7.0 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13433
- chore(deps): update dependency core-js to v3.49.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13461
- chore: use pre-built codspeed by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13426
- chore(ci): remove stale miri config by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13465
- chore(workflow): simplify JavaScript linters by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13477
- chore: remove stale devcontainer files by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13480
- chore: add walltime support by @hardfist in https://github.com/web-infra-dev/rspack/pull/13446
- test: use html-rspack-plugin in test cases by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13481
- chore: switch to github runner for bench by @hardfist in https://github.com/web-infra-dev/rspack/pull/13486
- chore: rm rspack_collection_hasher to improve ci speed by @SyMind in https://github.com/web-infra-dev/rspack/pull/13482
- ci: remove pnpm cache and simplify pnpm install steps by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13487
- chore(ci): split binding and rust benchmarks by @hardfist in https://github.com/web-infra-dev/rspack/pull/13492
- chore: try namespace runner by @hardfist in https://github.com/web-infra-dev/rspack/pull/13484
- chore: move check-changed job to namespace by @hardfist in https://github.com/web-infra-dev/rspack/pull/13496
- chore: update cargo shear and fix issues by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13503
- test(benchmark): add codspeed cases for compilation stages by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13499
- chore: try namespace runner for wasm test by @hardfist in https://github.com/web-infra-dev/rspack/pull/13500
- release: 2.0.0-beta.9 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13502
- chore(ci): move renovate schedule to saturday by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13512
- chore: bump emnapi from 1.8.1 to 1.9.1 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13516
- test(benchmark): add split chunks codspeed case by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13520
- chore(deps): bump @rslib/core to 0.20.2 by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/13525
- chore: split wasm browser ci by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13504
- chore: adds
-Zfmt-debug=nonefor non-browser wasm target by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13527 - chore: remove
-Zfmt-debug=noneby @CPunisher in https://github.com/web-infra-dev/rspack/pull/13540 - chore:
useNapiCrossfor x64 linux gnu compilation by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13539 - chore(crates): use OIDC to publish crates by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13543
- chore(release): release 2.0.0-rc.0 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13537
- chore(security): use rspack scoped mocked react by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13551
- chore: Update AGENTS concurrency guidance by @hardfist in https://github.com/web-infra-dev/rspack/pull/13553
- chore: Remove chunk graph DOT generation logic by @hardfist in https://github.com/web-infra-dev/rspack/pull/13549
- chore(deps): update dependency @rslint/core to v0.3.4 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13561
- chore(deps): update dependency @module-federation/runtime-tools to v2.3.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13562
- test: format rspack test configs with prettier by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13571
- chore: run
@rspack/cli,@rspack/teststests sequentially in wasm by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13557 - chore(deps): update dependency lodash-es to v4.18.1 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13585
- chore: switch codspeed official action by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13582
- chore(deps): update dependency lodash to v4.18.1 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13586
- chore: Update emnapi dependencies to 1.9.2 by @hardfist in https://github.com/web-infra-dev/rspack/pull/13590
- test: fix try_future_consumer test unstable by @jerrykingxyz in https://github.com/web-infra-dev/rspack/pull/13592
- chore(ci): migrate ecosystem CI to central rstack-ecosystem-ci repository by @fi3ework in https://github.com/web-infra-dev/rspack/pull/13522
- test(benchmark): add persistent cache codspeed cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13594
- chore: bump
swc_corefrom 59 to 62 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13602 - ci: add contents:read permission for ecosystem CI commit comments by @fi3ework in https://github.com/web-infra-dev/rspack/pull/13605
- ci: use contents:write permission for ecosystem CI commit comments by @fi3ework in https://github.com/web-infra-dev/rspack/pull/13611
- chore(deps): update napi by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13614
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13615
- chore(deps): update dependency @playwright/test to v1.59.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13616
- chore(deps): update github-actions by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13613
- chore: upgrade node to 24 while releasing by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13639
- chore: release 2.0.0-rc.1 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13625
- chore(ci): reduce Linux Node.js matrix to save CI resources by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13657
- chore: bump @rslint/core to 0.4.0 by @fansenze in https://github.com/web-infra-dev/rspack/pull/13658
- chore(deps): update Rslib 0.21.0 by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/13650
- chore(ci): add node 24 to release canary and debug workflows by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13656
- chore: using codspeed bench scan dependencies by @SyMind in https://github.com/web-infra-dev/rspack/pull/13400
- feat: Add support for assigning numbers in
beforeModuleIdshook by @hamlim in https://github.com/web-infra-dev/rspack/pull/13222 - test(swc-loader): use detectSyntax auto in test configs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13667
- chore(ci): use unique job IDs in bench workflows to avoid CodSpeed data loss by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13542
- chore(deps): update dependency create-rstack to v1.9.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13676
- chore(deps): update dependency axios to ^1.15.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13675
- chore(deps): update dependency cspell to ^9.8.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13682
- chore(deps): update dependency heading-case to ^1.1.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13683
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13681
- chore(deps): update taiki-e/install-action digest to 0abfcd5 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13679
- chore(deps): update dependency jest-diff to ^30.3.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13684
- chore(deps): update dependency @rslint/core to v0.4.1 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13680
- chore(release): release 2.0.0-rc.2 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13697
- chore: enable pnpm dedupe peers by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13713
- chore(deps): update dependency lodash-es to ^4.18.1 [security] by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13715
- test(benchmark): add compilation stage benchmark cases by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13702
- chore: update rust toolchain from nightly-2025-11-13 to nightly-2026-04-16 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13723
- chore: remove stale ts-node config remnants by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13698
- chore(ci): use ci profile for binary size-limit job to speed up build by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13726
- chore(release): release 2.0.0-rc.3 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13735
- chore(ci): run size limit on main by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13740
- chore(skill): add rspack release PR skill by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13739
- chore(ci): revert run size limit on main by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13745
- chore(deps): update dependency @codspeed/vitest-plugin to ^5.3.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13752
- chore(deps): update dependency @rslint/core to v0.4.2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13747
- chore: bump emnapi from
1.9.2to1.10.0by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13744 - chore(deps): update patch crates by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13750
- chore(deps): update dependency typescript to ^6.0.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13748
- chore(deps): update dependency tinypool to v2 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13755
- chore(deps): update rust crate tokio to 1.52.1 - autoclosed by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13754
- chore(deps): update napi by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13749
- chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13751
- chore(deps): update github-actions (major) by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/13756
- chore(ci): eco benchmark record ci/release binary size by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13742
- chore: update @rspack/dev-server to v2.0.0 by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/13757
- chore: bump swc_core from 62 to 64 by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13760
- chore: limit tokio worker nums for all benchmarks by @CPunisher in https://github.com/web-infra-dev/rspack/pull/13761
- test: write test summaries to GITHUB_STEP_SUMMARY by @9aoy in https://github.com/web-infra-dev/rspack/pull/13763
New Contributors
- @martinjlowm made their first contribution in #12782
- @cellison-figma made their first contribution in #12902
- @BleedingDev made their first contribution in #12982
- @smeng9 made their first contribution in #12417
- @arijitpatra made their first contribution in #13094
- @tryggvigy made their first contribution in #13457
- @jaehafe made their first contribution in #13510
- @briansilah made their first contribution in #13506
- @aancuta made their first contribution in #13197
- @kyungilcho made their first contribution in #13514
- @davidfestal made their first contribution in #13636
- @mvanhorn made their first contribution in #13777
Full Changelog: v1.7.11...v2.0.0