Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openQA for openSUSE:Factory checked 
in at 2026-01-22 15:14:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
 and      /work/SRC/openSUSE:Factory/.openQA.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openQA"

Thu Jan 22 15:14:07 2026 rev:798 rq:1328515 version:5.1768996386.e3f58202

Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes    2026-01-21 
14:17:29.287230592 +0100
+++ /work/SRC/openSUSE:Factory/.openQA.new.1928/openQA.changes  2026-01-22 
15:16:09.023161657 +0100
@@ -2 +2 @@
-Tue Jan 20 20:12:31 UTC 2026 - [email protected]
+Wed Jan 21 13:01:48 UTC 2026 - [email protected]
@@ -4 +4,8 @@
-- Update to version 5.1768919350.40d92537:
+- Update to version 5.1768996386.e3f58202:
+  * fix: Avoid Perl warning if product spec contains undef values
+  * GenericBug: Add [QE] to the subject
+  * doc: Mention version lookup of mediums and special value `*`
+  * doc: Wrap section about medium types consistently at 80 characters
+  * doc: Remove surplus white-space
+  * chore: Improve indentation/wrapping of comment
+  * feat: Improve error message when product contains no templates

Old:
----
  openQA-5.1768919350.40d92537.obscpio

New:
----
  openQA-5.1768996386.e3f58202.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:11.963283929 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:11.963283929 +0100
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-client
 Name:           %{short_name}-test
-Version:        5.1768919350.40d92537
+Version:        5.1768996386.e3f58202
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:11.995285260 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:11.999285426 +0100
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-devel
 Name:           %{short_name}-test
-Version:        5.1768919350.40d92537
+Version:        5.1768996386.e3f58202
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:12.039287090 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:12.039287090 +0100
@@ -18,7 +18,7 @@
 
 %define         short_name openQA
 Name:           %{short_name}-test
-Version:        5.1768919350.40d92537
+Version:        5.1768996386.e3f58202
 Release:        0
 Summary:        Test package for openQA
 License:        GPL-2.0-or-later

++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:12.075288588 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:12.075288588 +0100
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-worker
 Name:           %{short_name}-test
-Version:        5.1768919350.40d92537
+Version:        5.1768996386.e3f58202
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:12.123290583 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:12.127290750 +0100
@@ -99,7 +99,7 @@
 %define devel_requires %devel_no_selenium_requires chromedriver
 
 Name:           openQA
-Version:        5.1768919350.40d92537
+Version:        5.1768996386.e3f58202
 Release:        0
 Summary:        The openQA web-frontend, scheduler and tools
 License:        GPL-2.0-or-later

++++++ openQA-5.1768919350.40d92537.obscpio -> 
openQA-5.1768996386.e3f58202.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1768919350.40d92537/docs/UsersGuide.asciidoc 
new/openQA-5.1768996386.e3f58202/docs/UsersGuide.asciidoc
--- old/openQA-5.1768919350.40d92537/docs/UsersGuide.asciidoc   2026-01-20 
15:29:10.000000000 +0100
+++ new/openQA-5.1768996386.e3f58202/docs/UsersGuide.asciidoc   2026-01-21 
12:53:06.000000000 +0100
@@ -41,7 +41,7 @@
 5. Select individual 'Job groups' and decide what combinations make sense and
    need to be tested
 
-Machines, mediums, test suites and job templates  can all set various
+Machines, mediums, test suites and job templates can all set various
 configuration variables. The so called job templates within the job groups
 define how the test suites, mediums and machines should be combined in various
 ways to produce individual 'jobs'. All the variables from the test suite,
@@ -97,22 +97,29 @@
 === Medium Types (products)
 
 A medium type (product) in openQA is a simple description without any concrete
-meaning. It basically consists of a name and a set of variables that
-define or characterize this product in os-autoinst.
+meaning. It basically consists of a name and a set of variables that define or
+characterize this product in os-autoinst.
 
 Some example variables used by openSUSE are:
 
-* `ISO_MAXSIZE` contains the maximum size of the product. There is a
-  test that checks that the current size of the product is less or
-  equal than this variable.
+* `ISO_MAXSIZE` contains the maximum size of the product. There is a test that
+  checks that the current size of the product is less or equal than this
+  variable.
 * `DVD` if it is set to 1, this indicates that the medium is a DVD.
-* `LIVECD` if it is set to 1, this indicates that the medium is a live
-  image (can be a CD or USB)
-* `GNOME` this variable, if it is set to 1, indicates that it is a GNOME
-  only distribution.
+* `LIVECD` if it is set to 1, this indicates that the medium is a live image
+  (can be a CD or USB)
+* `GNOME` this variable, if it is set to 1, indicates that it is a GNOME only
+  distribution.
 * `PROMO` marks the promotional product.
 * `RESCUECD` is set to 1 for rescue CD images.
 
+The version of a medium can be set to `\*`. Then this medium is considered if a
+product is scheduled with a `VERSION` parameter that does not match any other
+medium. This allows having only one medium per version. Note that having a
+medium with a concrete version and one with `*` at the same time is usually not
+a good idea as you will likely run into the scheduling error `no templates 
found
+for product …` (unless you actually have job templates for all these medium
+types).
 
 === Test Suites
 
@@ -1145,6 +1152,11 @@
 `FLAVOR` and `ARCH` more parameters can be specified. Those additional
 parameters will be added as jobs settings in all triggered jobs.
 
+If there is no medium type matching the specified `VERSION`, the lookup falls
+back to matching any medium with version `*`. Check out
+<<UsersGuide.asciidoc#_medium_types_products,the section about medium types>>
+for details.
+
 The parameters `MACHINE` and `TEST` additionally act as filters and `TEST`
 supports multiple comma-separated values. So adding e.g. `TEST=foo,bar` will
 only consider the test suites `foo` and `bar`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1768919350.40d92537/lib/OpenQA/Schema/Result/ScheduledProducts.pm 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/Schema/Result/ScheduledProducts.pm
--- 
old/openQA-5.1768919350.40d92537/lib/OpenQA/Schema/Result/ScheduledProducts.pm  
    2026-01-20 15:29:10.000000000 +0100
+++ 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/Schema/Result/ScheduledProducts.pm  
    2026-01-21 12:53:06.000000000 +0100
@@ -590,14 +590,13 @@
         my @templates = $templates->all;
 
         unless (@templates) {
-            my $error = 'no templates found for ' . join('-', map { 
$args->{$_} } qw(DISTRI FLAVOR ARCH));
-            push(@$notes, $error);
+            push @$notes, my $error = 'no templates found for product ' . 
$product->name;
             return {error_message => $error, error_code => 404};
         }
         for my $job_template (@templates) {
             # compose settings from product, machine, testsuite and job 
template itself
-           # note: That order also defines the precedence from lowest to 
highest. The only exception is the WORKER_CLASS
-            #       variable where all occurrences are merged.
+            # note: That order also defines the precedence from lowest to 
highest. The only exception is the
+            #       WORKER_CLASS variable where all occurrences are merged.
             my %settings;
             my %params = (
                 settings => \%settings,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1768919350.40d92537/lib/OpenQA/Schema/ResultSet/JobTemplates.pm 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/Schema/ResultSet/JobTemplates.pm
--- 
old/openQA-5.1768919350.40d92537/lib/OpenQA/Schema/ResultSet/JobTemplates.pm    
    2026-01-20 15:29:10.000000000 +0100
+++ 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/Schema/ResultSet/JobTemplates.pm    
    2026-01-21 12:53:06.000000000 +0100
@@ -35,8 +35,12 @@
     return {
         error => sprintf(
             "Product '%s' not found in database (arch: '%s', distri: '%s', 
flavor: '%s', version: '%s')",
-            $args->{product_name}, $args->{arch}, 
$args->{product_spec}->{distri},
-            $args->{product_spec}->{flavor}, $args->{product_spec}->{version})}
+            $args->{product_name},
+            $args->{arch},
+            $args->{product_spec}->{distri} // '?',
+            $args->{product_spec}->{flavor} // '?',
+            $args->{product_spec}->{version} // '?'
+        )}
       unless $product;
     my $test_suite;
     if (defined $args->{testsuite_name}) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1768919350.40d92537/lib/OpenQA/WebAPI/Plugin/IssueReporter/OpenSuseGenericBug.pm
 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/WebAPI/Plugin/IssueReporter/OpenSuseGenericBug.pm
--- 
old/openQA-5.1768919350.40d92537/lib/OpenQA/WebAPI/Plugin/IssueReporter/OpenSuseGenericBug.pm
       2026-01-20 15:29:10.000000000 +0100
+++ 
new/openQA-5.1768996386.e3f58202/lib/OpenQA/WebAPI/Plugin/IssueReporter/OpenSuseGenericBug.pm
       2026-01-21 12:53:06.000000000 +0100
@@ -36,7 +36,7 @@
 
     my $url = Mojo::URL->new($bugzilla_url)->query(
         {
-            short_desc => "[Build $ctx->{build}] openQA test fails in 
$ctx->{module}",
+            short_desc => "[QE][Build $ctx->{build}] openQA test fails in 
$ctx->{module}",
             comment => $body,
             product => "$distri_name $bugzilla_product",
             bug_file_loc => $ctx->{step_url},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1768919350.40d92537/t/api/02-iso.t 
new/openQA-5.1768996386.e3f58202/t/api/02-iso.t
--- old/openQA-5.1768919350.40d92537/t/api/02-iso.t     2026-01-20 
15:29:10.000000000 +0100
+++ new/openQA-5.1768996386.e3f58202/t/api/02-iso.t     2026-01-21 
12:53:06.000000000 +0100
@@ -1054,11 +1054,11 @@
     $schema->txn_rollback;
 };
 
+my %prod_params = (distri => 'opensuse', version => '*', flavor => 'DVD', arch 
=> 'i586', name => 'generic');
+my $product = $products->create(\%prod_params);
+my $job_template = $job_templates->create({@job_template_params, product_id => 
$product->id});
+
 subtest 'fallback to version "*"' => sub {
-    my %prod_params = (distri => 'opensuse', version => '*', flavor => 'DVD', 
arch => 'i586', name => 'generic');
-    my $product = $products->create(\%prod_params);
-    ok $product->id, 'generic product created ' . $product->id;
-    my $job_template = $job_templates->create({@job_template_params, 
product_id => $product->id});
     my $res = schedule_iso($t, {%iso, VERSION => 'foobar', _GROUP => 'opensuse 
test'});
     my $scheduled_product = 
$scheduled_products->find($res->json->{scheduled_product_id});
     my $results = $scheduled_product->results;
@@ -1067,4 +1067,14 @@
       or always_explain $results;
 };
 
+subtest 'no templates found for product' => sub {
+    $job_template->delete;    # assume no job template exists
+    my $res = schedule_iso($t, {%iso, VERSION => 'foobar', _GROUP => 'opensuse 
test'}, 404);
+    my $scheduled_product = 
$scheduled_products->find($res->json->{scheduled_product_id});
+    my $results = $scheduled_product->results;
+    is @{$results->{successful_job_ids}}, 0, 'no jobs scheduled';
+    is $results->{error}, 'no templates found for product 
opensuse-*-DVD-i586', 'error contains considered product'
+      or always_explain $results;
+};
+
 done_testing();

++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.MppEEs/_old  2026-01-22 15:16:24.059786993 +0100
+++ /var/tmp/diff_new_pack.MppEEs/_new  2026-01-22 15:16:24.067787326 +0100
@@ -1,5 +1,5 @@
 name: openQA
-version: 5.1768919350.40d92537
-mtime: 1768919350
-commit: 40d92537397df4eca165e7fe85a057842a1dd2a6
+version: 5.1768996386.e3f58202
+mtime: 1768996386
+commit: e3f58202e1fd12a5063a6dfb2cdce7c83bf1956f
 

Reply via email to