Skip to content

1.29.0

Choose a tag to compare

@onigoetz onigoetz released this 13 May 06:27
· 79 commits to master since this release

New Rspack runner

Crafty now ships @swissquote/crafty-runner-rspack, a new bundler runner built on top of Rspack, the Rust-based webpack-compatible bundler.

It exposes the same configuration surface as the webpack runner (bundle options, presets, rspack extension method) so existing projects can opt-in with minimal changes, while benefiting from significantly faster builds.

Rspack 2.0 release notes

Node.js 22.12 is now the minimum supported version, Node 24 is supported

The minimum required Node.js version moved from >=18 to >=22.12 across all packages. Crafty is now built and tested on Node 22 and Node 24 (#2897).

Make sure your CI and local environments run on Node 22.12 or newer before upgrading.

Stylelint version 17

Stylelint moved from 16 to 17, which removes deprecated rules and refreshes its internal stack (#3083).

Release notes

Jest 30

crafty-preset-jest upgraded from Jest 29 to Jest 30, including jest-cli, jest-environment-jsdom and matching Babel dependencies.

Jest now automatically writes a SonarQube compatible report to reports/sonar-report.xml. You can change this default by changing options.reporters

Some deprecated functions, such as expect matchers have been removed, have a look at the Upgrade guide.

Release notes

SARIF reports for ESLint and Stylelint

ESLint (#2828) and Stylelint (#2829) commands now generate SARIF reports. These can be consumed by SonarQube and other code-quality platforms without extra configuration. Make sure you add a line to your .gitignore to ignore that directory.

Replace webpack-plugin-serve with anypack-plugin-serve

The dev-server plugin used by both the webpack and the new Rspack runner is now anypack-plugin-serve, a runner-agnostic replacement that works seamlessly across both bundlers (#3061).

Replace eslint-import-resolver-node with eslint-plugin-import-x's createNodeResolver

eslint-plugin-import-x now ships its own Node resolver, so Crafty drops the standalone eslint-import-resolver-node dependency in favour of createNodeResolver (#3060).

Internal

  • New Package Size workflow that reports per-package size deltas on PRs (#3062).
  • Removed the unused statoscope dependency (#3079).
  • Improved webpack compilation: more dependencies are pre-bundled to speed up builds (#2875).
  • Sonar workflow unified into the main build workflow.
  • Many SonarQube and lint issues fixed throughout the codebase.
  • Generated ESLint configuration template fixed (#2941).
  • Yarn upgraded to 4.14.1.
  • Vitest upgraded to 4.1.5. Release notes

Tool updates

  • ESLint: 9.29.0 to 9.39.4
  • Stylelint: 16.21.0 to 17.8.0
  • TypeScript: 5.8.3 to 5.9.3
  • webpack: 5.99.9 to 5.106.2
  • Rspack: introduced and upgraded to 2.0.0
  • Jest: 29.7.0 to 30.3.0
  • Vitest: 3.2.4 to 4.1.5
  • babel: 7.27 to 7.29
  • postcss: 8.5.6 to 8.5.12
  • SWC: 1.12.6 to 1.15.32
  • Lightningcss: 1.30.1 to 1.32.0
  • Prettier: 3.6.0 to 3.8.3

Full changelog

v1.28.1...v1.29.0