eclipse.platform.swt icon indicating copy to clipboard operation
eclipse.platform.swt copied to clipboard

Add Wayland to build matrix on GitHub actions

Open jonahgraham opened this issue 2 months ago • 4 comments

Add a compositor type build matrix entry for wayland, xwayland and x11.

There are a total of 6 combinations possible of GTK/compositor:

  • GTK3 x11 (uses Xvfb)
  • GTK3 Xwayland (uses xwayland under weston headless)
  • GTK3 wayland (uses weston headless)
  • GTK4 x11 (uses Xvfb)
  • GTK4 Xwayland (uses xwayland under weston headless)
  • GTK4 wayland (uses weston headless)

When using Xwayland, the GDK_BACKEND can be either x11 or wayland. For the other two cases the two need to match.

This commit enables 5 new configuration options to build, with "GTK3 x11 (uses Xvfb)" being the pre-existing one. It is expected a future commit will start limiting how many of these run for all PRs.

Part of https://github.com/eclipse-platform/eclipse.platform.swt/issues/2714

In draft until dependent PR https://github.com/eclipse-platform/eclipse.platform.swt/pull/2767 is merged.

jonahgraham avatar Nov 11 '25 19:11 jonahgraham

On most recent Ubuntu/Fedora/etc. distros users get Wayland session by default thus I would say that even on Gtk3 Wayland has become the most common setup.

akurtakov avatar Nov 11 '25 19:11 akurtakov

I am open to whatever collection of backends/gtk versions. For now this PR tests as before plus GTK4 on wayland. We could enable all 6 - I don't want to overwhelm the number of builds that run if it isn't valuable enough.

jonahgraham avatar Nov 11 '25 20:11 jonahgraham

@akurtakov I split out the question of which combinations to exclude to a future commit - this PR tests all of the valid combinations. Comment 0 and commit message updated.

jonahgraham avatar Nov 11 '25 21:11 jonahgraham

Test Results

  176 files  +29    176 suites  +29   27m 5s ⏱️ + 3m 36s 4 670 tests ± 0  4 648 ✅ ± 0  22 💤 ±0  0 ❌ ±0    481 runs  +70    475 ✅ +69   6 💤 +1  0 ❌ ±0 

Results for commit 5e423482. ± Comparison against base commit 4583376a.

:recycle: This comment has been updated with latest results.

github-actions[bot] avatar Nov 11 '25 21:11 github-actions[bot]

The JVM crashes are a corner case that I will workaround because IMHO they are bugs in GTK not in SWT: https://github.com/eclipse-platform/eclipse.platform.swt/issues/2853

jonahgraham avatar Dec 03 '25 21:12 jonahgraham

I have given up - for now at least - getting tests reliable on gtk3+wayland. As it turns out GTK3 itself is only tested on x11. GTK4 is tested on x11, wayland, and broadway.

I have therefore excluded the gtk3/wayland combination and I open this up for review now.

jonahgraham avatar Dec 06 '25 05:12 jonahgraham

I plan to merge this soon if there are no objections.

jonahgraham avatar Dec 08 '25 14:12 jonahgraham

Only thing left is to update commit message to reflect final state. I will do that when I rebase it on top of https://github.com/eclipse-platform/eclipse.platform.swt/pull/2764

jonahgraham avatar Dec 08 '25 14:12 jonahgraham

I updated commit messages and the original PR comment https://github.com/eclipse-platform/eclipse.platform.swt/pull/2768#issue-3613631502

jonahgraham avatar Dec 08 '25 17:12 jonahgraham