action #128318
closedcoordination #127031: [saga][epic] openQA for SUSE customers
coordination #127910: [epic] openQA in SLE modules
[spike][timeboxed:20h] Current openQA+os-autoinst+dependencies in pure SLE size:M
Added by okurz over 1 year ago. Updated 3 months ago.
0%
Description
Motivation¶
As the parent project about QAaaS progresses we should assess our expected efforts and risks about "openQA in SLE" ASAP for further planning. As according to hsehic openQA needs to be provided from pure SLE, i.e. no PackageHub, we should try what we can achieve in this regard by submitting packages and seeing the effect of that. Maybe some submissions can be directly accepted, maybe some need special treatment. Maybe SLE release managers tell us what processes we need to follow, which bugzilla or Jira tickets we need to create first or which contracts to sign with blood ;)
Goal¶
- G1: All packages for current openQA+os-autoinst+dependencies have non-rejected (open or accepted) submit requests towards SLE
- G2: We know what process we need to follow to get openQA+os-autoinst+dependencies into SLE
Suggestions¶
- Identify all packages not yet in SLE: See the latest pipeline run within https://github.com/os-autoinst/scripts/actions/workflows/obs-list-dependencies.yml
- With a simple for-loop submit all packages from https://build.opensuse.org/project/show/devel:openQA:Leap:15.4 + https://build.opensuse.org/project/show/devel:openQA:tested (or openSUSE:Factory accordingly) to SLE (following https://en.opensuse.org/openSUSE:Maintenance_update_process)
- Make sure the source is openSUSE:Factory to improve chances requests will be accepted (devel:openQA could be seen as a list of relevant packages in that sense)
- React to comments/rejections in SRs accordingly
- List all unattended SRs, i.e. the ones that have open review but apparently after some day receive no update
- If you never worked with build.suse.de okurz suggests to use https://github.com/okurz/scripts/tree/master/isc
- Submit request to https://build.suse.de/package/show/SUSE:SLE-15-SP4:GA/000product to define a new SLE module for openQA
Updated by livdywan over 1 year ago
- Subject changed from [spike][timeboxed:20h] Current openQA+os-autoinst+dependencies in pure SLE to [spike][timeboxed:20h] Current openQA+os-autoinst+dependencies in pure SLE size:M
- Description updated (diff)
- Status changed from New to Workable
Updated by livdywan over 1 year ago
- Status changed from Workable to In Progress
- Assignee set to livdywan
okurz wrote:
- If you never worked with build.suse.de okurz suggests to use https://github.com/okurz/scripts/tree/master/isc
And now the link works :-D
osc -A obs mr openSUSE:Factory git-subrepo openSUSE:Backports:SLE-15-SP4:Update
Using target project 'openSUSE:Maintenance'. (release in 'openSUSE:Backports:SLE-15-SP4:Update')
Default log message was not changed. Press 'c' to continue. openSUSE:Backports:SLE-15-SP3:Update
a)bort, c)ontinue, e)dit: c
108333
This created https://build.opensuse.org/request/show/1083334 - there is no documented suggestion on the log message, so I'm guessing it should be left empty since I'm not making any changes? And presumably my request is mirrored on build.suse.de although I couldn't find it yet.
Updated by openqa_review over 1 year ago
- Due date set to 2023-05-12
Setting due date based on mean cycle time of SUSE QE Tools
Updated by livdywan over 1 year ago
cdywan wrote:
This created https://build.opensuse.org/request/show/1083334 - there is no documented suggestion on the log message, so I'm guessing it should be left empty since I'm not making any changes? And presumably my request is mirrored on build.suse.de although I couldn't find it yet.
I got a first approval so let's assume the workflow is correct.
Found at least one package perl-Compress-Raw-Zlib to be on devel:languages:perl. Unsure if this can be submitted as-is, I guess I'll try and find out.
Not submitting packages from https://build.opensuse.org/project/show/devel:openQA:tested yet since they presumably depend on the previous ones.
Updated by okurz over 1 year ago
cdywan wrote:
cdywan wrote:
This created https://build.opensuse.org/request/show/1083334 - there is no documented suggestion on the log message, so I'm guessing it should be left empty since I'm not making any changes? And presumably my request is mirrored on build.suse.de although I couldn't find it yet.
I got a first approval so let's assume the workflow is correct.
No, most likely not. You submitted to openSUSE:Backports:SLE-15-SP4:Update but there is nothing corresponding to that in SLE so this request will not be mirrored into IBS automatically.
Not submitting packages from https://build.opensuse.org/project/show/devel:openQA:tested yet since they presumably depend on the previous ones.
I guess you could try nevertheless to just "see what happens" :) Could be that we see actual build checks failing due to missing dependencies which would be good but maybe no failures would be visible so then we would know that as well and can plan accordingly.
Updated by livdywan over 1 year ago
- Status changed from In Progress to Feedback
okurz wrote:
No, most likely not. You submitted to openSUSE:Backports:SLE-15-SP4:Update but there is nothing corresponding to that in SLE so this request will not be mirrored into IBS automatically.
As just discussed on Jitsi we'll need to wait for the repo, ideally by Wednesday we'll know how to proceed.
Updated by okurz over 1 year ago
- Due date deleted (
2023-05-12) - Status changed from Feedback to New
- Assignee deleted (
livdywan) - Priority changed from Urgent to Low
- Target version changed from Ready to future
Hi,
Discussed this with Haris yesterday:
Until further notice till a decision was made regarding a SLE extension/module and all it's details we shall not submit new packages into SLE. However I'm preparation as well as to target current Leap+SLE users we should still aim to update existing packages so that known openQA issues in plain Leap and hence in SLE+packagehub are fixed. So expect further update requests in the near future for corresponding packages to their corresponding target projects.
Updated by okurz over 1 year ago
- Copied to action #128651: [spike][timeboxed:20h] Current openQA+os-autoinst+dependencies updated in SLE+packagehub size:M added
Updated by okurz 11 months ago
- Copied to action #154723: Complete list of openQA+os-autoinst+dependencies packages not currently in current SLE in development is known size:M added
Updated by ybonatakis 7 months ago
- Status changed from Workable to In Progress
- Assignee set to ybonatakis
Updated by openqa_review 7 months ago
- Due date set to 2024-06-12
Setting due date based on mean cycle time of SUSE QE Tools
Updated by ybonatakis 7 months ago
- Status changed from In Progress to Workable
I didnt go far as I had problem with my workstation which I was trying to solve since Friday.
Updated by okurz 7 months ago
- Due date set to 2024-06-19
- Status changed from Workable to In Progress
As SLE15SP6 turned gold it will be readonly. And probably SLE15SP7 has not yet been prepared yet but there must be some external issue that we can block on until SLE15SP7 is ready and then try again.
Updated by ybonatakis 7 months ago
- Status changed from In Progress to Workable
I asked in two channels about 15SP7. No reply. As I picked up another ticket I change the status to workable
Updated by livdywan 6 months ago
- Due date set to 2024-07-31
- Status changed from Blocked to Feedback
okurz wrote in #note-26:
I suggest to set the ticket to "feedback" and set as due date a sensible date when according to the schedule we can continue. What other ticket would that be "blocked" on?
Ack. I tried to find a ticket and drafted the comment in Blocked state.
Updated by okurz 5 months ago
- Due date deleted (
2024-07-31) - Status changed from Feedback to Workable
- Assignee deleted (
livdywan) - Priority changed from Low to Normal
- Target version changed from Tools - Next to Ready
https://build.suse.de/project/show/SUSE:SLE-15-SP7:GA exists and there are already some requests towards it: https://build.suse.de/project/requests/SUSE:SLE-15-SP7:GA . I guess now is a good time to continue.
Updated by mkittler 4 months ago · Edited
Judging by https://github.com/os-autoinst/scripts/actions/workflows/obs-list-dependencies.yml we still need:
- for os-autoinst: fonts-config qemu xterm xterm-console - However, I'm pretty sure that's wrong.
- for openQA: coreutils systemd - I'm stopping here. This list makes no sense. The entries with a
-
as version cannot mean the package is missing.
EDIT: Judging by the code of scripts/obs-check-package-origin
this script won't help us finding missing packages.
Updated by mkittler 4 months ago · Edited
I tried to change the script so it would output the names of packages that are actually missing but it isn't that simple.
So I just created a project on OBS with the SUSE:SLE-15-SP7:GA repo enabled: https://build.opensuse.org/project/show/home:mkittler:branches:devel:openQA
According to obs we need for os-autoinst: 'tesseract-ocr' 'tesseract-ocr-traineddata-english' 'perl(Carp::Always)' 'perl(Cpanel::JSON::XS)' 'perl(File::Map)' 'perl(File::Touch)' 'perl(File::chdir)' 'perl(IPC::Run::Debug)' 'perl(JSON::Validator)' 'perl(Mojo::IOLoop::ReadWriteProcess) >= 0.26' 'perl(Mojo::JSON)' 'perl(Mojo::Log)' 'perl(Mojo::URL)' 'perl(Mojo::UserAgent)' 'perl(Mojolicious) >= 9.340.0' 'perl(Mojolicious::Lite)' 'perl(Net::SSH2)' 'perl(Socket::MsgHdr)' 'perl(Time::Moment)' 'perl(XML::SemanticDiff)' 'perl(YAML::PP)' 'sshpass' 'perl(Test::Mock::Time)' 'perl(Test::MockObject)' 'perl(Test::MockRandom)' 'perl(Test::Mojo)' 'perl(Test::Output)' 'xterm-console' 'perl(Inline::Python)' 'perl(Mojo::IOLoop::ReadWriteProcess) >= 0.28'
And for openQA: 'perl(CSS::Minifier::XS) >= 0.01' 'perl(JavaScript::Minifier::XS) >= 0.11' 'perl(Mojolicious)' 'perl(Mojolicious::Plugin::AssetPack) >= 1.36' 'perl(YAML::PP) >= 0.026'
We can probably avoid tesseract by not providing OCR as this is rather experimental anyway.
I was able to turn that into a list of package names via the get_package_name
function from scripts/obs-check-package-origin
:
tesseract-ocr
tesseract-ocr-traineddata-english
perl-Carp-Always
perl-Cpanel-JSON-XS
perl-File-Map
perl-File-Touch
perl-File-chdir
perl-IPC-Run-Debug
perl-JSON-Validator
perl-Mojo-IOLoop-ReadWriteProcess
perl-Mojo-JSON
perl-Mojo-Log
perl-Mojo-URL
perl-Mojo-UserAgent
perl-Mojolicious
perl-Mojolicious-Lite
perl-Net-SSH2
perl-Socket-MsgHdr
perl-Time-Moment
perl-XML-SemanticDiff
perl-YAML-PP
sshpass
perl-Test-Mock-Time
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Mojo
perl-Test-Output
xterm-console
perl-Inline-Python
perl-Mojo-IOLoop-ReadWriteProcess
perl-CSS-Minifier-XS
perl-JavaScript-Minifier-XS
perl-Mojolicious
perl-Mojolicious-Plugin-AssetPack
perl-YAML-PP
This is still not a list of packages on OBS as it contains split packages. This is the list with just packages on OBS:
tesseract-ocr
tesseract-ocr-traineddata
sshpass
xterm-console
perl-Carp-Always
perl-Cpanel-JSON-XS
perl-File-Map
perl-File-Touch
perl-File-chdir
perl-IPC-Run
perl-IPC-Run3
perl-JSON-Validator
perl-Mojo-IOLoop-ReadWriteProcess
perl-Mojolicious
perl-Net-SSH2
perl-Socket-MsgHdr
perl-Time-Moment
perl-XML-SemanticDiff
perl-YAML-PP
perl-Test-Mock-Time
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Output
perl-Inline-Python
perl-CSS-Minifier-XS
perl-JavaScript-Minifier-XS
perl-Mojolicious-Plugin-AssetPack
Now I need to branch all those packages as well to see whether they in turn have unresolved dependencies:
for p in $( cat /hdd/tmp/missing-packages-2.txt ) ; do osc branch openSUSE:Factory "$p" home:mkittler:branches:devel:openQA "$p"; done
Updated by openqa_review 4 months ago
- Due date set to 2024-08-30
Setting due date based on mean cycle time of SUSE QE Tools
Updated by mkittler 4 months ago · Edited
The following unresolvable dependencies I'd ignore (making them conditional in our spec file): tesseract-ocr perl-Inline-Python
(Especially since this is timeboxed and submitting their whole dependency sub tree might be a rabbit whole to avoid for now.)
EDIT: PR for that: https://github.com/os-autoinst/os-autoinst/pull/2531
The following dependencies are very problematic because they need a newer version of a Perl core module: perl-File-Touch
EDIT: We can just get rid of the module: https://github.com/os-autoinst/os-autoinst/pull/2530
The following dependencies I'd submit: 'perl(Test::DiagINC) >= 0.002' 'perl(Export::Attrs)' 'perl(UNIVERSAL::can) >= 1.20110617' 'perl(UNIVERSAL::isa) >= 1.20110614' 'perl(Test::Number::Delta) >= 1.060000'
That would be the following list of packages:
perl-Test-DiagINC
perl-Export-Attrs
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Test-Number-Delta
Now only one dependency is missing: perl(PadWalker)
List of packages:
perl-PadWalker
Updated by mkittler 4 months ago · Edited
When excluding tesseract-ocr perl-Inline-Python perl-File-Touch
this leaves the following sets of packages to be submitted:
perl-PadWalker
perl-Test-DiagINC
perl-Export-Attrs
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Test-Number-Delta
sshpass
xterm-console
perl-Carp-Always
perl-Cpanel-JSON-XS
perl-File-Map
perl-File-chdir
perl-IPC-Run
perl-IPC-Run3
perl-JSON-Validator
perl-Mojo-IOLoop-ReadWriteProcess
perl-Mojolicious
perl-Net-SSH2
perl-Socket-MsgHdr
perl-Time-Moment
perl-XML-SemanticDiff
perl-YAML-PP
perl-Test-Mock-Time
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Output
perl-CSS-Minifier-XS
perl-JavaScript-Minifier-XS
perl-Mojolicious-Plugin-AssetPack
They all build on my home project against SP7 so I'm going to submit them starting with the first set:
ibs sr -m 'Update version to be able to eventually submit openQA (see https://progress.opensuse.org/issues/128318)' openSUSE.org:openSUSE:Factory perl-PadWalker SUSE:SLE-15-SP7:GA
https://build.suse.de/request/show/341655
Let's see how wrong this was.
EDIT: Looks like one needs to specify a bugowner. For the first package I specified myself:
ibs sr -m 'Update version to be able to eventually submit openQA
bugowner: mkittler
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory perl-PadWalker SUSE:SLE-15-SP7:GA
However, it would be generally better if we would specify a group, e.g. qe-tools
. Not sure how to create a group on IBS, though.
Updated by livdywan 4 months ago · Edited
However, it would be generally better if we would specify a group, e.g.
qe-tools
. Not sure how to create a group on IBS, though.
See https://suse.slack.com/archives/C02AJ1E568M/p1723815707554899
Looks like we may need someone to create a group for us. I'll see if I can get that arranged.
Updated by jbaier_cz 4 months ago
mkittler wrote in #note-31:
Judging by https://github.com/os-autoinst/scripts/actions/workflows/obs-list-dependencies.yml we still need:
- for os-autoinst: fonts-config qemu xterm xterm-console - However, I'm pretty sure that's wrong.
- for openQA: coreutils systemd - I'm stopping here. This list makes no sense. The entries with a
-
as version cannot mean the package is missing.EDIT: Judging by the code of
scripts/obs-check-package-origin
this script won't help us finding missing packages.
If I remember correctly, the script is doing osc sm
on each dependency (as per http://en.opensuse.org/openSUSE:Build_Service_Concept_Maintenance) and that should find the origin of the package (hence the script name), in other words if that package is part of SLE (i.e. is from SUSE:SLE-XXX) or not in SLE (i.e. is from openSUSE:Backports:SLE-XXX). Then it tries to detect the version from the spec file (-
means the version could not be detected, not that a package is missing).
All package from Backports are (by definition) Leap packages and not in pure SLE. But I guess you were able to use the data to get to similar conclusion.
Updated by livdywan 4 months ago
The dependency changes seem to cause failures in the openQA fullstack tests? And this is after https://github.com/os-autoinst/os-autoinst/pull/2533 was merged.
Updated by mkittler 4 months ago
The PR should help with the openQA fullstack test: https://github.com/os-autoinst/os-autoinst/pull/2534
Updated by mkittler 4 months ago · Edited
No news on https://build.suse.de/request/show/341657.
That would be the command-lines for the next submissions:
# This submission is already pending; we might need to redo it if changes are requested:
ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory perl-PadWalker SUSE:SLE-15-SP7:GA
# Next batch:
for package in perl-Test-DiagINC perl-Export-Attrs perl-UNIVERSAL-can perl-UNIVERSAL-isa perl-Test-Number-Delta; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Next batch:
for package in sshpass xterm-console perl-Carp-Always perl-Cpanel-JSON-XS perl-File-Map perl-File-chdir perl-Test-Differences perl-SQL-SplitStatement perl-IPC-Run perl-IPC-Run3 perl-JSON-Validator perl-Mojo-IOLoop-ReadWriteProcess perl-Mojolicious perl-Net-SSH2 perl-Socket-MsgHdr perl-Time-Moment perl-XML-SemanticDiff perl-YAML-PP perl-Test-Mock-Time perl-Test-MockObject perl-Test-MockRandom perl-Test-Output perl-CSS-Minifier-XS perl-JavaScript-Minifier-XS perl-Mojolicious-Plugin-AssetPack; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Packages for additional bug fixes:
for package in perl-Test-MockModule; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Packages required to execute openQA tests and actually run openQA (I initially overlooked those as tests are by default disabled in our packaging for SLE.):
for package in perl-Minion; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Packages for OCR support:
for package in leptonica plantuml tesseract-ocr-traineddata tesseract-ocr; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA with OCR support
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Packages for Python support:
for package in perl-Inline perl-Proc-ProcessTable perl-Inline-Python; do ibs sr -m 'bugowner: group:qe-tools
Add/update package to be able to eventually submit openQA with Python support
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
# Submission for os-autoinst and openQA themselves:
for package in os-autoinst openQA; do ibs sr -m 'bugowner: group:qe-tools
Add os-autoinst and openQA so SLE customers can setup their own openQA instances
further details: https://progress.opensuse.org/issues/128318' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
EDIT: Considering that a staging workflow is used on IBS we might be able to submit all packages in one go (instead of having to go by the batches).
I used the newly created group. (According to the example linked from https://confluence.suse.com/pages/viewpage.action?pageId=972423514 the group:
prefix is required.)
Updated by mkittler 4 months ago
- Status changed from In Progress to Feedback
The only thing left to do right now is to wait for feedback on https://build.suse.de/request/show/341657.
Updated by okurz 4 months ago
With https://github.com/os-autoinst/os-autoinst/pull/2531 now perl-Inline and perl-Inline-Python are not pulled in as dependencies anymore as visible in https://github.com/os-autoinst/openQA/pull/5870/files . How do we still ensure that the python support is working as expected and fully working? As I already explained especially for SUSE costumers the python support of os-autoinst was seen as crucial so not supporting it as part of SLE won't be enough.
Updated by mkittler 4 months ago · Edited
To clarify: We still test the Python support on os-autoinst level and we have never really tested the Python support on openQA level (except for loading the Inline::Python
module; but we have never done anything with it).
And yes, the goal should be that the SLE package is on par with our other packaging. However, for this spike I though it makes sense to cut some corners. I will follow the dependency chain of Inline::Python
to see how much effort it would be. Note that I also skipped tesseract for now so that is also something we still need for feature parity.
EDIT: It looks like the rabbit hole isn't that deep; at this point there are only a few
- packages required for OCR support:
leptonica plantuml tesseract-ocr-traineddata tesseract-ocr
- packages required for Python support:
perl-Inline perl-Proc-ProcessTable perl-Inline-Python
I also edited the commands in #128318#note-40 to include these packages.
Updated by mkittler 4 months ago
I updated the os-autoinst and openQA packages on my home project. I noticed that perl-IPC-Run perl-Test-Differences perl-SQL-SplitStatement
were still missing so I added them and also updated commands in #128318#note-40.
With this the build of os-autoinst was unblocked but failed, see https://build.opensuse.org/package/live_build_log/home:mkittler:branches:devel:openQA/os-autoinst/15.7/x86_64. Maybe some dependencies are still too old.
Updated by mkittler 4 months ago
I asked on the chat and the staging is done by humans. So it is possible to just submit everything right now with an explanatory description and then all packages can go into the same staging project.
You can find all SRs on https://build.suse.de/project/requests/SUSE:SLE-15-SP7:GA (type mkittler
into the search bar).
Updated by mkittler 4 months ago · Edited
After having a look at the build failures it looks like we also need perl-Test-MockModule
. This is also mentioned in a comment on https://build.opensuse.org/package/show/devel:openQA:Leap:15.6/perl-Test-MockModule.
It also looks like we need a few more packages for tests and being able to actually run openQA. (Tests are disabled on SLE by default in the rpm build so I missed those dependencies initially.)
Updated by mkittler 4 months ago
I added the following to my project config on OBS:
Macros:
%_with_tests 1
:Macros
With this we TONS of additional dependencies. The list is long enough so I'll only include it in a follow up ticket. Note that the list is that long due to transitive build dependencies.
Unfortunately we also need a few newer core modules. I'll also include details in a follow up ticket.