action #169162
openGNOME based tests: move from gnome-terminal to gnome-console
0%
Description
GNOME upstream has been switching to GNOME Console for a while.
openSUSE Tumbleweed is currently installing gnome-console by default, but also gnome-terminal (as quite some QA infra calls out to gnome-terminal on the SUT)
We, the GNOME Team, would like to clean up our pattern and only install GNOME console, which requires openQA to move to GNOME console as well (an explicit gnome-terminal test can be in place, but that would need to ensure_installed)
Instead of calling 'gnome-terminal', openQA should be running 'kgx' (which is the command name for gnome-console)
Besides the QA code change (pick g-terminal or kgx, depending on distro to be tested), there will certainly be some needles to be created. Difficulties are especially expected in upgrade scenarios, where 'old distro versions' are started, interaction with the terminal expected (gnome-terminal at that case) and post zypper dup gnome-console to be used.
Updated by dimstar 3 months ago
CC @fcrozat
Let's decide on the 'terminal' app to be used on SLE 16 and then adjust in that direction.
Currently, there are these viable options:
- gnome-terminal (gtk3, legacy, not really maintained)
- gnome-console (gtk4, the 'new' GNOME core terminal
- ptyxis (gtk4, an alternative, powerful terminal, used by many, developed by a GNOME dev, but not (yet) under the GNOME umbrella); officially preferred distribution method is flatpak for this
gnome-console, according to GNOME's description, targets 'the casual user rarely in need of a terminal and is not supposed to replace gnome-terminal'
gnome-console, just like gnome-terminal, integrates slightly nicer into GNOME Desktop (e.g open in Files / open in Terminal integration with Nautilus)
Updated by yfjiang 3 months ago · Edited
I agree the key difference is Console is gtk4 based, and libadwaita supported. This makes a much better integration of GNOME. For the rest of maintenance Console is also assumed better "upstream friendly". Besides, as a screen/tmux user, I do really care much about the rich features of the emulators. Technically, I am for Console of SLES 16. But we'd better to have some input if there is any customer required scenario that exclusively delivered by gnome-terminal, which I did not aware any.
Updated by szarate 2 months ago
- Assignee changed from szarate to GraceWang
Besides the QA code change (pick g-terminal or kgx, depending on distro to be tested), there will certainly be some needles to be created. Difficulties are especially expected in upgrade scenarios, where 'old distro versions' are started, interaction with the terminal expected (gnome-terminal at that case) and post zypper dup gnome-console to be used.
Fortunately the terminal used by openQA is xterm defined in x11utils so we might not need to worry about the upgrade scenarios
I guess it would make more sense to switch tests to use xterm instead with a fallback for is_sle()
to avoid breaking SLE Updates; leaving the test only for gnome-terminal to be ran with an ensure_installed('gnome-terminal')
As dimstar suggested, probably something like x11_start_program(get_default_gui_terminal());
@GraceWang, wdyt?
following modules are affected:
lib/services/users.pm
lib/x11test.pm
lib/y2snapper_common.pm
tests/x11/gdm_session_switch.pm
tests/x11/gnome_terminal.pm
tests/x11/gnomecase/gnome_classic_switch.pm
tests/x11/ibus/ibus_installation.pm
tests/x11/remote_desktop/onetime_vncsession_xvnc_tigervnc.pm
tests/x11/remote_desktop/persistent_vncsession_xvnc.pm
tests/x11/rmt/rmt_chinese.pm
tests/x11/gnomecase/change_password.pm
Updated by GraceWang 2 months ago
- Assignee changed from GraceWang to szarate
@szarate Thanks for taking over this ticket.
"something like x11_start_program(get_default_gui_terminal());" is a good idea.
For the release versions that do not have gnome-console, get_default_gui_terminal()
will return gnome-terminal.
For the release versions that have gnome-console, get_default_gui_terminal()
will return gnome-console.
Because both xterm and gnome-terminal are installed by default and officially supported before the gnome-console getting involved, so keep using gnome-terminal in testing for old releases is a good choice.
Updated by szarate 2 months ago
- Status changed from New to In Progress
- Needles for modules running in opensuse are at https://github.com/foursixnine/os-autoinst-needles-opensuse/tree/poo169162
- Code changes https://github.com/foursixnine/os-autoinst-distri-opensuse/tree/poo169162
Updated by szarate 2 months ago
Created new test for gnome-console (kgx) https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21557 before the branch becomes unmanageable
Updated by szarate 2 months ago
szarate wrote in #note-8:
following modules are affected:
lib/services/users.pm
lib/x11test.pm
lib/y2snapper_common.pm
tests/x11/gdm_session_switch.pm
tests/x11/gnome_terminal.pm
tests/x11/gnomecase/gnome_classic_switch.pm
tests/x11/ibus/ibus_installation.pm
tests/x11/remote_desktop/onetime_vncsession_xvnc_tigervnc.pm
tests/x11/remote_desktop/persistent_vncsession_xvnc.pm
tests/x11/rmt/rmt_chinese.pm
tests/x11/gnomecase/change_password.pm
Only these two modules need changes for this to work for openSUSE
- tests/x11/ibus/ibus_installation.pm
- tests/x11/gnomecase/change_password.pm -> lib/services/users.pm
Created https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21559
VRs are pending atm
Updated by szarate 2 months ago · Edited
Trying out changes in default gnome scenario
- gnome @ tumbleweed https://openqa.opensuse.org/tests/4951531#step/gimp/14
- SLES https://openqa.suse.de/tests/17162523#step/gedit/3
- kde @ tumbleweed https://openqa.opensuse.org/tests/4951595#step/hexchat/12
- xfce @ tumbleweed https://openqa.opensuse.org/tests/4951668#step/chromium/17
- gnome @ leap https://openqa.opensuse.org/tests/4951743#step/inkscape/15
- kde @ leap https://openqa.opensuse.org/tests/4951746#step/glxgears/12
openqa-clone-job --skip-chained-deps --within-instance https://openqa.opensuse.org/tests/4950209 {TEST,BUILD}+=-ensure_installed \
CASEDIR=https://github.com/foursixnine/os-autoinst-distri-opensuse.git#ensure_installed_changes \
NEEDLES_DIR=https://github.com/foursixnine/os-autoinst-needles-opensuse.git#ensure_installed_changes _GROUP_ID=0
openqa-clone-job --skip-chained-deps --within-instance https://openqa.suse.de/tests/17124463 {TEST,BUILD}+=-ensure_installed CASEDIR=https://github.com/foursixnine/os-autoinst-distri-opensuse.git#ensure_installed_changes _GROUP_ID=0
Updated by szarate 2 months ago
dzedro wrote in #note-15:
@szarate Why use xterm on SLE instead of gnome-terminal, if not on SLES then I guess just on SLED ? https://openqa.suse.de/tests/17246525#step/change_password/71
That was the idea to not disrupt sles, I kind of have overlooked SLED, the needles for ensure_installed will have to be created https://openqa.suse.de/tests/17234354#step/gb18030/3 or the change_password will have to be adapted to know which console to select on sled: https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/8a838a0765aa0826aafeb2912ec9a15a20674b9f/lib/services/users.pm#L121
Updated by dzedro 2 months ago
szarate wrote in #note-16:
dzedro wrote in #note-15:
@szarate Why use xterm on SLE instead of gnome-terminal, if not on SLES then I guess just on SLED ? https://openqa.suse.de/tests/17246525#step/change_password/71
That was the idea to not disrupt sles, I kind of have overlooked SLED, the needles for ensure_installed will have to be created https://openqa.suse.de/tests/17234354#step/gb18030/3 or the change_password will have to be adapted to know which console to select on sled: https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/8a838a0765aa0826aafeb2912ec9a15a20674b9f/lib/services/users.pm#L121
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21676
Updated by szarate about 1 month ago
- Category set to Enhancement to existing tests
- Status changed from In Progress to Feedback
something that's pending here is:
- Go over
rg x11_start_program.*xterm tests/ -l
a lot of tests are depending on xterm to be installed - Some tests are doing what
ensure_installed
does, (about 5) and could be changed easily
setting to feedback for now
Updated by szarate 20 days ago
Before I forget again, https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/22030 was put in place for leap16 as xterm is not installed by default with the gnome
pattern