Enable Rspack as the default frontend bundler

What

Switches GDK's default frontend bundler from Webpack to Rspack.

  • Adds an rspack: config group (rspack.enabled defaults to true) and runs Rspack as a first-class GDK service on the port Webpack used (3808), so gdk status, gdk tail rspack and gdk restart rspack all work.
  • Adds a gdk:migrate:rspack migration to the set that gdk update already runs. It copies existing webpack.* tuning keys to rspack.*, then clears webpack.enabled and vite.enabled so the new defaults take effect.
  • Keeps Webpack available behind gdk config set webpack.enabled true as a temporary fallback for the transition.
  • Vite is no longer a supported bundler. It stays reachable behind gdk config set vite.enabled true purely so frontend engineers can evaluate its bundling progress, and every GDK command prints an unsupported warning while it is on.

Why

Follow-up to review feedback on gitlab!243058 (merged) (merged), which this MR depends on. That review raised three things addressed here:

  • Config should move through GDK's real migration mechanism rather than being silently overridden by computed flags.
  • Documentation still pointed people at Vite and had no mention of Rspack.
  • Downstream consumers assumed Vite: GDK-in-a-box, the devfile port lists, the remote-development gdk.yml, and the CI images and pipelines that forced Vite on.

Existing setups converge on Rspack on their next gdk update with no manual steps.

How to test

  1. On a GDK with Vite configured (vite.enabled: true, webpack.enabled: false in gdk.yml):

    gdk update

    gdk.yml is migrated in place (with a backup in .backups/), any webpack.* tuning you set is carried over to rspack.*, and gdk status lists rspack.

  2. Confirm the Webpack fallback still works:

    gdk config set webpack.enabled true
    gdk reconfigure && gdk restart
  3. Confirm the Vite escape hatch warns:

    gdk config set vite.enabled true

Post-MR actions

None of these block this MR, but the switch is not finished until they land in gitlab-org/gitlab, since that repo still documents Vite as the GDK bundler:

  1. doc/development/contributing/first_contribution/configure-dev-env-gdk-in-a-box.md tells people to start the container with -p 3038:3038. That is the Vite port, so the dev server is unreachable as soon as the image exposes 3808 instead. This is the page that made @gitlab.mschoenlaub raise GDK-in-a-box in the first place.
  2. doc/development/fe_guide/vue3_migration.md is written entirely around configuring GDK with Vite, including vite.enabled, gdk restart vite and a link to the GDK Vite settings anchor. The Vue 3 setup moves to rspack.vue_version and gdk restart rspack.
  3. doc/development/fe_guide/performance.md recommends Vite and links the same anchor for switching back to Webpack.
  4. doc/development/fe_guide/style/scss.md and doc/development/fe_guide/create_new_page.md describe the bundler as "Webpack or Vite".

All 4 are covered by Document Rspack as the GDK frontend bundler (gitlab!249448), which should merge right after this one so the two repos don't disagree for longer than they have to.

Serving Rspack assets in production is tracked separately in Serve Rspack-built assets in production behind ... (gitlab!246320 - merged) and is not a dependency of this change.

Edited by Stanislav Lashmanov

Merge request reports

Loading
Loading