Changed
- Bumped the development and CI pin for Rspack from
2.0.1to2.2.0. PR #1258 by justin808. The@rspack/core,@rspack/cli,@rspack/dev-server, and@rspack/plugin-react-refreshpeer ranges are unchanged at^2.0.0, so applications may stay on any Rspack2.xrelease; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (bin/shakapacker-config --annotate) also now list the completeoptimization.moduleIdsandoptimization.chunkIdsvalue sets for both bundlers, including'compat-hashed', which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.
Fixed
- Fixed
shakapacker:doctornot telling Rspack apps that a.swcrcis ignored outright. PR #1276 by justin808. Doctor previously told Rspack apps only that moving.swcrcsettings intoconfig/swc.config.jswould not help, while deliberately making no claim about the.swcrcitself, because the behavior had never been verified. It has now been verified against@rspack/core2.0.1 and 2.2.0: Rspack'sbuiltin:swc-loadernever reads.swcrc. A.swcrcsettingjsc.targetand injecting an optimizer global produced byte-identical output to no.swcrcat all, while the same options passed inline as loader options did change the output. A.swcrcenabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and withswcrc/configFileset, so this is not merely inline options taking precedence. Doctor now states that a.swcrcis not read on Rspack and that every setting in it is silently inert - the mirror image of theconfig/swc.config.jscase in #1259 - and continues to point at overriding the built-inbuiltin:swc-loaderrule. Webpack messaging is unchanged. Fixes #1263. - Fixed
shakapacker:doctorstaying silent about SWC configuration on Rspack apps that do not setjavascript_transpiler: swc. PR #1269 by justin808. Shakapacker's Rspack rules always transpile withbuiltin:swc-loaderand never consultjavascript_transpiler, soconfig/swc.config.jsgoes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated onjavascript_transpiler: swc, so those apps got no warning at all. Those warnings now reach any Rspack app: thatconfig/swc.config.jsis not read, and, for a.swcrc, that moving its settings intoconfig/swc.config.jswould not affect the build. The webpack-only SWC content checks and the "merged with Shakapacker's defaults" messaging stay gated onjavascript_transpiler: swc, and apps withjavascript_transpiler: noneremain opted out. Fixes #1265. - Fixed
shakapacker:doctorandrake shakapacker:migrate_to_swctelling Rspack apps thatconfig/swc.config.jsis merged into their build. PR #1260 by justin808. Rspack builds never readconfig/swc.config.js, because Shakapacker's Rspack rules set theirbuiltin:swc-loaderoptions inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a.swcrcto migrate those settings intoconfig/swc.config.js. The migrator's post-migration guidance and the generated file header instead show how to override the built-inbuiltin:swc-loaderrule: applywebpack-merge'smergeWithRulesto the output ofgenerateRspackConfig(), since that function merges with plainmerge, which concatenatesmodule.rules, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes #1259. - Fixed post-publish GitHub release failures hiding successful package publication details. The release task now prints its normal publication summary and the exact
sync_github_releaserecovery command before exiting nonzero. PR #1250 by justin808. - Fixed helper binstubs to fail closed when
PATHis unset. PR #1240 by justin808.bin/shakapacker-configandbin/diff-bundler-confignow report the missing-Node error without executing an app-rootnodebinary whenPATHis unset, while explicitPATHvalues retain their existing Node-resolution behavior. Fixes #1234. - Fixed the deprecation warning for the legacy
bundlerconfig key claiming the value was understood while it was ignored. PR #1270 by justin808. An app whoseconfig/shakapacker.ymlset onlybundler:was told the key was deprecated and then built with a different bundler, becauseassets_bundleralways resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to setassets_bundlerinstead. One resolution change accompanies it: a config that leavesassets_bundler:blank while settingbundler:previously resolved the legacy value in Ruby and now resolveswebpack, matching whatpackage/config.tsalready built for it. Fixes #1262.