Skip to content

[WC-3513] Enable react and rspack - #2371

Open
leonardomendix wants to merge 1 commit into
mainfrom
test/enable-rspack-react
Open

[WC-3513] Enable react and rspack#2371
leonardomendix wants to merge 1 commit into
mainfrom
test/enable-rspack-react

Conversation

@leonardomendix

Copy link
Copy Markdown
Collaborator

Pull request type

Test related change (New E2E test, test automation, etc.)


Description

This PR updates the used Mendix version to 11.12.2 and, through feature flags, enables React and rspack in the test projects.

What should be covered while testing?

E2E affected should continue to pass in the automation.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

AI Code Review

⚠️ Approved with suggestions — low-severity items only, safe to merge


What was reviewed

File Change
automation/run-e2e/docker/docker-compose.yml Added ENABLE_RSPACK_BUNDLER flag to mxbuild command
automation/run-e2e/docker/mxbuild.Dockerfile Added LD_PRELOAD env and new apt packages (libgdiplus, libfontconfig1)
automation/run-e2e/docker/mxbuildRC.Dockerfile Same additions as mxbuild.Dockerfile
automation/run-e2e/lib/ci.mjs Added ENABLE_RSPACK_BUNDLER env passthrough; renamed --modern-client--modern-web-client
automation/run-e2e/lib/docker-utils.mjs Added enableRspackBundler flag to createDeploymentBundle
automation/scripts/update-screenshots-local.mjs Propagated new flags to local screenshot update script
packages/pluggableWidgets/badge-web/package.json Updated testProject.branchName and e2e script
packages/pluggableWidgets/combobox-web/package.json Updated e2e script
packages/pluggableWidgets/datagrid-{date,dropdown,number,text}-filter-web/package.json Updated e2e scripts (×4)
packages/pluggableWidgets/datagrid-web/package.json Updated e2e script
packages/pluggableWidgets/dropdown-sort-web/package.json Updated e2e script
packages/pluggableWidgets/gallery-web/package.json Updated testProject.branchName and e2e script
packages/pluggableWidgets/tree-node-web/package.json Updated e2e script (was pinned to 11.9.1; now 11.12.2)

Skipped (out of scope): dist/, pnpm-lock.yaml


Findings

⚠️ Low — Mismatched indentation in docker-compose.yml command

File: automation/run-e2e/docker/docker-compose.yml line 25
Note: The mxbuild command gained excessive leading whitespace in the diff — it now has far more indentation than the adjacent mx update-widgets line. This is cosmetic but makes the YAML harder to read and may confuse future editors.
Fix: Align the mxbuild line with mx update-widgets:

command: >
    bash -c "
      mx update-widgets --loose-version-check /source/${MPR_PATH:?MPR_PATH is required} &&
      mxbuild ${MODERN_CLIENT:+${MODERN_CLIENT}} ${ENABLE_RSPACK_BUNDLER:+${ENABLE_RSPACK_BUNDLER}} --output=/tmp/automation.mda /source/${MPR_PATH}
    "

⚠️ Low — tree-node-web e2edev script not updated to match new version

File: packages/pluggableWidgets/tree-node-web/package.json
Note: The e2e script was bumped to MENDIX_VERSION=11.12.2 with the new flags, but e2edev still reads MENDIX_VERSION=11.9.1 with no MODERN_CLIENT or ENABLE_RSPACK_BUNDLER. This will cause developers running pnpm e2edev to test against a different runtime than CI, which can mask or create spurious failures.
Fix: Update e2edev to match:

"e2edev": "MENDIX_VERSION=11.12.2 MODERN_CLIENT=--modern-web-client ENABLE_RSPACK_BUNDLER=1 run-e2e dev --with-preps"

⚠️ Low — Env vars baked into e2e scripts instead of centralised config

File: All 10 changed package.json files
Note: MENDIX_VERSION=11.12.2 MODERN_CLIENT=--modern-web-client ENABLE_RSPACK_BUNDLER=1 is now copy-pasted identically into every e2e script. When the next version bump comes, all 10 files will need to be touched again. The ci.mjs already has a fallback that fetches MENDIX_VERSION from a central version map — consider whether a single source of truth (env file, run-e2e default, or a root-level script) could avoid the duplication. Not blocking, but worth a follow-up issue.


Positives

  • Both mxbuild.Dockerfile and mxbuildRC.Dockerfile were updated symmetrically — no risk of divergence between stable and RC image builds.
  • The --modern-client--modern-web-client rename in ci.mjs (Compose path) is consistent with the existing raw-Docker path in docker-utils.mjs.
  • Changelog entries are not required — this is a CI/test automation change with no runtime widget behaviour changes.
  • ENABLE_RSPACK_BUNDLER uses conditional expansion ${ENABLE_RSPACK_BUNDLER:+...} in the Compose YAML, so an unset variable produces no extra whitespace in the mxbuild command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant