Project

General

Profile

Actions

action #169162

open

GNOME based tests: move from gnome-terminal to gnome-console

Added by dimstar 7 months ago. Updated 20 days ago.

Status:
Feedback
Priority:
Normal
Assignee:
Category:
Enhancement to existing tests
Target version:
-
Start date:
2024-10-31
Due date:
% Done:

0%

Estimated time:
Difficulty:

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.

Actions #1

Updated by dimstar 7 months ago

  • Subject changed from GNOME based tests: moved from gnome-terminal to gnome-console to GNOME based tests: move from gnome-terminal to gnome-console
Actions #2

Updated by jlausuch 7 months ago

  • Tags set to future-technologies
Actions #3

Updated by szarate 7 months ago

  • Assignee set to GraceWang
Actions #4

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)

Actions #5

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.

Actions #6

Updated by fcrozat 3 months ago

I agree with Yi-Fan. Let's go for Console for SLES 16. Ptyxis is still moving too fast. We could make it available through PackageHub for SLES 16 users.

Actions #7

Updated by szarate 2 months ago

  • Tags changed from future-technologies to future-technologies, openSUSE
  • Assignee changed from GraceWang to szarate
Actions #8

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

Actions #9

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.

Actions #10

Updated by szarate 2 months ago

  • Status changed from New to In Progress
Actions #11

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

Actions #12

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

Actions #13

Updated by szarate 2 months ago · Edited

Trying out changes in default gnome scenario

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
Actions #15

Updated by dzedro 2 months ago

@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

Actions #16

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

Actions #17

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

Actions #18

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

Actions #19

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

Actions

Also available in: Atom PDF