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-29 17:45:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1995 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Thu Jan 29 17:45:38 2026 rev:802 rq:1329691 version:5.1769603414.6c0fa72e Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2026-01-28 15:16:01.272159219 +0100 +++ /work/SRC/openSUSE:Factory/.openQA.new.1995/openQA.changes 2026-01-29 17:48:18.317876959 +0100 @@ -1,0 +2,9 @@ +Wed Jan 28 15:07:49 UTC 2026 - [email protected] + +- Update to version 5.1769603414.6c0fa72e: + * Handle links on test_log on missing git repo extension + * test: Consider `Test.pm` fully covered + * test: Extend tests for showing dependency graph + * fix: Merge parallel clusters correctly for displaying dependency tree + +------------------------------------------------------------------- Old: ---- openQA-5.1769550212.662a4f95.obscpio New: ---- openQA-5.1769603414.6c0fa72e.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:21.025992967 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:21.029993138 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1769550212.662a4f95 +Version: 5.1769603414.6c0fa72e Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:21.177999479 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:21.194000164 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1769550212.662a4f95 +Version: 5.1769603414.6c0fa72e Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:21.318005476 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:21.326005819 +0100 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1769550212.662a4f95 +Version: 5.1769603414.6c0fa72e Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:21.562015929 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:21.582016786 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1769550212.662a4f95 +Version: 5.1769603414.6c0fa72e Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:21.734023298 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:21.734023298 +0100 @@ -99,7 +99,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1769550212.662a4f95 +Version: 5.1769603414.6c0fa72e Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ openQA-5.1769550212.662a4f95.obscpio -> openQA-5.1769603414.6c0fa72e.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1769550212.662a4f95/codecov.yml new/openQA-5.1769603414.6c0fa72e/codecov.yml --- old/openQA-5.1769550212.662a4f95/codecov.yml 2026-01-27 22:43:32.000000000 +0100 +++ new/openQA-5.1769603414.6c0fa72e/codecov.yml 2026-01-28 13:30:14.000000000 +0100 @@ -25,6 +25,7 @@ - lib/OpenQA/Utils.pm - lib/OpenQA/WebAPI/Controller/File.pm - lib/OpenQA/WebAPI/Controller/Step.pm + - lib/OpenQA/WebAPI/Controller/Test.pm tests: target: 100.0 threshold: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1769550212.662a4f95/lib/OpenQA/Utils.pm new/openQA-5.1769603414.6c0fa72e/lib/OpenQA/Utils.pm --- old/openQA-5.1769550212.662a4f95/lib/OpenQA/Utils.pm 2026-01-27 22:43:32.000000000 +0100 +++ new/openQA-5.1769603414.6c0fa72e/lib/OpenQA/Utils.pm 2026-01-28 13:30:14.000000000 +0100 @@ -230,11 +230,12 @@ sub git_commit_url ($repo_url) { return '' unless defined $repo_url; if ($repo_url =~ m/^http(s?)/) { - $repo_url =~ s{\.git$}{/commit/}; - return $repo_url; + $repo_url =~ s{\.git$}{}; + return $repo_url . '/commit/'; } my @url_tokenized = split /:/, $repo_url; - $url_tokenized[1] =~ s{\.git$}{/commit/}; + $url_tokenized[1] =~ s{\.git$}{}; + $url_tokenized[1] .= '/commit/'; my @githost = split('@', $url_tokenized[0]); return "https://$githost[1]/$url_tokenized[1]"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1769550212.662a4f95/lib/OpenQA/WebAPI/Controller/Test.pm new/openQA-5.1769603414.6c0fa72e/lib/OpenQA/WebAPI/Controller/Test.pm --- old/openQA-5.1769550212.662a4f95/lib/OpenQA/WebAPI/Controller/Test.pm 2026-01-27 22:43:32.000000000 +0100 +++ new/openQA-5.1769603414.6c0fa72e/lib/OpenQA/WebAPI/Controller/Test.pm 2026-01-28 13:30:14.000000000 +0100 @@ -982,8 +982,10 @@ my $cluster = $dependency_data->{cluster}; if ($job1_cluster_id && $job2_cluster_id) { # both jobs are already part of a cluster: merge clusters unless they're already the same - push(@{$cluster->{$job1_cluster_id}}, @{delete $cluster_by_job->{$job2_cluster_id}}) - unless $job1_cluster_id eq $job2_cluster_id; + return undef if $job1_cluster_id eq $job2_cluster_id; + my $jobs_to_move = delete $cluster->{$job2_cluster_id}; + push(@{$cluster->{$job1_cluster_id}}, @$jobs_to_move); + $cluster_by_job->{$_} = $job1_cluster_id for @$jobs_to_move; } elsif ($job1_cluster_id) { # only job1 is already in a cluster: move job2 into that cluster, too diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1769550212.662a4f95/t/16-utils.t new/openQA-5.1769603414.6c0fa72e/t/16-utils.t --- old/openQA-5.1769550212.662a4f95/t/16-utils.t 2026-01-27 22:43:32.000000000 +0100 +++ new/openQA-5.1769603414.6c0fa72e/t/16-utils.t 2026-01-28 13:30:14.000000000 +0100 @@ -410,6 +410,10 @@ is git_commit_url("git\@github.com:$repo.git"), "https://github.com/$repo/commit/", 'correct git url for ssh'; is git_commit_url("https://github.com/$repo.git"), "https://github.com/$repo/commit/", 'correct git url for http'; + is git_commit_url("git\@github.com:$repo"), "https://github.com/$repo/commit/", + 'correct ssh url without .git extension'; + is git_commit_url("https://github.com/$repo"), "https://github.com/$repo/commit/", + 'correct https url without .git extension'; }; subtest 'custom OPENQA_BASEDIR and OPENQA_SHAREDIR' => sub { local $ENV{OPENQA_BASEDIR} = '/tmp/test'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1769550212.662a4f95/t/ui/16-tests_dependencies.t new/openQA-5.1769603414.6c0fa72e/t/ui/16-tests_dependencies.t --- old/openQA-5.1769550212.662a4f95/t/ui/16-tests_dependencies.t 2026-01-27 22:43:32.000000000 +0100 +++ new/openQA-5.1769603414.6c0fa72e/t/ui/16-tests_dependencies.t 2026-01-28 13:30:14.000000000 +0100 @@ -15,8 +15,38 @@ use OpenQA::Client; use OpenQA::SeleniumTest; use OpenQA::Schema::Result::JobDependencies; -use OpenQA::JobDependencies::Constants qw(CHAINED DIRECTLY_CHAINED); +use OpenQA::JobDependencies::Constants qw(CHAINED DIRECTLY_CHAINED PARALLEL); use OpenQA::Jobs::Constants; +use OpenQA::WebAPI::Controller::Test; + +subtest 'detailed behavior of merging parallel jobs into clusters' => sub { + my (%clusters, %cluster_by_job); + my %data = (cluster => \%clusters, cluster_by_job => \%cluster_by_job); + my $add_parallel_dependency = sub ($parent_job_id, $child_job_id) { + OpenQA::WebAPI::Controller::Test::_add_dependency_to_graph(\%data, $parent_job_id, $child_job_id, PARALLEL); + }; + + $add_parallel_dependency->(1, 2); + is_deeply \%clusters, {cluster_2 => [2, 1]}, 'new cluster created'; + + $add_parallel_dependency->(3, 4); + is_deeply \%clusters, {cluster_2 => [2, 1], cluster_4 => [4, 3]}, 'another distinct cluster created'; + is_deeply \%cluster_by_job, {1 => 'cluster_2', 2 => 'cluster_2', 3 => 'cluster_4', 4 => 'cluster_4'}, + 'clusters tracked by job'; + + $add_parallel_dependency->(3, 5); + is_deeply \%clusters, {cluster_2 => [2, 1], cluster_4 => [4, 3, 5]}, 'child added into existing cluster'; + + $add_parallel_dependency->(6, 5); + is_deeply \%clusters, {cluster_2 => [2, 1], cluster_4 => [4, 3, 5, 6]}, 'parent added into existing cluster'; + + $add_parallel_dependency->(3, 5); + is_deeply \%clusters, {cluster_2 => [2, 1], cluster_4 => [4, 3, 5, 6]}, 'no change if jobs already in same cluster'; + + $add_parallel_dependency->(6, 1); + is_deeply \%clusters, {cluster_2 => [2, 1, 4, 3, 5, 6]}, 'the two existing clusters were merged'; + is_deeply \%cluster_by_job, {map { $_ => 'cluster_2' } 1 .. 6}, 'all jobs in one cluster after merge'; +}; my $test_case = OpenQA::Test::Case->new; my $schema_name = OpenQA::Test::Database::generate_schema_name; @@ -227,5 +257,16 @@ }; }; +subtest 'overall behavior with advanced clusters' => sub { + $dependencies->create({child_job_id => 99940, parent_job_id => 99963, dependency => PARALLEL}); + $dependencies->create({child_job_id => 80000, parent_job_id => 99940, dependency => PARALLEL}); + my $json = $t->get_ok('/tests/99961/dependencies_ajax')->status_is(200)->tx->res->json; + my @expected_cluster = (80000, 99940, 99961, 99963), my $present_clusters = $json->{cluster}; + my @present_cluster_ids = keys %$present_clusters; + is @present_cluster_ids, 1, 'exactly one cluster present'; + is_deeply [sort @{$present_clusters->{$present_cluster_ids[0]}}], \@expected_cluster, + 'parallel jobs shown in one big cluster'; +}; + kill_driver(); done_testing(); ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.qeLCWF/_old 2026-01-29 17:48:36.406651833 +0100 +++ /var/tmp/diff_new_pack.qeLCWF/_new 2026-01-29 17:48:36.414652176 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 5.1769550212.662a4f95 -mtime: 1769550212 -commit: 662a4f9509bcf8ede5f5f5fa2ac947596fbba7ea +version: 5.1769603414.6c0fa72e +mtime: 1769603414 +commit: 6c0fa72ec7b1b63bbc5faec28aaf246adb5acd8e
