What's Changed
Performance 🚀
- perf(watch): lazily convert native watcher time info by @stormslowly in #16187
- perf(watcher): reuse directory analysis for unchanged subscriptions by @stormslowly in #16180
- perf(core): emit ESM export value descriptors when safe by @patrickkunka in #15936
- perf: reuse residual SplitChunks candidates in place by @JSerFeng in #16081
- perf(core): scan inline named exports linearly by @kdy1 in #16224
- perf(core): skip substring search when path has no fragment marker by @kdy1 in #16223
- perf(split-chunks): match built-in cache group conditions once per compilation by @guru-irl in #16129
Bug Fixes 🐞
- fix(core): preserve shorthand assignment keys in concatenation by @dajiaohuang in #16205
- fix(cache): unify snapshot path matching and package lookup by @ahabhgk in #16194
- fix(javascript): correct loose equality evaluation for nullish values by @NaamuKim in #16141
- fix(lazy-compilation): avoid reposting active ids on dispose by @dajiaohuang in #16200
- fix: allocative crate package names by @intellild in #16212
- fix(mf): support consumes runtime without chunk loading by @LingyuCoder in #16209
- fix(mf): normalize single-item container share scopes by @chenjiahan in #16251
- fix(css): localize animation names before !important by @dajiaohuang in #16204
- fix(watcher): keep watching when unwatching a stale path fails by @sarankumar1325 in #16199
- fix(sri): generate integrity hashes for chunks that only contain extracted css by @ojj1123 in #15711
Refactor 🔨
- refactor: remove unused __rspack_esm_id export from module chunks by @hai-x in #16193
- refactor(binding): use registered symbols across Rust and JS by @SyMind in #16210
Document 📖
- docs: clarify how to check tree shaking inputs by @MuslumYilmaz in #15830
- docs: clarify how loaders affect tree shaking by @chenjiahan in #16213
- docs: clarify project setup with Rsbuild, Rslib, and Rspack CLI by @chenjiahan in #16241
- docs: correct EvalSourceMapDevToolPlugin filters by @chenjiahan in #16243
- docs: clarify fully dynamic import behavior by @chenjiahan in #16245
- docs: clarify optimization defaults in none mode by @chenjiahan in #16244
- docs: correct HMR error callback information by @chenjiahan in #16246
- docs: clarify stats loggingDebug filtering by @chenjiahan in #16250
- docs: correct stats sorting defaults by @chenjiahan in #16247
- docs: correct stats detail defaults by @chenjiahan in #16248
- docs: distinguish stats JSON and text defaults by @chenjiahan in #16249
- docs: invite @hai-x to Rspack core team by @chenjiahan in #16264
- docs: clarify CSS Modules class names for SSR by @chenjiahan in #16257
- docs: clarify how rule conditions combine by @chenjiahan in #16260
- docs: explain HMR update propagation by @chenjiahan in #16261
- docs: explain transpiling modern dependencies by @chenjiahan in #16256
- docs: document compilation module graph queries by @chenjiahan in #16259
- docs: explain passing loader data to plugins by @chenjiahan in #16258
- docs: explain runtime public paths inside workers by @chenjiahan in #16262
- docs: document experiments.newCache by @ahabhgk in #16272
Other Changes
- chore(deps): update dependency @ast-grep/napi to ^0.51.0 by @renovate[bot] in #16227
- chore(deps): update rust crate either to 1.19.0 by @renovate[bot] in #16234
- chore(deps): update dependency cspell to ^10.4.0 by @renovate[bot] in #16229
- chore(deps): update dependency core-js to v3.51.0 by @renovate[bot] in #16228
- chore(deps): update rust crate wasmtime to v36.0.19 [security] by @renovate[bot] in #16238
- chore(deps): update rust crate hashlink to 0.12.2 by @renovate[bot] in #16235
- chore(deps): update patch npm dependencies by @renovate[bot] in #16226
- chore(deps): update rust crate ctor to 0.13.1 by @renovate[bot] in #16232
New Contributors
- @dajiaohuang made their first contribution in #16205
- @MuslumYilmaz made their first contribution in #15830
- @NaamuKim made their first contribution in #16141
- @patrickkunka made their first contribution in #15936
- @ojj1123 made their first contribution in #15711
Full Changelog: v2.3.0-beta.1...v2.3.0-rc.0