What's Changed
Breaking Changes 🛠
- 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
- fix!: remove unconsumed useless
optimization.removeAvailableModulesconfig option by @JSerFeng in #13317 - feat(swc-loader)!: move rspackExperiments.import to top-level transformImport by @JSerFeng in #13345
Performance Improvements ⚡
- 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
New Features 🎉
- 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
Bug Fixes 🐞
- 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
Refactor 🔨
- 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
Document Updates 📖
- 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
Other Changes
- chore: release 2.0.0 beta.6 by @LingyuCoder in #13282
- chore: update @rspack/dev-server to 2.0.0-beta.5 and update docs by @chenjiahan in #13286
- chore(ai): add rspack pgo skill by @hardfist in #13284
- chore(deps): update dependency @rslib/core to v0.20.0 by @renovate[bot] in #13298
- chore(deps): update dependency enhanced-resolve to v5.20.0 by @renovate[bot] in #13299
- chore(deps): update patch crates by @renovate[bot] in #13295
- chore(deps): update patch npm dependencies by @renovate[bot] in #13296
- chore: docs for config rsc build entries by @SyMind in #13289
- chore(deps): update rust crate rspack_resolver to 0.6.8 by @renovate[bot] in #13187
- chore: rm unused rsc client entry loader by @SyMind in #13312
- chore: lock emnapi by @CPunisher in #13329
- chore: introduce polars for sftrace skill by @quininer in #13324
- chore(ci): run wasm test in github runner by @stormslowly in #13252
- chore(deps): update dependency webpack to v5.104.1 [security] by @renovate[bot] in #12966
- chore(deps): update dependency @rslint/core to v0.2.3 by @renovate[bot] in #13294
- ci: simplify lint workflow and remove redundant checks by @chenjiahan in #13335
- chore(defaults): remove obsolete IGNORE comments by @LingyuCoder in #13336
- chore(ci): eco benchmark compare using by commits perf data by @stormslowly in #13315
- chore(deps): update dependency cac to v7 by @renovate[bot] in #13355
- chore(deps): update dependency pretty-format to v30.3.0 by @renovate[bot] in #13353
- chore(deps): update dependency terser-webpack-plugin to ^5.4.0 by @renovate[bot] in #13354
- ci(workflow): add condition to only run canary release in main by @wChenonly in #13359
- chore: enable enableGlobalVirtualStore for pnpm by @hardfist in #13363
- chore(ci): eco benchmark compare base optimize by @stormslowly in #13360
Full Changelog: v2.0.0-beta.6...v2.0.0-beta.7