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-02-10 21:13:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.1670 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Tue Feb 10 21:13:22 2026 rev:805 rq:1332256 version:5.1770718745.ce2072d3 Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2026-02-06 19:15:14.488451784 +0100 +++ /work/SRC/openSUSE:Factory/.openQA.new.1670/openQA.changes 2026-02-10 21:14:08.279875913 +0100 @@ -1,0 +2,25 @@ +Tue Feb 10 13:08:35 UTC 2026 - [email protected] + +- Update to version 5.1770718745.ce2072d3: + * feat(ui): use clickable test overview summary counts for quick filtering + * build(Makefile): fix uninterruptable tests + * docs: Mention caveats of `…_cleanup_max_free_percentage` setting + * test(25-cache-service): fix race conditions + * test(ui/21-admin-needles): properly wait for modal dialog and deletion + * test(ui/13-admin): properly wait for API key deletion + * test(40-openqa-clone-job): properly isolate from system config + * test(15-asset): bump timeout to current runtime + * chore: fix CVE-2026-25547 (boo#1257852) by overriding minimatch + * build(deps-dev): bump @eslint from 9.36.0 to 9.38.0 + * fix(eslint): correct style to be eslint-9.38 compliant + * build(deps-dev): bump @eslint-community/regexpp from 4.12.1 to 4.12.2 + * build(deps-dev): bump @eslint/config-array from 0.21.0 to 0.21.1 + * build(deps-dev): bump @eslint/object-schema from 2.1.6 to 2.1.7 + * refactor: Improve variable names in function to determine expired jobs + * test: Improve name of subtest for archiving + * test: Verify that archiving works regardless of logs/results present + * Dependency cron 2026-02-06 + * Bump js-yaml from 4.1.0 to 4.1.1 + * build(deps): bump ace-builds from 1.43.3 to 1.43.4 + +------------------------------------------------------------------- Old: ---- openQA-5.1770308102.12dfd0e4.obscpio New: ---- openQA-5.1770718745.ce2072d3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:09.327919829 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:09.331919996 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1770308102.12dfd0e4 +Version: 5.1770718745.ce2072d3 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:09.367921505 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:09.367921505 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1770308102.12dfd0e4 +Version: 5.1770718745.ce2072d3 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:09.399922846 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:09.403923013 +0100 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1770308102.12dfd0e4 +Version: 5.1770718745.ce2072d3 Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:09.435924354 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:09.435924354 +0100 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1770308102.12dfd0e4 +Version: 5.1770718745.ce2072d3 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:09.479926198 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:09.479926198 +0100 @@ -99,7 +99,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1770308102.12dfd0e4 +Version: 5.1770718745.ce2072d3 Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later ++++++ node_modules.obscpio ++++++ Binary files old/@eslint-community-regexpp-4.12.1.tgz and new/@eslint-community-regexpp-4.12.1.tgz differ Binary files old/@eslint-community-regexpp-4.12.2.tgz and new/@eslint-community-regexpp-4.12.2.tgz differ Binary files old/@eslint-config-array-0.21.0.tgz and new/@eslint-config-array-0.21.0.tgz differ Binary files old/@eslint-config-array-0.21.1.tgz and new/@eslint-config-array-0.21.1.tgz differ Binary files old/@eslint-config-helpers-0.3.1.tgz and new/@eslint-config-helpers-0.3.1.tgz differ Binary files old/@eslint-config-helpers-0.4.2.tgz and new/@eslint-config-helpers-0.4.2.tgz differ Binary files old/@eslint-core-0.15.2.tgz and new/@eslint-core-0.15.2.tgz differ Binary files old/@eslint-core-0.17.0.tgz and new/@eslint-core-0.17.0.tgz differ Binary files old/@eslint-js-9.36.0.tgz and new/@eslint-js-9.36.0.tgz differ Binary files old/@eslint-js-9.39.2.tgz and new/@eslint-js-9.39.2.tgz differ Binary files old/@eslint-object-schema-2.1.6.tgz and new/@eslint-object-schema-2.1.6.tgz differ Binary files old/@eslint-object-schema-2.1.7.tgz and new/@eslint-object-schema-2.1.7.tgz differ Binary files old/@eslint-plugin-kit-0.3.5.tgz and new/@eslint-plugin-kit-0.3.5.tgz differ Binary files old/@eslint-plugin-kit-0.4.1.tgz and new/@eslint-plugin-kit-0.4.1.tgz differ Binary files old/@isaacs-balanced-match-4.0.1.tgz and new/@isaacs-balanced-match-4.0.1.tgz differ Binary files old/@isaacs-brace-expansion-5.0.1.tgz and new/@isaacs-brace-expansion-5.0.1.tgz differ Binary files old/ace-builds-1.43.3.tgz and new/ace-builds-1.43.3.tgz differ Binary files old/ace-builds-1.43.4.tgz and new/ace-builds-1.43.4.tgz differ Binary files old/balanced-match-1.0.2.tgz and new/balanced-match-1.0.2.tgz differ Binary files old/brace-expansion-1.1.12.tgz and new/brace-expansion-1.1.12.tgz differ Binary files old/concat-map-0.0.1.tgz and new/concat-map-0.0.1.tgz differ Binary files old/eslint-9.36.0.tgz and new/eslint-9.36.0.tgz differ Binary files old/eslint-9.39.2.tgz and new/eslint-9.39.2.tgz differ Binary files old/js-yaml-4.1.0.tgz and new/js-yaml-4.1.0.tgz differ Binary files old/js-yaml-4.1.1.tgz and new/js-yaml-4.1.1.tgz differ Binary files old/minimatch-10.1.2.tgz and new/minimatch-10.1.2.tgz differ Binary files old/minimatch-3.1.2.tgz and new/minimatch-3.1.2.tgz differ ++++++ node_modules.spec.inc ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:10.195956201 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:10.203956537 +0100 @@ -1,146 +1,145 @@ Source1000: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#/@eslint-community-eslint-utils-4.9.0.tgz -Source1001: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#/@eslint-community-regexpp-4.12.1.tgz -Source1002: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz#/@eslint-config-array-0.21.0.tgz -Source1003: https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz#/@eslint-config-helpers-0.3.1.tgz -Source1004: https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz#/@eslint-core-0.15.2.tgz +Source1001: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#/@eslint-community-regexpp-4.12.2.tgz +Source1002: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz#/@eslint-config-array-0.21.1.tgz +Source1003: https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#/@eslint-config-helpers-0.4.2.tgz +Source1004: https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz#/@eslint-core-0.17.0.tgz Source1005: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#/@eslint-eslintrc-3.3.1.tgz -Source1006: https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz#/@eslint-js-9.36.0.tgz -Source1007: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz#/@eslint-object-schema-2.1.6.tgz -Source1008: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz#/@eslint-plugin-kit-0.3.5.tgz +Source1006: https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz#/@eslint-js-9.39.2.tgz +Source1007: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz#/@eslint-object-schema-2.1.7.tgz +Source1008: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#/@eslint-plugin-kit-0.4.1.tgz Source1009: https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz#/@humanfs-core-0.19.1.tgz Source1010: https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz#/@humanfs-node-0.16.7.tgz Source1011: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#/@humanwhocodes-module-importer-1.0.1.tgz Source1012: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz#/@humanwhocodes-retry-0.4.3.tgz -Source1013: https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz#/@pkgr-core-0.2.9.tgz -Source1014: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#/@popperjs-core-2.11.8.tgz -Source1015: https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz#/@types-estree-1.0.8.tgz -Source1016: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#/@types-json-schema-7.0.15.tgz -Source1017: https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.3.tgz#/ace-builds-1.43.3.tgz -Source1018: https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz#/acorn-8.15.0.tgz -Source1019: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2.tgz -Source1020: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#/ajv-6.12.6.tgz -Source1021: https://registry.npmjs.org/anser/-/anser-2.3.2.tgz#/anser-2.3.2.tgz -Source1022: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#/ansi-styles-4.3.0.tgz -Source1023: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#/argparse-2.0.1.tgz -Source1024: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#/balanced-match-1.0.2.tgz -Source1025: https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz#/bootstrap-5.3.8.tgz -Source1026: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz#/brace-expansion-1.1.12.tgz +Source1013: https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#/@isaacs-balanced-match-4.0.1.tgz +Source1014: https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz#/@isaacs-brace-expansion-5.0.1.tgz +Source1015: https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz#/@pkgr-core-0.2.9.tgz +Source1016: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#/@popperjs-core-2.11.8.tgz +Source1017: https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz#/@types-estree-1.0.8.tgz +Source1018: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#/@types-json-schema-7.0.15.tgz +Source1019: https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.4.tgz#/ace-builds-1.43.4.tgz +Source1020: https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz#/acorn-8.15.0.tgz +Source1021: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2.tgz +Source1022: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#/ajv-6.12.6.tgz +Source1023: https://registry.npmjs.org/anser/-/anser-2.3.2.tgz#/anser-2.3.2.tgz +Source1024: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#/ansi-styles-4.3.0.tgz +Source1025: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#/argparse-2.0.1.tgz +Source1026: https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz#/bootstrap-5.3.8.tgz Source1027: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#/callsites-3.1.0.tgz Source1028: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#/chalk-4.1.2.tgz Source1029: https://registry.npmjs.org/chosen-js/-/chosen-js-1.8.7.tgz#/chosen-js-1.8.7.tgz Source1030: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#/color-convert-2.0.1.tgz Source1031: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#/color-name-1.1.4.tgz Source1032: https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#/commander-7.2.0.tgz -Source1033: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#/concat-map-0.0.1.tgz -Source1034: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#/cross-spawn-7.0.6.tgz -Source1035: https://registry.npmjs.org/d3/-/d3-7.9.0.tgz#/d3-7.9.0.tgz -Source1036: https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#/d3-array-3.2.4.tgz -Source1037: https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#/d3-axis-3.0.0.tgz -Source1038: https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#/d3-brush-3.0.0.tgz -Source1039: https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#/d3-chord-3.0.1.tgz -Source1040: https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#/d3-color-3.1.0.tgz -Source1041: https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz#/d3-contour-4.0.2.tgz -Source1042: https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz#/d3-delaunay-6.0.4.tgz -Source1043: https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#/d3-dispatch-3.0.1.tgz -Source1044: https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#/d3-drag-3.0.0.tgz -Source1045: https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#/d3-dsv-3.0.1.tgz -Source1046: https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#/d3-ease-3.0.1.tgz -Source1047: https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#/d3-fetch-3.0.1.tgz -Source1048: https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#/d3-force-3.0.0.tgz -Source1049: https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#/d3-format-3.1.0.tgz -Source1050: https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#/d3-geo-3.1.1.tgz -Source1051: https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#/d3-hierarchy-3.1.2.tgz -Source1052: https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#/d3-interpolate-3.0.1.tgz -Source1053: https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#/d3-path-3.1.0.tgz -Source1054: https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#/d3-polygon-3.0.1.tgz -Source1055: https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#/d3-quadtree-3.0.1.tgz -Source1056: https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#/d3-random-3.0.1.tgz -Source1057: https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#/d3-scale-4.0.2.tgz -Source1058: https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#/d3-scale-chromatic-3.1.0.tgz -Source1059: https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#/d3-selection-3.0.0.tgz -Source1060: https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#/d3-shape-3.2.0.tgz -Source1061: https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#/d3-time-3.1.0.tgz -Source1062: https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#/d3-time-format-4.1.0.tgz -Source1063: https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#/d3-timer-3.0.1.tgz -Source1064: https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#/d3-transition-3.0.1.tgz -Source1065: https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#/d3-zoom-3.0.0.tgz -Source1066: https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#/dagre-0.8.5.tgz -Source1067: https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#/dagre-d3-0.6.4.tgz -Source1068: https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.4.tgz#/datatables.net-2.3.4.tgz -Source1069: https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.4.tgz#/datatables.net-bs5-2.3.4.tgz -Source1070: https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#/debug-4.4.3.tgz -Source1071: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#/deep-is-0.1.4.tgz -Source1072: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.0.1.tgz -Source1073: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#/escape-string-regexp-4.0.0.tgz -Source1074: https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz#/eslint-9.36.0.tgz -Source1075: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#/eslint-config-prettier-10.1.8.tgz -Source1076: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#/eslint-plugin-prettier-5.5.4.tgz -Source1077: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz#/eslint-scope-8.4.0.tgz -Source1078: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#/eslint-visitor-keys-3.4.3.tgz -Source1079: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#/eslint-visitor-keys-4.2.1.tgz -Source1080: https://registry.npmjs.org/espree/-/espree-10.4.0.tgz#/espree-10.4.0.tgz -Source1081: https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#/esquery-1.6.0.tgz -Source1082: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#/esrecurse-4.3.0.tgz -Source1083: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#/estraverse-5.3.0.tgz -Source1084: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#/esutils-2.0.3.tgz -Source1085: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#/fast-deep-equal-3.1.3.tgz -Source1086: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#/fast-diff-1.3.0.tgz -Source1087: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#/fast-json-stable-stringify-2.1.0.tgz -Source1088: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#/fast-levenshtein-2.0.6.tgz -Source1089: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#/file-entry-cache-8.0.0.tgz -Source1090: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#/find-up-5.0.0.tgz -Source1091: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#/flat-cache-4.0.1.tgz -Source1092: https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz#/flatted-3.3.3.tgz -Source1093: https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.2.0.tgz#/fork-awesome-1.2.0.tgz -Source1094: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#/glob-parent-6.0.2.tgz -Source1095: https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#/globals-14.0.0.tgz -Source1096: https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#/graphlib-2.1.8.tgz -Source1097: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#/has-flag-4.0.0.tgz -Source1098: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#/iconv-lite-0.6.3.tgz -Source1099: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#/ignore-5.3.2.tgz -Source1100: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz#/import-fresh-3.3.1.tgz -Source1101: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#/imurmurhash-0.1.4.tgz -Source1102: https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#/internmap-2.0.3.tgz -Source1103: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#/is-extglob-2.1.1.tgz -Source1104: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#/is-glob-4.0.3.tgz -Source1105: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#/isexe-2.0.0.tgz -Source1106: https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz#/jquery-3.7.1.tgz -Source1107: https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.3.tgz#/jquery-ujs-1.2.3.tgz -Source1108: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#/js-yaml-4.1.0.tgz -Source1109: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#/json-buffer-3.0.1.tgz -Source1110: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#/json-schema-traverse-0.4.1.tgz -Source1111: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#/json-stable-stringify-without-jsonify-1.0.1.tgz -Source1112: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#/keyv-4.5.4.tgz -Source1113: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#/levn-0.4.1.tgz -Source1114: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#/locate-path-6.0.0.tgz -Source1115: https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz#/lodash-4.17.23.tgz -Source1116: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#/lodash.merge-4.6.2.tgz -Source1117: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#/minimatch-3.1.2.tgz -Source1118: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#/ms-2.1.3.tgz -Source1119: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#/natural-compare-1.4.0.tgz -Source1120: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#/optionator-0.9.4.tgz -Source1121: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#/p-limit-3.1.0.tgz -Source1122: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#/p-locate-5.0.0.tgz -Source1123: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#/parent-module-1.0.1.tgz -Source1124: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#/path-exists-4.0.0.tgz -Source1125: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#/path-key-3.1.1.tgz -Source1126: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#/prelude-ls-1.2.1.tgz -Source1127: https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz#/prettier-3.6.2.tgz -Source1128: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#/prettier-linter-helpers-1.0.0.tgz -Source1129: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#/punycode-2.3.1.tgz -Source1130: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#/resolve-from-4.0.0.tgz -Source1131: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz#/robust-predicates-3.0.2.tgz -Source1132: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#/rw-1.3.3.tgz -Source1133: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#/safer-buffer-2.1.2.tgz -Source1134: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#/shebang-command-2.0.0.tgz -Source1135: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#/shebang-regex-3.0.0.tgz -Source1136: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#/strip-json-comments-3.1.1.tgz -Source1137: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#/supports-color-7.2.0.tgz -Source1138: https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz#/synckit-0.11.11.tgz -Source1139: https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz#/timeago-1.6.7.tgz -Source1140: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#/type-check-0.4.0.tgz -Source1141: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#/uri-js-4.4.1.tgz -Source1142: https://registry.npmjs.org/which/-/which-2.0.2.tgz#/which-2.0.2.tgz -Source1143: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#/word-wrap-1.2.5.tgz -Source1144: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#/yocto-queue-0.1.0.tgz +Source1033: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#/cross-spawn-7.0.6.tgz +Source1034: https://registry.npmjs.org/d3/-/d3-7.9.0.tgz#/d3-7.9.0.tgz +Source1035: https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#/d3-array-3.2.4.tgz +Source1036: https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#/d3-axis-3.0.0.tgz +Source1037: https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#/d3-brush-3.0.0.tgz +Source1038: https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#/d3-chord-3.0.1.tgz +Source1039: https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#/d3-color-3.1.0.tgz +Source1040: https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz#/d3-contour-4.0.2.tgz +Source1041: https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz#/d3-delaunay-6.0.4.tgz +Source1042: https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#/d3-dispatch-3.0.1.tgz +Source1043: https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#/d3-drag-3.0.0.tgz +Source1044: https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#/d3-dsv-3.0.1.tgz +Source1045: https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#/d3-ease-3.0.1.tgz +Source1046: https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#/d3-fetch-3.0.1.tgz +Source1047: https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#/d3-force-3.0.0.tgz +Source1048: https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#/d3-format-3.1.0.tgz +Source1049: https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#/d3-geo-3.1.1.tgz +Source1050: https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#/d3-hierarchy-3.1.2.tgz +Source1051: https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#/d3-interpolate-3.0.1.tgz +Source1052: https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#/d3-path-3.1.0.tgz +Source1053: https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#/d3-polygon-3.0.1.tgz +Source1054: https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#/d3-quadtree-3.0.1.tgz +Source1055: https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#/d3-random-3.0.1.tgz +Source1056: https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#/d3-scale-4.0.2.tgz +Source1057: https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#/d3-scale-chromatic-3.1.0.tgz +Source1058: https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#/d3-selection-3.0.0.tgz +Source1059: https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#/d3-shape-3.2.0.tgz +Source1060: https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#/d3-time-3.1.0.tgz +Source1061: https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#/d3-time-format-4.1.0.tgz +Source1062: https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#/d3-timer-3.0.1.tgz +Source1063: https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#/d3-transition-3.0.1.tgz +Source1064: https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#/d3-zoom-3.0.0.tgz +Source1065: https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#/dagre-0.8.5.tgz +Source1066: https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#/dagre-d3-0.6.4.tgz +Source1067: https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.4.tgz#/datatables.net-2.3.4.tgz +Source1068: https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.4.tgz#/datatables.net-bs5-2.3.4.tgz +Source1069: https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#/debug-4.4.3.tgz +Source1070: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#/deep-is-0.1.4.tgz +Source1071: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.0.1.tgz +Source1072: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#/escape-string-regexp-4.0.0.tgz +Source1073: https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz#/eslint-9.39.2.tgz +Source1074: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#/eslint-config-prettier-10.1.8.tgz +Source1075: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#/eslint-plugin-prettier-5.5.4.tgz +Source1076: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz#/eslint-scope-8.4.0.tgz +Source1077: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#/eslint-visitor-keys-3.4.3.tgz +Source1078: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#/eslint-visitor-keys-4.2.1.tgz +Source1079: https://registry.npmjs.org/espree/-/espree-10.4.0.tgz#/espree-10.4.0.tgz +Source1080: https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#/esquery-1.6.0.tgz +Source1081: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#/esrecurse-4.3.0.tgz +Source1082: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#/estraverse-5.3.0.tgz +Source1083: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#/esutils-2.0.3.tgz +Source1084: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#/fast-deep-equal-3.1.3.tgz +Source1085: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#/fast-diff-1.3.0.tgz +Source1086: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#/fast-json-stable-stringify-2.1.0.tgz +Source1087: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#/fast-levenshtein-2.0.6.tgz +Source1088: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#/file-entry-cache-8.0.0.tgz +Source1089: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#/find-up-5.0.0.tgz +Source1090: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#/flat-cache-4.0.1.tgz +Source1091: https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz#/flatted-3.3.3.tgz +Source1092: https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.2.0.tgz#/fork-awesome-1.2.0.tgz +Source1093: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#/glob-parent-6.0.2.tgz +Source1094: https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#/globals-14.0.0.tgz +Source1095: https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#/graphlib-2.1.8.tgz +Source1096: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#/has-flag-4.0.0.tgz +Source1097: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#/iconv-lite-0.6.3.tgz +Source1098: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#/ignore-5.3.2.tgz +Source1099: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz#/import-fresh-3.3.1.tgz +Source1100: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#/imurmurhash-0.1.4.tgz +Source1101: https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#/internmap-2.0.3.tgz +Source1102: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#/is-extglob-2.1.1.tgz +Source1103: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#/is-glob-4.0.3.tgz +Source1104: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#/isexe-2.0.0.tgz +Source1105: https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz#/jquery-3.7.1.tgz +Source1106: https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.3.tgz#/jquery-ujs-1.2.3.tgz +Source1107: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz#/js-yaml-4.1.1.tgz +Source1108: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#/json-buffer-3.0.1.tgz +Source1109: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#/json-schema-traverse-0.4.1.tgz +Source1110: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#/json-stable-stringify-without-jsonify-1.0.1.tgz +Source1111: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#/keyv-4.5.4.tgz +Source1112: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#/levn-0.4.1.tgz +Source1113: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#/locate-path-6.0.0.tgz +Source1114: https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz#/lodash-4.17.23.tgz +Source1115: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#/lodash.merge-4.6.2.tgz +Source1116: https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz#/minimatch-10.1.2.tgz +Source1117: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#/ms-2.1.3.tgz +Source1118: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#/natural-compare-1.4.0.tgz +Source1119: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#/optionator-0.9.4.tgz +Source1120: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#/p-limit-3.1.0.tgz +Source1121: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#/p-locate-5.0.0.tgz +Source1122: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#/parent-module-1.0.1.tgz +Source1123: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#/path-exists-4.0.0.tgz +Source1124: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#/path-key-3.1.1.tgz +Source1125: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#/prelude-ls-1.2.1.tgz +Source1126: https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz#/prettier-3.6.2.tgz +Source1127: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#/prettier-linter-helpers-1.0.0.tgz +Source1128: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#/punycode-2.3.1.tgz +Source1129: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#/resolve-from-4.0.0.tgz +Source1130: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz#/robust-predicates-3.0.2.tgz +Source1131: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#/rw-1.3.3.tgz +Source1132: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#/safer-buffer-2.1.2.tgz +Source1133: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#/shebang-command-2.0.0.tgz +Source1134: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#/shebang-regex-3.0.0.tgz +Source1135: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#/strip-json-comments-3.1.1.tgz +Source1136: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#/supports-color-7.2.0.tgz +Source1137: https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz#/synckit-0.11.11.tgz +Source1138: https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz#/timeago-1.6.7.tgz +Source1139: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#/type-check-0.4.0.tgz +Source1140: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#/uri-js-4.4.1.tgz +Source1141: https://registry.npmjs.org/which/-/which-2.0.2.tgz#/which-2.0.2.tgz +Source1142: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#/word-wrap-1.2.5.tgz +Source1143: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#/yocto-queue-0.1.0.tgz ++++++ openQA-5.1770308102.12dfd0e4.obscpio -> openQA-5.1770718745.ce2072d3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/Makefile new/openQA-5.1770718745.ce2072d3/Makefile --- old/openQA-5.1770308102.12dfd0e4/Makefile 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/Makefile 2026-02-10 11:19:05.000000000 +0100 @@ -276,7 +276,7 @@ export GLOBIGNORE="$(GLOBIGNORE)";\ export DEVEL_COVER_DB_FORMAT=JSON;\ export PERL5OPT="$(COVEROPT)$(PERL5OPT) -It/lib -I$(PWD)/t/lib -I$(PWD)/external/os-autoinst-common/lib $(CHECK_GIT_STATUS_OPT) -MOpenQA::Test::PatchDeparse";\ - RETRY=${RETRY} HOOK=./tools/delete-coverdb-folder timeout -s SIGINT -k 5 -v ${TIMEOUT_RETRIES} tools/retry "${PROVE}" ${PROVE_LIB_ARGS} ${PROVE_ARGS} + RETRY=${RETRY} HOOK=./tools/delete-coverdb-folder timeout --foreground -s SIGINT -k 5 -v ${TIMEOUT_RETRIES} tools/retry "${PROVE}" ${PROVE_LIB_ARGS} ${PROVE_ARGS} .PHONY: setup-database setup-database: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/assets/stylesheets/overview.scss new/openQA-5.1770718745.ce2072d3/assets/stylesheets/overview.scss --- old/openQA-5.1770308102.12dfd0e4/assets/stylesheets/overview.scss 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/assets/stylesheets/overview.scss 2026-02-10 11:19:05.000000000 +0100 @@ -21,12 +21,11 @@ margin-left: 0.5rem; } +#summary .badge-btn.btn-outline-light { + color: black; +} #summary .badge { - font-size: 90%; - padding: 4px 6px 4px; - border-radius: 0.5rem; - color: #fff; - background-color: #bbb; + top: 0px; } #summary .time-params { font-weight: lighter; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/docs/UsersGuide.asciidoc new/openQA-5.1770718745.ce2072d3/docs/UsersGuide.asciidoc --- old/openQA-5.1770308102.12dfd0e4/docs/UsersGuide.asciidoc 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/docs/UsersGuide.asciidoc 2026-02-10 11:19:05.000000000 +0100 @@ -1541,9 +1541,14 @@ Within each group the oldest jobs are deleted first. -It is also possible to abort cleanup tasks early in case there is still +It is also possible to abort cleanup and archiving early in case there is still enough headroom on relevant file systems anyway. This can be enabled using the -configuration settings `…_cleanup_max_free_percentage`. +configuration settings `…_cleanup_max_free_percentage`. Be aware that this can +lead to very extensive and long cleanups if the cleanup is triggered after all. +This is especially the case on instances where many jobs run. If the (long) +cleanup is interrupted/retried because `openqa-gru.service` is restarted, these +configuration settings may also lead to incomplete cleanup and archiving as long +as there is enough headroom on the relevant file systems. NOTE: The space-aware cleanup relies on `df` reporting a valid file system space usage. The algorithms also assume that screenshots and test results are stored diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/eslint.config.mjs new/openQA-5.1770718745.ce2072d3/eslint.config.mjs --- old/openQA-5.1770308102.12dfd0e4/eslint.config.mjs 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/eslint.config.mjs 2026-02-10 11:19:05.000000000 +0100 @@ -1,15 +1,15 @@ -import js from "@eslint/js"; -import eslintConfigPrettier from "eslint-config-prettier"; -import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; +import js from '@eslint/js'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; export default [ js.configs.recommended, { rules: { - "no-unused-vars": "off", - "no-undef": "off", + 'no-unused-vars': 'off', + 'no-undef': 'off' } }, eslintConfigPrettier, - eslintPluginPrettierRecommended, + eslintPluginPrettierRecommended ]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/lib/OpenQA/Schema/Result/JobGroups.pm new/openQA-5.1770718745.ce2072d3/lib/OpenQA/Schema/Result/JobGroups.pm --- old/openQA-5.1770308102.12dfd0e4/lib/OpenQA/Schema/Result/JobGroups.pm 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/lib/OpenQA/Schema/Result/JobGroups.pm 2026-02-10 11:19:05.000000000 +0100 @@ -226,18 +226,12 @@ my @not_important_cond = ( TAG_ID_COLUMN, => {-not_in => $important_builds_with_version}, BUILD => {-not_in => $important_builds_without_version}); - my $expired_jobs = $jobs->search( - { - @not_important_cond, - text => {like => 'label:linked%'}, - 'me.t_created' => $timecond, - @group_cond, - }, - {order_by => 'me.id', join => 'comments'}); - my @linked_jobs = map { $_->id } $expired_jobs->all; + my @linked_jobs_cond = (text => {like => 'label:linked%'}, 'me.t_created' => $timecond, @group_cond); + my @linked_jobs_search = ({@not_important_cond, @linked_jobs_cond}, {order_by => 'me.id', join => 'comments'}); + my @linked_job_ids = map { $_->id } $jobs->search(@linked_jobs_search)->all; # define condition for expired jobs in unimportant builds - my @ors = ({@not_important_cond, 'me.t_created' => $timecond, id => {-not_in => \@linked_jobs}}); + my @ors = ({@not_important_cond, 'me.t_created' => $timecond, id => {-not_in => \@linked_job_ids}}); # define condition for expired jobs in important builds my ($important_timestamp, @important_cond); @@ -247,7 +241,7 @@ -or => [ TAG_ID_COLUMN, => {-in => $important_builds_with_version}, BUILD => {-in => $important_builds_without_version}, - id => {-in => \@linked_jobs}]); + id => {-in => \@linked_job_ids}]); push @ors, {@important_cond, 'me.t_created' => {'<' => $important_timestamp}}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/lib/OpenQA/WebAPI/Controller/Test.pm new/openQA-5.1770718745.ce2072d3/lib/OpenQA/WebAPI/Controller/Test.pm --- old/openQA-5.1770308102.12dfd0e4/lib/OpenQA/WebAPI/Controller/Test.pm 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/lib/OpenQA/WebAPI/Controller/Test.pm 2026-02-10 11:19:05.000000000 +0100 @@ -106,6 +106,17 @@ '[0-9]' => 0.64 ); +my %SUMMARY_CATEGORY_QUERY = ( + passed => {result => PASSED, state => undef}, + softfailed => {result => SOFTFAILED, state => undef}, + failed => {result => FAILED, state => undef}, + not_complete => {result => [NOT_COMPLETE_RESULTS], state => undef}, + scheduled => {result => undef, state => SCHEDULED}, + running => {result => undef, state => [EXECUTION_STATES]}, + aborted => {result => [ABORTED_RESULTS], state => undef}, + none => {result => NONE, state => undef}, +); + sub referer_check ($self) { return $self->reply->not_found if (!defined $self->param('testid')); my $referer = $self->req->headers->header('Referer') // ''; @@ -904,6 +915,7 @@ until => $search_args->{until}, parallel_children_collapsable_results_sel => $config->{global}->{parallel_children_collapsable_results_sel}, summary_parts => \@summary_parts, + summary_category_query => \%SUMMARY_CATEGORY_QUERY, only_distri => $only_distri, limit_exceeded => $exceeded_limit, ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/package-lock.json new/openQA-5.1770718745.ce2072d3/package-lock.json --- old/openQA-5.1770308102.12dfd0e4/package-lock.json 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/package-lock.json 2026-02-10 11:19:05.000000000 +0100 @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "GPL-2.0", "dependencies": { - "ace-builds": "^1.43.3", + "ace-builds": "^1.43.4", "anser": "^2.3.2", "bootstrap": "^5.3.8", "chosen-js": "^1.8.7", @@ -22,7 +22,7 @@ "timeago": "^1.6.7" }, "devDependencies": { - "eslint": "^9.36.0", + "eslint": "^9.38.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "prettier": "3.6.2" @@ -48,21 +48,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.6", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -71,19 +73,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -118,9 +123,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", - "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -131,22 +136,23 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -203,6 +209,29 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@pkgr/core": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", @@ -241,9 +270,9 @@ "license": "MIT" }, "node_modules/ace-builds": { - "version": "1.43.3", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.3.tgz", - "integrity": "sha512-MCl9rALmXwIty/4Qboijo/yNysx1r6hBTzG+6n/TiOm5LFhZpEvEIcIITPFiEOEFDfgBOEmxu+a4f54LEFM6Sg==", + "version": "1.43.4", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.4.tgz", + "integrity": "sha512-8hAxVfo2ImICd69BWlZwZlxe9rxDGDjuUhh+WeWgGDvfBCE+r3lkynkQvIovDz4jcMi8O7bsEaFygaDT+h9sBA==", "license": "BSD-3-Clause" }, "node_modules/acorn": { @@ -314,12 +343,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, "node_modules/bootstrap": { "version": "5.3.8", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", @@ -339,17 +362,6 @@ "@popperjs/core": "^2.11.8" } }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -399,12 +411,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -893,25 +899,24 @@ } }, "node_modules/eslint": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", - "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.36.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", @@ -1339,9 +1344,9 @@ } }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -1420,15 +1425,19 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", + "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@isaacs/brace-expansion": "^5.0.1" }, "engines": { - "node": "*" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ms": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/package.json new/openQA-5.1770718745.ce2072d3/package.json --- old/openQA-5.1770308102.12dfd0e4/package.json 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/package.json 2026-02-10 11:19:05.000000000 +0100 @@ -12,13 +12,13 @@ }, "homepage": "https://github.com/os-autoinst/openQA#readme", "devDependencies": { - "eslint": "^9.36.0", + "eslint": "^9.38.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "prettier": "3.6.2" }, "dependencies": { - "ace-builds": "^1.43.3", + "ace-builds": "^1.43.4", "anser": "^2.3.2", "bootstrap": "^5.3.8", "chosen-js": "^1.8.7", @@ -33,6 +33,7 @@ "overrides": { "dagre-d3": { "d3": "npm:d3" - } + }, + "minimatch": "10.1.2" } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/10-tests_overview.t new/openQA-5.1770718745.ce2072d3/t/10-tests_overview.t --- old/openQA-5.1770308102.12dfd0e4/t/10-tests_overview.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/10-tests_overview.t 2026-02-10 11:19:05.000000000 +0100 @@ -28,7 +28,7 @@ my $summary = get_summary; like($summary, qr/Overall Summary of opensuse 13\.1 build 0091/i); -like($summary, qr/Passed: 3 Scheduled: 2 Running: 2 None: 1$/i); +like($summary, qr/Passed: 3 Scheduled: 2 Running: 2 None: 1/i); # Check the headers $t->element_exists('#flavor_DVD_arch_i586'); @@ -101,7 +101,7 @@ $t->get_ok('/tests/overview' => form => {distri => 'opensuse', version => '13.1'})->status_is(200); $summary = get_summary; like($summary, qr/Summary of opensuse 13\.1 build 0091/i, 'summary for 13.1'); -like($summary, qr/Passed: 3 Scheduled: 2 Running: 2 None: 1$/i, 'summary badges for 13.1'); +like($summary, qr/Passed: 3 Scheduled: 2 Running: 2 None: 1/i, 'summary badges for 13.1'); $form = {distri => 'opensuse', version => '13.1', groupid => 1001}; $t->get_ok('/tests/overview' => form => $form)->status_is(200); @@ -148,9 +148,9 @@ my @params = (distri => 'opensuse', version => 'Factory', build => '87.5011'); my $tp = '2020-01-01T00:00:00'; $t->get_ok('/tests/overview' => form => {@params, t => $tp}); - like(get_summary, qr/at the time of $tp.*show latest jobs$/s, 'jobs newer than time parameter filtered out'); + like(get_summary, qr/at the time of $tp.*show latest jobs/s, 'jobs newer than time parameter filtered out'); $t->get_ok('/tests/overview' => form => {@params, t => time2str('%Y-%m-%d %H:%M:%S', time, 'UTC')}); - like(get_summary, qr/at the time of.*show latest.*Incomplete: 1$/s, 'jobs newer than time parameter shown'); + like(get_summary, qr/at the time of.*show latest.*Incomplete: 1/s, 'jobs newer than time parameter shown'); }; subtest 'limit parameter' => sub { @@ -164,7 +164,7 @@ $t->get_ok('/tests/overview' => form => $form)->status_is(200); $summary = get_summary; like($summary, qr/Summary of opensuse 13\.1 build 0091/i, 'Still references the last build'); -like($summary, qr/Passed: 3$/i, 'only passed are shown'); +like($summary, qr/Passed: 3/i, 'only passed are shown'); $t->element_exists('#res_DVD_i586_kde .result_passed'); $t->element_exists('#res_DVD_i586_textmode .result_passed'); $t->element_exists_not('#res_DVD_i586_RAID0 .state_scheduled'); @@ -176,10 +176,37 @@ # This time show only failed $form = {distri => 'opensuse', version => 'Factory', build => '0048', result => 'failed'}; $t->get_ok('/tests/overview' => form => $form)->status_is(200); -like(get_summary, qr/current time Failed: 1$/i); +like(get_summary, qr/current time Failed: 1/i); $t->element_exists('#res_DVD_x86_64_doc .result_failed'); $t->element_exists_not('#res_DVD_x86_64_kde .result_passed'); +subtest 'clickable summary buttons' => sub { + $t->get_ok('/tests/overview' => form => {distri => 'opensuse', version => 'Factory', build => '0048'}) + ->status_is(200); + my $summary = $t->tx->res->dom->at('#summary .card-body'); + my $failed_link = $summary->at('a[href*="result=failed"]'); + ok $failed_link, 'Failed count is clickable'; + my $href = $failed_link->attr('href'); + like $href, qr/distri=opensuse/, 'preserves distri'; + like $href, qr/version=Factory/, 'preserves version'; + like $href, qr/build=0048/, 'preserves build'; + like $href, qr/result=failed/, 'sets result filter'; + + my $softfailed_link = $summary->at('a[href*="result=softfailed"]'); + ok $softfailed_link, 'Soft-failed count is clickable'; + like $softfailed_link->attr('href'), qr/result=softfailed/, 'sets softfailed filter'; + + $t->get_ok('/tests/overview' => form => {distri => 'opensuse', version => '13.1'})->status_is(200); + $summary = $t->tx->res->dom->at('#summary .card-body'); + my $passed_link = $summary->at('a[href*="result=passed"]'); + ok $passed_link, 'Passed count is clickable for 13.1'; + like $passed_link->attr('href'), qr/result=passed/, 'sets passed filter'; + + my $all_link = $summary->at('a:last-child'); + is $all_link->text, 'All', 'All button is present'; + unlike $all_link->attr('href'), qr/result=/, 'All button clears result'; +}; + subtest 'todo-flag on test overview' => sub { $schema->txn_begin; $jobs->create( @@ -195,7 +222,7 @@ }); $form = {distri => 'opensuse', version => 'Factory', build => '0048', todo => 1}; $t->get_ok('/tests/overview' => form => $form)->status_is(200); - like(get_summary, qr/current time Failed: 1$/i, 'todo=1 shows only unlabeled left failed'); + like(get_summary, qr/current time Failed: 1/i, 'todo=1 shows only unlabeled left failed'); # add a failing module to one of the softfails and a parallel_failed job to test the 'TODO' option for my $j ((99936, 99964)) { @@ -212,7 +239,7 @@ $t->get_ok('/tests/overview' => form => $form)->status_is(200); like( get_summary, - qr/current time Soft-Failed: 1 Failed: 1 Aborted: 1$/i, + qr/current time Soft-Failed: 1 Failed: 1 Aborted: 1/i, 'todo=1 shows only unlabeled left failed (previously softfailed)' ); $t->element_exists_not('#res-99939', 'softfailed filtered out'); @@ -225,11 +252,8 @@ user_id => 99903, }); $t->get_ok('/tests/overview' => form => $form)->status_is(200); - like( - get_summary, - qr/current time Failed: 1 Aborted: 1$/i, - 'todo=1 shows only unlabeled left failed after labelling' - ); + like(get_summary, qr/current time Failed: 1 Aborted: 1/i, + 'todo=1 shows only unlabeled left failed after labelling'); $t->element_exists_not('#res-99936', 'reviewed failed filtered out'); $schema->txn_rollback; }; @@ -240,7 +264,7 @@ like($summary, qr/Summary of opensuse, opensuse test/i, 'references both groups selected by query'); like( $summary, - qr/current time Passed: 2 Scheduled: 1 Running: 2 None: 1$/i, + qr/current time Passed: 2 Scheduled: 1 Running: 2 None: 1/i, 'shows latest jobs from both groups 1001/1002' ); $t->element_exists('#res_DVD_i586_kde', 'job from group 1001 is shown'); @@ -254,7 +278,7 @@ qr/Summary of opensuse, opensuse test build 0091[^,]/i, 'multiple groups with no build specified yield the same, latest build of every group' ); -like($summary, qr/current time Passed: 2 Scheduled: 1 Running: 2 None: 1$/i); +like($summary, qr/current time Passed: 2 Scheduled: 1 Running: 2 None: 1/i); my $jobGroup = $schema->resultset('JobGroups')->create( { @@ -280,7 +304,7 @@ qr/Summary of opensuse, opensuse test 2 build 0091,0092/i, 'multiple groups with no build specified yield each build for every group' ); -like($summary, qr/current time Passed: 3 Scheduled: 2 Running: 1 None: 1$/i, 'summary of 0091,0092'); +like($summary, qr/current time Passed: 3 Scheduled: 2 Running: 1 None: 1/i, 'summary of 0091,0092'); $t->get_ok('/tests/overview?arch=&flavor=&machine=&test=&modules=kate&module_re=&groupid=1001')->status_is(200); $summary = get_summary; @@ -303,7 +327,7 @@ like($summary, qr/Summary of opensuse/i, 'shows all available latest jobs for the only present distri'); like( $summary, - qr/current time Passed: 3 Scheduled: 2 Running: 2 None: 1$/i, + qr/current time Passed: 3 Scheduled: 2 Running: 2 None: 1/i, 'shows latest jobs from all distri, version, build, flavor, arch' ); $t->element_exists('#res_DVD_i586_kde'); @@ -344,7 +368,7 @@ # Check if logpackages has failed, filtering with failed_modules $form = {distri => 'opensuse', version => 'Factory', failed_modules => 'logpackages'}; $t->get_ok('/tests/overview', form => $form)->status_is(200); -like(get_summary, qr/current time$/i, 'all jobs filtered out'); +like(get_summary, qr/current time/i, 'all jobs filtered out'); $t->element_exists_not('#res_DVD_x86_64_doc .result_failed', 'old job not revealed'); $t->element_exists_not('#res_DVD_x86_64_kde .result_passed', 'passed job hidden'); @@ -352,7 +376,7 @@ my $latest_job = $jobs->find(99940); $latest_job->update({DISTRI => 'not opensuse'}); $t->get_ok('/tests/overview', form => $form)->status_is(200); -like(get_summary, qr/current time Failed: 1$/i); +like(get_summary, qr/current time Failed: 1/i); $t->element_exists('#res_DVD_x86_64_doc .result_failed', 'job with failed module logpackages still shown'); $t->element_exists_not('#res_DVD_x86_64_kde .result_passed', 'passed job hidden'); @@ -380,7 +404,7 @@ failed_modules => 'failing_module' })->status_is(200); -like(get_summary, qr/current time Failed: 1$/i, 'failed_modules shows failed jobs'); +like(get_summary, qr/current time Failed: 1/i, 'failed_modules shows failed jobs'); $t->element_exists('#res-99940', 'foo_bar_failed_module failed'); $t->element_exists('#res_DVD_x86_64_doc .result_failed', 'foo_bar_failed_module module failed'); @@ -399,7 +423,7 @@ version => 'Factory', failed_modules => 'failing_module,logpackages', })->status_is(200); -like(get_summary, qr/current time Failed: 1$/i, 'expected job failures matches'); +like(get_summary, qr/current time Failed: 1/i, 'expected job failures matches'); $t->text_is('#res_DVD_x86_64_doc .failedmodule *' => 'failing_module', 'failing_module module failed'); # Check if failed_modules hides successful jobs even if a (fake) module failure is there @@ -417,7 +441,7 @@ version => '13.1', failed_modules => 'failing_module', })->status_is(200); -like(get_summary, qr/current time$/i, 'Job was successful, so failed_modules does not show it'); +like(get_summary, qr/current time/i, 'Job was successful, so failed_modules does not show it'); $t->element_exists_not('#res-99946', 'no module has failed'); subtest 'Maximum jobs limit' => sub { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/14-grutasks.t new/openQA-5.1770718745.ce2072d3/t/14-grutasks.t --- old/openQA-5.1770308102.12dfd0e4/t/14-grutasks.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/14-grutasks.t 2026-02-10 11:19:05.000000000 +0100 @@ -457,13 +457,14 @@ is($audit_events->search({event => 'startup'})->count, 1, 'old startup event deleted'); }; -subtest 'labeled jobs considered important' => sub { +subtest 'archiving and labeling jobs to be considered important' => sub { my $minion = $app->minion; is $minion->jobs({tasks => ['archive_job_results']})->total, 0, 'no archiving jobs enqueued so far'; # create important job which was finished 12 days ago + # note: Setting `logs_present => 0` to show that jobs without logs are also subject to archiving. my $job = $app->schema->resultset('Jobs')->find(99938); - $job->update({t_created => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * 12, 'UTC')}); + $job->update({t_created => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * 12, 'UTC'), logs_present => 0}); $job->group->update({keep_logs_in_days => 5, keep_important_logs_in_days => 20}); my $filename = create_temp_job_log_file($job->result_dir); my $user = $app->schema->resultset('Users')->find({username => 'system'}); @@ -502,8 +503,8 @@ ok -e $filename, 'results exist under archive path'; } - # assume job was finished 22 days ago - $job->update({t_created => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * 22, 'UTC')}); + # assume job was finished 22 days ago and logs are present to test cleanup of archived job + $job->update({t_created => time2str('%Y-%m-%d %H:%M:%S', time - ONE_DAY * 22, 'UTC'), logs_present => 1}); run_gru_job($app, 'limit_results_and_logs'); ok !-e $filename, 'results of important job cleaned up if exceeding retention period for important jobs'; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/15-assets.t new/openQA-5.1770718745.ce2072d3/t/15-assets.t --- old/openQA-5.1770308102.12dfd0e4/t/15-assets.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/15-assets.t 2026-02-10 11:19:05.000000000 +0100 @@ -19,7 +19,7 @@ require OpenQA::Test::Database; use OpenQA::Test::Client 'client'; use OpenQA::Test::Utils 'embed_server_for_testing'; -use OpenQA::Test::TimeLimit '10'; +use OpenQA::Test::TimeLimit '24'; use OpenQA::WebSockets::Client; use OpenQA::Scheduler::Model::Jobs; use OpenQA::Schema::ResultSet::Assets; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/25-cache-service.t new/openQA-5.1770718745.ce2072d3/t/25-cache-service.t --- old/openQA-5.1770308102.12dfd0e4/t/25-cache-service.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/25-cache-service.t 2026-02-10 11:19:05.000000000 +0100 @@ -44,7 +44,7 @@ use Mojo::IOLoop::ReadWriteProcess qw(queue process); use Mojo::IOLoop::ReadWriteProcess::Session 'session'; use OpenQA::Test::Utils - qw(fake_asset_server cache_minion_worker cache_worker_service wait_for_or_bail_out perform_minion_jobs); + qw(fake_asset_server cache_minion_worker cache_worker_service wait_for_or_bail_out perform_minion_jobs wait_for); use OpenQA::Test::TimeLimit '90'; use Mojo::Util qw(md5_sum); use OpenQA::CacheService; @@ -421,7 +421,10 @@ } 'assets'; - ok($cache_client->asset_exists('localhost', $_), "Asset $_ downloaded correctly") for @assets; + for my $asset (@assets) { + ok(wait_for(sub { $cache_client->asset_exists('localhost', $asset) }, "Asset $asset downloaded correctly"), + "Asset $asset downloaded correctly"); + } @assets = map { '[email protected]' } 1 .. $tot_proc; unlink path($cachedir)->child($_) for @assets; @@ -434,9 +437,15 @@ } 'assets'; - ok($cache_client->asset_exists('localhost', '[email protected]'), - "Asset $_ downloaded correctly") - for @assets; + for my $asset (@assets) { + ok( + wait_for( + sub { $cache_client->asset_exists('localhost', '[email protected]') }, + "Asset $asset downloaded correctly" + ), + "Asset $asset downloaded correctly" + ); + } $_->stop for ($worker_2, $worker_3, $worker_4); }; @@ -482,6 +491,7 @@ subtest 'Minion monitoring with InfluxDB' => sub { my $app = $t->app; my $cache = $app->cache; + $cache->reset_download_count; my $metrics = $cache->metrics; my $rate = $metrics->{download_rate}; my $count = $metrics->{download_count}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/40-openqa-clone-job.t new/openQA-5.1770718745.ce2072d3/t/40-openqa-clone-job.t --- old/openQA-5.1770308102.12dfd0e4/t/40-openqa-clone-job.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/40-openqa-clone-job.t 2026-02-10 11:19:05.000000000 +0100 @@ -9,7 +9,8 @@ use OpenQA::Test::TimeLimit '10'; use OpenQA::Test::Utils qw(run_cmd test_cmd); use Test::MockModule; -$ENV{OPENQA_CONFIG} = ''; + +$ENV{OPENQA_CONFIG} = "$FindBin::Bin/data"; sub test_once { # Report failure at the callsite instead of the test function diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/ui/13-admin.t new/openQA-5.1770718745.ce2072d3/t/ui/13-admin.t --- old/openQA-5.1770308102.12dfd0e4/t/ui/13-admin.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/ui/13-admin.t 2026-02-10 11:19:05.000000000 +0100 @@ -720,8 +720,15 @@ }; subtest 'delete key' => sub { - $driver->find_child_element($tbody, 'a[title=Delete]')->click; - unlike(api_keys_tbody->get_text, qr/1234567890ABCDEF/, 'default API key present'); + $driver->find_child_element(api_keys_tbody, 'a[title=Delete]')->click; + wait_for_ajax_and_animations(); + wait_until( + sub { + ($driver->execute_script("return document.getElementById('api-keys-tbody')?.innerText") // '') + !~ qr/1234567890ABCDEF/; + }, + 'default API key gone' + ); like($driver->find_element_by_id('flash-messages')->get_text, qr/API key delete/, 'flash message for deletion'); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/t/ui/21-admin-needles.t new/openQA-5.1770718745.ce2072d3/t/ui/21-admin-needles.t --- old/openQA-5.1770308102.12dfd0e4/t/ui/21-admin-needles.t 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/t/ui/21-admin-needles.t 2026-02-10 11:19:05.000000000 +0100 @@ -105,7 +105,7 @@ wait_for_ajax(with_minion => $minion); $driver->find_element_by_id('delete_all')->click(); - is($driver->find_element_by_id('confirm_delete')->is_displayed(), 1, 'modal dialog'); + ok(wait_for_element(selector => '#confirm_delete', is_displayed => 1), 'modal dialog'); is($driver->find_element('#confirm_delete .modal-title')->get_text(), 'Needle deletion', 'title matches'); is(scalar @{$driver->find_elements('#outstanding-needles li', 'css')}, 1, 'one needle outstanding for deletion'); is(scalar @{$driver->find_elements('#failed-needles li', 'css')}, 0, 'no failed needles so far'); @@ -130,8 +130,14 @@ wait_for_ajax(with_minion => $minion); # required due to server-side datatable $_->click() for $driver->find_elements('td input', 'css'); $driver->find_element_by_id('delete_all')->click(); - my @outstanding_needles = $driver->find_elements('#outstanding-needles li', 'css'); - is(scalar @outstanding_needles, 2, 'still two needle outstanding for deletion'); + my @outstanding_needles; + wait_until( + sub { + @outstanding_needles = $driver->find_elements('#outstanding-needles li', 'css'); + return scalar @outstanding_needles == 2; + }, + 'still two needle outstanding for deletion' + ); is((shift @outstanding_needles)->get_text(), 'inst-timezone-text.json', 'right needle names displayed'); is((shift @outstanding_needles)->get_text(), 'never-matched.json', 'right needle names displayed'); is(scalar @{$driver->find_elements('#failed-needles li', 'css')}, @@ -148,7 +154,8 @@ for my $file_name (@needle_files) { is(-f $needle_dir . $file_name, undef, $file_name . ' is gone'); } - is($driver->find_element('#needles tbody tr')->get_text(), 'No data available in table', 'no needles left'); + wait_until(sub { $driver->find_element('#needles tbody tr')->get_text() eq 'No data available in table' }, + 'no needles left'); }; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/templates/webapi/test/overview.html.ep new/openQA-5.1770718745.ce2072d3/templates/webapi/test/overview.html.ep --- old/openQA-5.1770308102.12dfd0e4/templates/webapi/test/overview.html.ep 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/templates/webapi/test/overview.html.ep 2026-02-10 11:19:05.000000000 +0100 @@ -49,17 +49,18 @@ </span> </button> % } - % my @badges = qw(success secondary warning danger info primary light light); - % my @labels = qw(Passed Incomplete Soft-Failed Failed Scheduled Running Aborted None); + % my @badges = qw(success warning danger secondary info primary light light); + % my @labels = qw(Passed Soft-Failed Failed Incomplete Scheduled Running Aborted None); % my $index = 0; - % for my $category (qw(passed not_complete softfailed failed scheduled running aborted none)) { + % for my $category (qw(passed softfailed failed not_complete scheduled running aborted none)) { % my ($label, $badge) = ($labels[$index], $badges[$index++]); % next unless my $count = delete $aggregated->{$category}; - <%= $label %>: <span class="badge text-bg-<%= $badge %>"><%= $count %></span> + <a href="<%= url_with->query($summary_category_query->{$category}) %>" class="badge-btn btn btn-sm btn-outline-<%= $badge %> mb-1 d-inline-flex align-items-center"><%= $label %>: <span class="badge text-bg-<%= $badge %> ms-1"><%= $count %></span></a> % } % if (my $unknown_count = sum values %$aggregated) { Unknown: <span class="badge text-bg-light"><%= $unknown_count %></span> % } + <a href="<%= url_with->query({result => undef, state => undef}) %>" class="btn btn-sm btn-outline-secondary mb-1 d-inline-flex align-items-center">All</a> </div> </div> <div class="card" id="filter-panel"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/tools/ci/autoinst.sha new/openQA-5.1770718745.ce2072d3/tools/ci/autoinst.sha --- old/openQA-5.1770308102.12dfd0e4/tools/ci/autoinst.sha 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/tools/ci/autoinst.sha 2026-02-10 11:19:05.000000000 +0100 @@ -1 +1 @@ -6846714a64fbfe05ebf48c1527e3dfddf32cd539 +c249fe9c14f7efb45672dbc8c191d7e2ad300d15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1770308102.12dfd0e4/tools/ci/ci-packages.txt new/openQA-5.1770718745.ce2072d3/tools/ci/ci-packages.txt --- old/openQA-5.1770308102.12dfd0e4/tools/ci/ci-packages.txt 2026-02-05 17:15:02.000000000 +0100 +++ new/openQA-5.1770718745.ce2072d3/tools/ci/ci-packages.txt 2026-02-10 11:19:05.000000000 +0100 @@ -1,266 +1,280 @@ -bsdtar -chrony -chrony-pool-openSUSE -cmark -hostname -iproute2 -iputils -jq -libhidapi-hidraw0 -libjq1 -libmnl0 -libxtables12 -lsof -openssh-clients -openssh-common -optipng -perl-Algorithm-C3 -perl-Algorithm-Diff -perl-aliased -perl-App-cpanminus -perl-Archive-Zip -perl-B-Hooks-EndOfScope -perl-B-Keywords -perl-BSD-Resource -perl-Capture-Tiny -perl-Carp-Always -perl-Carp-Clan -perl-Class-Accessor -perl-Class-Accessor-Grouped -perl-Class-C3 -perl-Class-C3-Componentised -perl-Class-Data-Inheritable -perl-Class-Factory-Util -perl-Class-Inspector -perl-Class-Load -perl-Class-Load-XS -perl-Class-Method-Modifiers -perl-Class-Singleton -perl-Class-Tiny -perl-Class-XSAccessor -perl-Clone -perl-Clone-Choose -perl-Code-TidyAll -perl-CommonMark -perl-Config-Any -perl-Config-INI -perl-Config-IniFiles -perl-Config-Tiny -perl-Context-Preserve -perl-CPAN-DistnameInfo -perl-Cpanel-JSON-XS -perl-CPAN-Meta-Check -perl-CPAN-Meta-Requirements -perl-Crypt-DES -perl-Crypt-DH-GMP -perl-Crypt-Rijndael -perl-CryptX -perl-CSS-Minifier-XS -perl-Data-Dump -perl-Data-Dumper-Concise -perl-Data-OptList -perl-Data-Section -perl-DateTime -perl-DateTime-Format-Builder -perl-DateTime-Format-Pg -perl-DateTime-Format-Strptime -perl-DateTime-Locale -perl-DateTime-TimeZone -perl-DBD-Pg -perl-DBD-SQLite -perl-DBI -perl-DBIx-Class -perl-DBIx-Class-DeploymentHandler -perl-DBIx-Class-DynamicDefault -perl-DBIx-Class-OptimisticLocking -perl-DBIx-Class-Schema-Config -perl-Devel-Cover -perl-Devel-Cover-Report-Codecovbash -perl-Devel-GlobalDestruction -perl-Devel-OverloadInfo -perl-Devel-StackTrace -perl-Digest-HMAC -perl-Digest-SHA1 -perl-Dist-CheckConflicts -perl-Encode-Locale -perl-Eval-Closure -perl-Exception-Class -perl-Exporter-Tiny -perl-Feature-Compat-Try -perl-File-chdir -perl-File-Copy-Recursive -perl-File-HomeDir -perl-File-Listing -perl-File-Map -perl-File-Path -perl-File-pushd -perl-File-ShareDir -perl-Filesys-Df -perl-File-Which -perl-Getopt-Long-Descriptive -perl-Hash-Merge -perl-HTML-Parser -perl-HTML-Tagset -perl-HTTP-Cookies -perl-HTTP-Daemon -perl-HTTP-Date -perl-HTTP-Message -perl-HTTP-Negotiate -perl-Import-Into -perl-IO-HTML -perl-IO-Socket-SSL -perl-IO-String -perl-IO-stringy -perl-IO-Tty -perl-IPC-Run -perl-IPC-Run3 -perl-IPC-System-Simple -perl-JavaScript-Minifier-XS -perl-JSON -perl-JSON-MaybeXS -perl-JSON-Validator -perl-libwww-perl -perl-Lingua-EN-Inflect -perl-List-Compare -perl-List-MoreUtils -perl-List-MoreUtils-XS -perl-List-SomeUtils -perl-List-SomeUtils-XS -perl-local-lib -perl-Log-Any -perl-Log-Contextual -perl-LWP-MediaTypes -perl-LWP-Protocol-https -perl-MCP -perl-Minion -perl-Minion-Backend-SQLite -perl-Mixin-Linewise -perl-Module-Build -perl-Module-Find -perl-Module-Implementation -perl-Module-Pluggable -perl-Module-Runtime -perl-Module-Runtime-Conflicts -perl-Mojo-IOLoop-ReadWriteProcess -perl-Mojolicious -perl-Mojolicious-Plugin-AssetPack -perl-Mojolicious-Plugin-OAuth2 -perl-Mojo-Pg -perl-Mojo-RabbitMQ-Client -perl-Mojo-SQLite -perl-Moo -perl-Moose -perl-MooseX-Role-Parameterized -perl-MRO-Compat -perl-namespace-autoclean -perl-namespace-clean -perl-Net-AMQP -perl-Net-HTTP -perl-Net-IP -perl-Net-OpenID-Common -perl-Net-OpenID-Consumer -perl-Net-SNMP -perl-Net-SSH2 -perl-Net-SSLeay -perl-Package-DeprecationManager -perl-Package-Stash -perl-Package-Stash-XS -perl-Package-Variant -perl-Params-Util -perl-Params-Validate -perl-Params-ValidationCompiler -perl-Parse-PMFile -perl-Parse-RecDescent -perl-Path-Class -perl-Path-Tiny -perl-Perl-Critic -perl-Perl-Critic-Community -perl-Perl-Critic-Policy-Variables-ProhibitLoopOnHash -perl-PerlIO-utf8_strict -perl-Perl-Tidy -perl-Pod-POM -perl-Pod-Spell -perl-PPI -perl-PPIx-QuoteLike -perl-PPIx-Regexp -perl-PPIx-Utils -perl-Readonly -perl-Regexp-Common -perl-Role-Tiny -perl-Scope-Guard -perl-Selenium-Remote-Driver -perl-Socket6 -perl-Socket-MsgHdr -perl-Software-License -perl-Sort-Versions -perl-Specio -perl-Specio-Library-Path-Tiny -perl-SQL-Abstract -perl-SQL-Abstract-Classic -perl-SQL-Abstract-Pg -perl-SQL-SplitStatement -perl-SQL-Translator -perl-strictures -perl-String-Format -perl-String-ShellQuote -perl-Sub-Exporter -perl-Sub-Exporter-Progressive -perl-Sub-Identify -perl-Sub-Install -perl-Sub-Name -perl-Sub-Quote -perl-Sub-Uplevel -perl-SUPER -perl-Syntax-Keyword-Try -perl-TAP-Harness-JUnit -perl-Task-Weaken -perl-Test-CheckGitStatus -perl-Test-Deep -perl-Test-Differences -perl-Test-Exception -perl-Test-Fatal -perl-Test-LongString -perl-Test-MockModule -perl-Test-MockObject -perl-Test-Most -perl-Test-Output -perl-Test-Strict -perl-Test-Warn -perl-Test-Warnings -perl-Text-Brew -perl-Text-Diff -perl-Text-Glob -perl-Text-Template -perl-TimeDate -perl-Time-Duration-Parse -perl-Time-modules -perl-Time-Moment -perl-Try-Tiny -perl-UNIVERSAL-can -perl-UNIVERSAL-isa -perl-URI -perl-URI-db -perl-URI-Nested -perl-Variable-Magic -perl-WWW-RobotRules -perl-XML-LibXML -perl-XML-NamespaceSupport -perl-XML-SAX -perl-XML-SAX-Base -perl-XML-SAX-Expat -perl-XML-SemanticDiff -perl-XML-Simple -perl-XS-Parse-Keyword -perl-YAML -perl-YAML-LibYAML -perl-YAML-PP -psmisc -python313-PyYAML -python313-yamllint -ShellCheck -shfmt -sqlite3 -sshpass -file -perl-Net-DBus -perl-Test-Pod +bsdtar-3.8.1 +chrony-4.6.1 +chrony-pool-openSUSE-4.6.1 +cmark-0.31.0 +crypto-policies-scripts-20250124.4d262e7 +expat-2.7.1 +file-5.46 +file-magic-5.46 +hostname-3.23 +iproute2-6.12 +iputils-20240905 +jq-1.7.1 +libcmark0_31_0-0.31.0 +libfido2-1-1.15.0 +libhidapi-hidraw0-0.14.0 +libjq1-1.7.1 +liblz1-1.15 +libmagic1-5.46 +libmnl0-1.0.5 +libonig5-6.9.8 +libssh2-1-1.11.1 +libtirpc3-1.3.6 +libtirpc-netconfig-1.3.6 +libxtables12-1.8.11 +lsof-4.99.4 +openssh-clients-10.0p2 +openssh-common-10.0p2 +optipng-0.7.8 +perl-Algorithm-C3-0.110.0 +perl-Algorithm-Diff-1.201 +perl-aliased-0.34 +perl-App-cpanminus-1.7048 +perl-Archive-Zip-1.68 +perl-B-Hooks-EndOfScope-0.280.0 +perl-B-Keywords-1.280.0 +perl-BSD-Resource-1.2911 +perl-Capture-Tiny-0.500.0 +perl-Carp-Always-0.16 +perl-Carp-Clan-6.80.0 +perl-Class-Accessor-0.51 +perl-Class-Accessor-Grouped-0.10014 +perl-Class-C3-0.35 +perl-Class-C3-Componentised-1.001002 +perl-Class-Data-Inheritable-0.100.0 +perl-Class-Inspector-1.36 +perl-Class-Load-0.25 +perl-Class-Load-XS-0.10 +perl-Class-Method-Modifiers-2.15 +perl-Class-Singleton-1.600.0 +perl-Class-Tiny-1.008 +perl-Class-XSAccessor-1.19 +perl-Clone-0.46 +perl-Clone-Choose-0.010 +perl-Code-TidyAll-0.840.0 +perl-CommonMark-0.310.100 +perl-Config-Any-0.33 +perl-Config-INI-0.029 +perl-Config-IniFiles-3.000003 +perl-Config-Tiny-2.300.0 +perl-Context-Preserve-0.03 +perl-CPAN-DistnameInfo-0.12 +perl-Cpanel-JSON-XS-4.380.0 +perl-CPAN-Meta-Check-0.18.0 +perl-CPAN-Meta-Requirements-2.143000 +perl-Crypt-DES-2.07 +perl-Crypt-DH-GMP-0.00012 +perl-Crypt-Rijndael-1.16 +perl-CryptX-0.87.0 +perl-CSS-Minifier-XS-0.13 +perl-Data-Dump-1.25 +perl-Data-Dumper-Concise-2.023 +perl-Data-OptList-0.114 +perl-DateTime-1.650.0 +perl-DateTime-Format-Builder-0.83 +perl-DateTime-Format-Pg-0.16014 +perl-DateTime-Format-Strptime-1.79 +perl-DateTime-Locale-1.440000 +perl-DateTime-TimeZone-2.640.0 +perl-DBD-Pg-3.18.0 +perl-DBD-SQLite-1.760.0 +perl-DBI-1.647.0 +perl-DBIx-Class-0.082844 +perl-DBIx-Class-DeploymentHandler-0.002234 +perl-DBIx-Class-DynamicDefault-0.04 +perl-DBIx-Class-OptimisticLocking-0.02 +perl-DBIx-Class-Schema-Config-0.001014 +perl-Devel-Cover-1.500.0 +perl-Devel-Cover-Report-Codecovbash-0.41.0 +perl-Devel-GlobalDestruction-0.14 +perl-Devel-OverloadInfo-0.007 +perl-Devel-StackTrace-2.50.0 +perl-Digest-HMAC-1.50.0 +perl-Digest-SHA1-2.13 +perl-Dist-CheckConflicts-0.11 +perl-Eval-Closure-0.14 +perl-Exception-Class-1.45 +perl-Exporter-Tiny-1.006002 +perl-Feature-Compat-Try-0.05 +perl-File-chdir-0.1011 +perl-File-Copy-Recursive-0.45 +perl-File-HomeDir-1.006 +perl-File-Listing-6.160.0 +perl-File-Map-0.71 +perl-File-Path-2.180000 +perl-File-pushd-1.016 +perl-File-ShareDir-1.118 +perl-Filesys-Df-0.92 +perl-File-Which-1.27 +perl-Getopt-Long-Descriptive-0.116.0 +perl-Hash-Merge-0.302 +perl-HTML-Parser-3.830.0 +perl-HTML-Tagset-3.240.0 +perl-HTTP-Cookies-6.110.0 +perl-HTTP-Date-6.06 +perl-HTTP-Message-7.0.0 +perl-HTTP-Negotiate-6.01 +perl-Import-Into-1.002005 +perl-IO-HTML-1.004 +perl-IO-Socket-SSL-2.89.0 +perl-IO-String-1.08 +perl-IO-stringy-2.113 +perl-IO-Tty-1.17 +perl-IPC-Run-20231003.0.0 +perl-IPC-Run3-0.49.0 +perl-IPC-System-Simple-1.30 +perl-JavaScript-Minifier-XS-0.15 +perl-JSON-4.10 +perl-JSON-MaybeXS-1.004008 +perl-JSON-Validator-5.150.0 +perl-libwww-perl-6.770.0 +perl-Lingua-EN-Inflect-1.905 +perl-List-Compare-0.55 +perl-List-MoreUtils-0.430 +perl-List-MoreUtils-XS-0.430 +perl-List-SomeUtils-0.59 +perl-List-SomeUtils-XS-0.58 +perl-local-lib-2.000029 +perl-Log-Any-1.717.0 +perl-Log-Contextual-0.009001 +perl-LWP-MediaTypes-6.04 +perl-LWP-Protocol-https-6.140.0 +perl-MCP-0.40.0 +perl-MIME-Base32-1.303.0 +perl-Minion-10.300.0 +perl-Minion-Backend-SQLite-5.0.7 +perl-Mixin-Linewise-0.111 +perl-Module-Build-0.423400 +perl-Module-Find-0.16 +perl-Module-Implementation-0.09 +perl-Module-Pluggable-6.300.0 +perl-Module-Runtime-0.016 +perl-Module-Runtime-Conflicts-0.003 +perl-Mojo-IOLoop-ReadWriteProcess-0.340.0 +perl-Mojolicious-9.410.0 +perl-Mojolicious-Plugin-AssetPack-2.150.0 +perl-Mojolicious-Plugin-OAuth2-2.02 +perl-Mojo-Pg-4.27 +perl-Mojo-RabbitMQ-Client-0.3.1 +perl-Mojo-SQLite-3.009 +perl-Moo-2.005005 +perl-Moose-2.2207 +perl-MooseX-Role-Parameterized-1.11 +perl-MRO-Compat-0.15 +perl-namespace-autoclean-0.310.0 +perl-namespace-clean-0.27 +perl-Net-AMQP-0.06 +perl-Net-DBus-1.2.0 +perl-Net-HTTP-6.23 +perl-Net-IP-1.26 +perl-Net-OpenID-Common-1.20 +perl-Net-OpenID-Consumer-1.18 +perl-Net-SNMP-6.0.1 +perl-Net-SSH2-0.73 +perl-Net-SSLeay-1.940.0 +perl-Package-DeprecationManager-0.18 +perl-Package-Stash-0.40 +perl-Package-Stash-XS-0.30 +perl-Package-Variant-1.003002 +perl-Params-Util-1.102 +perl-Params-Validate-1.31 +perl-Params-ValidationCompiler-0.31 +perl-Parse-PMFile-0.470.0 +perl-Parse-RecDescent-1.967015 +perl-Path-Class-0.37 +perl-Path-Tiny-0.146.0 +perl-Perl-Critic-1.152.0 +perl-Perl-Critic-Community-1.0.4 +perl-Perl-Critic-Policy-Plicease-ProhibitArrayAssignAref-100.0.0 +perl-Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008 +perl-PerlIO-utf8_strict-0.010 +perl-Perl-Tidy-20260109.0.0 +perl-Pod-Parser-1.66 +perl-Pod-POM-2.01 +perl-Pod-Spell-1.26 +perl-PPI-1.279.0 +perl-PPIx-QuoteLike-0.023 +perl-PPIx-Regexp-0.088 +perl-PPIx-Utils-0.003 +perl-Readonly-2.05 +perl-Regexp-Common-2024080801.0.0 +perl-Role-Tiny-2.002004 +perl-Scope-Guard-0.21 +perl-Selenium-Remote-Driver-1.49 +perl-Socket6-0.29 +perl-Socket-MsgHdr-0.05 +perl-Sort-Versions-1.62 +perl-Specio-0.490.0 +perl-Specio-Library-Path-Tiny-0.05 +perl-SQL-Abstract-2.000001 +perl-SQL-Abstract-Classic-1.91 +perl-SQL-Abstract-Pg-1.0.0 +perl-SQL-SplitStatement-1.00023 +perl-SQL-Translator-1.660.0 +perl-strictures-2.000006 +perl-String-Format-1.18 +perl-String-ShellQuote-1.04 +perl-Sub-Exporter-0.991.0 +perl-Sub-Exporter-Progressive-0.001013 +perl-Sub-Identify-0.14 +perl-Sub-Install-0.929 +perl-Sub-Name-0.280.0 +perl-Sub-Quote-2.006008 +perl-Sub-Uplevel-0.2800 +perl-SUPER-1.20190531 +perl-Syntax-Keyword-Try-0.300.0 +perl-TAP-Harness-JUnit-0.42 +perl-Task-Weaken-1.06 +perl-Test-CheckGitStatus-0.1.2 +perl-Test-Deep-1.205.0 +perl-Test-Differences-0.710.0 +perl-Test-Exception-0.430000 +perl-Test-Fatal-0.017 +perl-Test-LongString-0.17 +perl-Test-MockModule-0.178.0 +perl-Test-MockObject-1.20200122 +perl-Test-Most-0.38 +perl-Test-Output-1.034 +perl-Test-Pod-1.52 +perl-Test-Strict-0.52 +perl-Test-Warn-0.37 +perl-Test-Warnings-0.38.0 +perl-Text-Brew-0.02 +perl-Text-Diff-1.45 +perl-Text-Glob-0.110.0 +perl-TimeDate-2.33 +perl-Time-Duration-Parse-0.16 +perl-Time-modules-2013.0912 +perl-Time-Moment-0.44 +perl-Try-Tiny-0.31 +perl-UNIVERSAL-can-1.20140328 +perl-UNIVERSAL-isa-1.20171012 +perl-URI-5.310.0 +perl-URI-db-0.230.0 +perl-URI-Nested-0.10 +perl-Variable-Magic-0.640.0 +perl-WWW-RobotRules-6.02 +perl-XML-LibXML-2.0210 +perl-XML-NamespaceSupport-1.12 +perl-XML-Parser-2.470.0 +perl-XML-SAX-1.02 +perl-XML-SAX-Base-1.09 +perl-XML-SAX-Expat-0.51 +perl-XML-SemanticDiff-1.0007 +perl-XML-Simple-2.25 +perl-XML-Twig-3.530.0 +perl-XS-Parse-Keyword-0.480.0 +perl-XString-0.005 +perl-YAML-1.30 +perl-YAML-LibYAML-0.903.0 +perl-YAML-PP-0.38.0 +psmisc-23.7 +python313-argparse-manpage-4.6 +python313-pathspec-0.12.1 +python313-PyYAML-6.0.2 +python313-setuptools-78.1.1 +python313-yamllint-1.36.2 +ShellCheck-0.10.0 +shfmt-3.5.1 +sqlite3-3.50.4 +sshpass-1.10 ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.jidnWz/_old 2026-02-10 21:14:28.252712822 +0100 +++ /var/tmp/diff_new_pack.jidnWz/_new 2026-02-10 21:14:28.264713325 +0100 @@ -1,5 +1,5 @@ name: openQA -version: 5.1770308102.12dfd0e4 -mtime: 1770308102 -commit: 12dfd0e419cbde6e3773aa1f5e5c20d7dcd07ce7 +version: 5.1770718745.ce2072d3 +mtime: 1770718745 +commit: ce2072d33885ee19a7ec0d94bde7282722c02dc0
