Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openQA for openSUSE:Factory checked in at 2025-04-25 22:18:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openQA (Old) and /work/SRC/openSUSE:Factory/.openQA.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA" Fri Apr 25 22:18:49 2025 rev:688 rq:1272455 version:5.1745500773.055f94fe Changes: -------- --- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2025-04-20 20:04:52.361342710 +0200 +++ /work/SRC/openSUSE:Factory/.openQA.new.30101/openQA.changes 2025-04-25 22:19:37.232321200 +0200 @@ -1,0 +2,17 @@ +Thu Apr 24 14:14:39 UTC 2025 - ok...@suse.com + +- Update to version 5.1745500773.055f94fe: + * Make parameters of dump-db script customizable + * Add dump-db script to openQA-local-db package + * Add '--help' to dump-db script + * Improve dump-db script quality + * Give up gru jobs which point to non existing GruTask + * Bump ace-builds from 1.40.0 to 1.40.1 + * Move database dump script + * More verbose error message for job template update + * Bump eslint from 9.25.0 to 9.25.1 + * Fix URLs in admin/productlog + * Bump eslint from 9.24.0 to 9.25.0 + * Remove unhandled output generated by log over jobs resultset + +------------------------------------------------------------------- Old: ---- openQA-5.1744914226.24548346.obscpio New: ---- openQA-5.1745500773.055f94fe.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openQA-client-test.spec ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.104357848 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.104357848 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-client Name: %{short_name}-test -Version: 5.1744914226.24548346 +Version: 5.1745500773.055f94fe Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.132359025 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.136359193 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-devel Name: %{short_name}-test -Version: 5.1744914226.24548346 +Version: 5.1745500773.055f94fe Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA-test.spec ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.160360202 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.164360370 +0200 @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 5.1744914226.24548346 +Version: 5.1745500773.055f94fe Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later ++++++ openQA-worker-test.spec ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.188361379 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.188361379 +0200 @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 5.1744914226.24548346 +Version: 5.1745500773.055f94fe Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ openQA.spec ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.240363564 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.244363732 +0200 @@ -94,7 +94,7 @@ %define devel_requires %devel_no_selenium_requires chromedriver Name: openQA -Version: 5.1744914226.24548346 +Version: 5.1745500773.055f94fe Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later @@ -400,6 +400,7 @@ ln -s %{_datadir}/openqa/script/openqa-clone-custom-git-refspec %{buildroot}%{_bindir}/openqa-clone-custom-git-refspec ln -s %{_datadir}/openqa/script/openqa-validate-yaml %{buildroot}%{_bindir}/openqa-validate-yaml ln -s %{_datadir}/openqa/script/setup-db %{buildroot}%{_bindir}/openqa-setup-db +ln -s %{_datadir}/openqa/script/dump-db %{buildroot}%{_bindir}/openqa-dump-db %if %{with python_scripts} ln -s %{_datadir}/openqa/script/openqa-label-all %{buildroot}%{_bindir}/openqa-label-all %endif @@ -816,7 +817,9 @@ %{_unitdir}/openqa-scheduler.service.requires/postgresql.service %{_unitdir}/openqa-websockets.service.requires/postgresql.service %{_datadir}/openqa/script/setup-db +%{_datadir}/openqa/script/dump-db %{_bindir}/openqa-setup-db +%{_bindir}/openqa-dump-db %files single-instance ++++++ node_modules.obscpio ++++++ Binary files old/@eslint-core-0.12.0.tgz and new/@eslint-core-0.12.0.tgz differ Binary files old/@eslint-js-9.24.0.tgz and new/@eslint-js-9.24.0.tgz differ Binary files old/@eslint-js-9.25.1.tgz and new/@eslint-js-9.25.1.tgz differ Binary files old/ace-builds-1.40.0.tgz and new/ace-builds-1.40.0.tgz differ Binary files old/ace-builds-1.40.1.tgz and new/ace-builds-1.40.1.tgz differ Binary files old/eslint-9.24.0.tgz and new/eslint-9.24.0.tgz differ Binary files old/eslint-9.25.1.tgz and new/eslint-9.25.1.tgz differ ++++++ node_modules.spec.inc ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:38.836388613 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:38.840388781 +0200 @@ -2,148 +2,147 @@ 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.20.0.tgz#/@eslint-config-array-0.20.0.tgz Source1003: https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz#/@eslint-config-helpers-0.2.1.tgz -Source1004: https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz#/@eslint-core-0.12.0.tgz -Source1005: https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz#/@eslint-core-0.13.0.tgz -Source1006: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#/@eslint-eslintrc-3.3.1.tgz -Source1007: https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz#/@eslint-js-9.24.0.tgz -Source1008: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz#/@eslint-object-schema-2.1.6.tgz -Source1009: https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz#/@eslint-plugin-kit-0.2.8.tgz -Source1010: https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz#/@humanfs-core-0.19.1.tgz -Source1011: https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz#/@humanfs-node-0.16.6.tgz -Source1012: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#/@humanwhocodes-module-importer-1.0.1.tgz -Source1013: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz#/@humanwhocodes-retry-0.3.1.tgz -Source1014: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz#/@humanwhocodes-retry-0.4.2.tgz -Source1015: https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz#/@pkgr-core-0.2.4.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.7.tgz#/@types-estree-1.0.7.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.40.0.tgz#/ace-builds-1.40.0.tgz -Source1020: https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz#/acorn-8.14.1.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/balanced-match/-/balanced-match-1.0.2.tgz#/balanced-match-1.0.2.tgz -Source1027: https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.5.tgz#/bootstrap-5.3.5.tgz -Source1028: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#/brace-expansion-1.1.11.tgz -Source1029: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#/callsites-3.1.0.tgz -Source1030: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#/chalk-4.1.2.tgz -Source1031: https://registry.npmjs.org/chosen-js/-/chosen-js-1.8.7.tgz#/chosen-js-1.8.7.tgz -Source1032: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#/color-convert-2.0.1.tgz -Source1033: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#/color-name-1.1.4.tgz -Source1034: https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#/commander-7.2.0.tgz -Source1035: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#/concat-map-0.0.1.tgz -Source1036: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#/cross-spawn-7.0.6.tgz -Source1037: https://registry.npmjs.org/d3/-/d3-7.9.0.tgz#/d3-7.9.0.tgz -Source1038: https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#/d3-array-3.2.4.tgz -Source1039: https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#/d3-axis-3.0.0.tgz -Source1040: https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#/d3-brush-3.0.0.tgz -Source1041: https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#/d3-chord-3.0.1.tgz -Source1042: https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#/d3-color-3.1.0.tgz -Source1043: https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz#/d3-contour-4.0.2.tgz -Source1044: https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz#/d3-delaunay-6.0.4.tgz -Source1045: https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#/d3-dispatch-3.0.1.tgz -Source1046: https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#/d3-drag-3.0.0.tgz -Source1047: https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#/d3-dsv-3.0.1.tgz -Source1048: https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#/d3-ease-3.0.1.tgz -Source1049: https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#/d3-fetch-3.0.1.tgz -Source1050: https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#/d3-force-3.0.0.tgz -Source1051: https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#/d3-format-3.1.0.tgz -Source1052: https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#/d3-geo-3.1.1.tgz -Source1053: https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#/d3-hierarchy-3.1.2.tgz -Source1054: https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#/d3-interpolate-3.0.1.tgz -Source1055: https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#/d3-path-3.1.0.tgz -Source1056: https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#/d3-polygon-3.0.1.tgz -Source1057: https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#/d3-quadtree-3.0.1.tgz -Source1058: https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#/d3-random-3.0.1.tgz -Source1059: https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#/d3-scale-4.0.2.tgz -Source1060: https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#/d3-scale-chromatic-3.1.0.tgz -Source1061: https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#/d3-selection-3.0.0.tgz -Source1062: https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#/d3-shape-3.2.0.tgz -Source1063: https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#/d3-time-3.1.0.tgz -Source1064: https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#/d3-time-format-4.1.0.tgz -Source1065: https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#/d3-timer-3.0.1.tgz -Source1066: https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#/d3-transition-3.0.1.tgz -Source1067: https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#/d3-zoom-3.0.0.tgz -Source1068: https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#/dagre-0.8.5.tgz -Source1069: https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#/dagre-d3-0.6.4.tgz -Source1070: https://registry.npmjs.org/datatables.net/-/datatables.net-2.2.2.tgz#/datatables.net-2.2.2.tgz -Source1071: https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.2.2.tgz#/datatables.net-bs5-2.2.2.tgz -Source1072: https://registry.npmjs.org/debug/-/debug-4.4.0.tgz#/debug-4.4.0.tgz -Source1073: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#/deep-is-0.1.4.tgz -Source1074: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.0.1.tgz -Source1075: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#/escape-string-regexp-4.0.0.tgz -Source1076: https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz#/eslint-9.24.0.tgz -Source1077: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz#/eslint-config-prettier-10.1.2.tgz -Source1078: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz#/eslint-plugin-prettier-5.2.6.tgz -Source1079: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz#/eslint-scope-8.3.0.tgz -Source1080: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#/eslint-visitor-keys-3.4.3.tgz -Source1081: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#/eslint-visitor-keys-4.2.0.tgz -Source1082: https://registry.npmjs.org/espree/-/espree-10.3.0.tgz#/espree-10.3.0.tgz -Source1083: https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#/esquery-1.6.0.tgz -Source1084: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#/esrecurse-4.3.0.tgz -Source1085: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#/estraverse-5.3.0.tgz -Source1086: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#/esutils-2.0.3.tgz -Source1087: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#/fast-deep-equal-3.1.3.tgz -Source1088: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#/fast-diff-1.3.0.tgz -Source1089: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#/fast-json-stable-stringify-2.1.0.tgz -Source1090: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#/fast-levenshtein-2.0.6.tgz -Source1091: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#/file-entry-cache-8.0.0.tgz -Source1092: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#/find-up-5.0.0.tgz -Source1093: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#/flat-cache-4.0.1.tgz -Source1094: https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz#/flatted-3.3.3.tgz -Source1095: https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.2.0.tgz#/fork-awesome-1.2.0.tgz -Source1096: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#/glob-parent-6.0.2.tgz -Source1097: https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#/globals-14.0.0.tgz -Source1098: https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#/graphlib-2.1.8.tgz -Source1099: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#/has-flag-4.0.0.tgz -Source1100: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#/iconv-lite-0.6.3.tgz -Source1101: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#/ignore-5.3.2.tgz -Source1102: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz#/import-fresh-3.3.1.tgz -Source1103: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#/imurmurhash-0.1.4.tgz -Source1104: https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#/internmap-2.0.3.tgz -Source1105: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#/is-extglob-2.1.1.tgz -Source1106: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#/is-glob-4.0.3.tgz -Source1107: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#/isexe-2.0.0.tgz -Source1108: https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz#/jquery-3.7.1.tgz -Source1109: https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.3.tgz#/jquery-ujs-1.2.3.tgz -Source1110: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#/js-yaml-4.1.0.tgz -Source1111: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#/json-buffer-3.0.1.tgz -Source1112: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#/json-schema-traverse-0.4.1.tgz -Source1113: 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 -Source1114: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#/keyv-4.5.4.tgz -Source1115: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#/levn-0.4.1.tgz -Source1116: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#/locate-path-6.0.0.tgz -Source1117: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#/lodash-4.17.21.tgz -Source1118: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#/lodash.merge-4.6.2.tgz -Source1119: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#/minimatch-3.1.2.tgz -Source1120: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#/ms-2.1.3.tgz -Source1121: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#/natural-compare-1.4.0.tgz -Source1122: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#/optionator-0.9.4.tgz -Source1123: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#/p-limit-3.1.0.tgz -Source1124: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#/p-locate-5.0.0.tgz -Source1125: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#/parent-module-1.0.1.tgz -Source1126: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#/path-exists-4.0.0.tgz -Source1127: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#/path-key-3.1.1.tgz -Source1128: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#/prelude-ls-1.2.1.tgz -Source1129: https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz#/prettier-3.5.3.tgz -Source1130: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#/prettier-linter-helpers-1.0.0.tgz -Source1131: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#/punycode-2.3.1.tgz -Source1132: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#/resolve-from-4.0.0.tgz -Source1133: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz#/robust-predicates-3.0.2.tgz -Source1134: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#/rw-1.3.3.tgz -Source1135: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#/safer-buffer-2.1.2.tgz -Source1136: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#/shebang-command-2.0.0.tgz -Source1137: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#/shebang-regex-3.0.0.tgz -Source1138: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#/strip-json-comments-3.1.1.tgz -Source1139: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#/supports-color-7.2.0.tgz -Source1140: https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz#/synckit-0.11.4.tgz -Source1141: https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz#/timeago-1.6.7.tgz -Source1142: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#/tslib-2.8.1.tgz -Source1143: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#/type-check-0.4.0.tgz -Source1144: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#/uri-js-4.4.1.tgz -Source1145: https://registry.npmjs.org/which/-/which-2.0.2.tgz#/which-2.0.2.tgz -Source1146: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#/word-wrap-1.2.5.tgz -Source1147: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#/yocto-queue-0.1.0.tgz +Source1004: https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz#/@eslint-core-0.13.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.25.1.tgz#/@eslint-js-9.25.1.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.2.8.tgz#/@eslint-plugin-kit-0.2.8.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.6.tgz#/@humanfs-node-0.16.6.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.3.1.tgz#/@humanwhocodes-retry-0.3.1.tgz +Source1013: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz#/@humanwhocodes-retry-0.4.2.tgz +Source1014: https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz#/@pkgr-core-0.2.4.tgz +Source1015: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#/@popperjs-core-2.11.8.tgz +Source1016: https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz#/@types-estree-1.0.7.tgz +Source1017: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#/@types-json-schema-7.0.15.tgz +Source1018: https://registry.npmjs.org/ace-builds/-/ace-builds-1.40.1.tgz#/ace-builds-1.40.1.tgz +Source1019: https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz#/acorn-8.14.1.tgz +Source1020: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2.tgz +Source1021: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#/ajv-6.12.6.tgz +Source1022: https://registry.npmjs.org/anser/-/anser-2.3.2.tgz#/anser-2.3.2.tgz +Source1023: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#/ansi-styles-4.3.0.tgz +Source1024: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#/argparse-2.0.1.tgz +Source1025: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#/balanced-match-1.0.2.tgz +Source1026: https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.5.tgz#/bootstrap-5.3.5.tgz +Source1027: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#/brace-expansion-1.1.11.tgz +Source1028: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#/callsites-3.1.0.tgz +Source1029: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#/chalk-4.1.2.tgz +Source1030: https://registry.npmjs.org/chosen-js/-/chosen-js-1.8.7.tgz#/chosen-js-1.8.7.tgz +Source1031: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#/color-convert-2.0.1.tgz +Source1032: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#/color-name-1.1.4.tgz +Source1033: https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#/commander-7.2.0.tgz +Source1034: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#/concat-map-0.0.1.tgz +Source1035: https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#/cross-spawn-7.0.6.tgz +Source1036: https://registry.npmjs.org/d3/-/d3-7.9.0.tgz#/d3-7.9.0.tgz +Source1037: https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz#/d3-array-3.2.4.tgz +Source1038: https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz#/d3-axis-3.0.0.tgz +Source1039: https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz#/d3-brush-3.0.0.tgz +Source1040: https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz#/d3-chord-3.0.1.tgz +Source1041: https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz#/d3-color-3.1.0.tgz +Source1042: https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz#/d3-contour-4.0.2.tgz +Source1043: https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz#/d3-delaunay-6.0.4.tgz +Source1044: https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz#/d3-dispatch-3.0.1.tgz +Source1045: https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz#/d3-drag-3.0.0.tgz +Source1046: https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz#/d3-dsv-3.0.1.tgz +Source1047: https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz#/d3-ease-3.0.1.tgz +Source1048: https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz#/d3-fetch-3.0.1.tgz +Source1049: https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz#/d3-force-3.0.0.tgz +Source1050: https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz#/d3-format-3.1.0.tgz +Source1051: https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz#/d3-geo-3.1.1.tgz +Source1052: https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#/d3-hierarchy-3.1.2.tgz +Source1053: https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz#/d3-interpolate-3.0.1.tgz +Source1054: https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz#/d3-path-3.1.0.tgz +Source1055: https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz#/d3-polygon-3.0.1.tgz +Source1056: https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz#/d3-quadtree-3.0.1.tgz +Source1057: https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz#/d3-random-3.0.1.tgz +Source1058: https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz#/d3-scale-4.0.2.tgz +Source1059: https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#/d3-scale-chromatic-3.1.0.tgz +Source1060: https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz#/d3-selection-3.0.0.tgz +Source1061: https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz#/d3-shape-3.2.0.tgz +Source1062: https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz#/d3-time-3.1.0.tgz +Source1063: https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz#/d3-time-format-4.1.0.tgz +Source1064: https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz#/d3-timer-3.0.1.tgz +Source1065: https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz#/d3-transition-3.0.1.tgz +Source1066: https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz#/d3-zoom-3.0.0.tgz +Source1067: https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz#/dagre-0.8.5.tgz +Source1068: https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz#/dagre-d3-0.6.4.tgz +Source1069: https://registry.npmjs.org/datatables.net/-/datatables.net-2.2.2.tgz#/datatables.net-2.2.2.tgz +Source1070: https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.2.2.tgz#/datatables.net-bs5-2.2.2.tgz +Source1071: https://registry.npmjs.org/debug/-/debug-4.4.0.tgz#/debug-4.4.0.tgz +Source1072: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#/deep-is-0.1.4.tgz +Source1073: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.0.1.tgz +Source1074: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#/escape-string-regexp-4.0.0.tgz +Source1075: https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz#/eslint-9.25.1.tgz +Source1076: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz#/eslint-config-prettier-10.1.2.tgz +Source1077: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz#/eslint-plugin-prettier-5.2.6.tgz +Source1078: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz#/eslint-scope-8.3.0.tgz +Source1079: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#/eslint-visitor-keys-3.4.3.tgz +Source1080: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#/eslint-visitor-keys-4.2.0.tgz +Source1081: https://registry.npmjs.org/espree/-/espree-10.3.0.tgz#/espree-10.3.0.tgz +Source1082: https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz#/esquery-1.6.0.tgz +Source1083: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#/esrecurse-4.3.0.tgz +Source1084: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#/estraverse-5.3.0.tgz +Source1085: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#/esutils-2.0.3.tgz +Source1086: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#/fast-deep-equal-3.1.3.tgz +Source1087: https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz#/fast-diff-1.3.0.tgz +Source1088: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#/fast-json-stable-stringify-2.1.0.tgz +Source1089: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#/fast-levenshtein-2.0.6.tgz +Source1090: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz#/file-entry-cache-8.0.0.tgz +Source1091: https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#/find-up-5.0.0.tgz +Source1092: https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz#/flat-cache-4.0.1.tgz +Source1093: https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz#/flatted-3.3.3.tgz +Source1094: https://registry.npmjs.org/fork-awesome/-/fork-awesome-1.2.0.tgz#/fork-awesome-1.2.0.tgz +Source1095: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#/glob-parent-6.0.2.tgz +Source1096: https://registry.npmjs.org/globals/-/globals-14.0.0.tgz#/globals-14.0.0.tgz +Source1097: https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz#/graphlib-2.1.8.tgz +Source1098: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#/has-flag-4.0.0.tgz +Source1099: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#/iconv-lite-0.6.3.tgz +Source1100: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz#/ignore-5.3.2.tgz +Source1101: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz#/import-fresh-3.3.1.tgz +Source1102: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#/imurmurhash-0.1.4.tgz +Source1103: https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz#/internmap-2.0.3.tgz +Source1104: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#/is-extglob-2.1.1.tgz +Source1105: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#/is-glob-4.0.3.tgz +Source1106: https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#/isexe-2.0.0.tgz +Source1107: https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz#/jquery-3.7.1.tgz +Source1108: https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.3.tgz#/jquery-ujs-1.2.3.tgz +Source1109: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#/js-yaml-4.1.0.tgz +Source1110: https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#/json-buffer-3.0.1.tgz +Source1111: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#/json-schema-traverse-0.4.1.tgz +Source1112: 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 +Source1113: https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz#/keyv-4.5.4.tgz +Source1114: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#/levn-0.4.1.tgz +Source1115: https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#/locate-path-6.0.0.tgz +Source1116: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#/lodash-4.17.21.tgz +Source1117: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#/lodash.merge-4.6.2.tgz +Source1118: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#/minimatch-3.1.2.tgz +Source1119: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#/ms-2.1.3.tgz +Source1120: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#/natural-compare-1.4.0.tgz +Source1121: https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz#/optionator-0.9.4.tgz +Source1122: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#/p-limit-3.1.0.tgz +Source1123: https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#/p-locate-5.0.0.tgz +Source1124: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#/parent-module-1.0.1.tgz +Source1125: https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#/path-exists-4.0.0.tgz +Source1126: https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#/path-key-3.1.1.tgz +Source1127: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#/prelude-ls-1.2.1.tgz +Source1128: https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz#/prettier-3.5.3.tgz +Source1129: https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#/prettier-linter-helpers-1.0.0.tgz +Source1130: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#/punycode-2.3.1.tgz +Source1131: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#/resolve-from-4.0.0.tgz +Source1132: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz#/robust-predicates-3.0.2.tgz +Source1133: https://registry.npmjs.org/rw/-/rw-1.3.3.tgz#/rw-1.3.3.tgz +Source1134: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#/safer-buffer-2.1.2.tgz +Source1135: https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#/shebang-command-2.0.0.tgz +Source1136: https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#/shebang-regex-3.0.0.tgz +Source1137: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#/strip-json-comments-3.1.1.tgz +Source1138: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#/supports-color-7.2.0.tgz +Source1139: https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz#/synckit-0.11.4.tgz +Source1140: https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz#/timeago-1.6.7.tgz +Source1141: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz#/tslib-2.8.1.tgz +Source1142: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#/type-check-0.4.0.tgz +Source1143: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#/uri-js-4.4.1.tgz +Source1144: https://registry.npmjs.org/which/-/which-2.0.2.tgz#/which-2.0.2.tgz +Source1145: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz#/word-wrap-1.2.5.tgz +Source1146: https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#/yocto-queue-0.1.0.tgz ++++++ openQA-5.1744914226.24548346.obscpio -> openQA-5.1745500773.055f94fe.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/assets/javascripts/audit_log.js new/openQA-5.1745500773.055f94fe/assets/javascripts/audit_log.js --- old/openQA-5.1744914226.24548346/assets/javascripts/audit_log.js 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/assets/javascripts/audit_log.js 2025-04-24 15:19:33.000000000 +0200 @@ -312,48 +312,41 @@ { targets: 6, render: function (data, type, row) { - const rowData = dataForLink(this); - const settings = rowData.settings; - const version = settings.VERSION; - const build = settings.BUILD; - const distri = settings.DISTRI; - if (version !== undefined && build !== undefined && distri !== undefined) { - const link = urlWithBase( + return ( + "<a href='" + + urlWithBase( '/tests/overview?build=' + - encodeURIComponent(build) + + encodeURIComponent(row.build) + '&distri=' + - encodeURIComponent(distri) + + encodeURIComponent(row.distri) + '&version=' + - encodeURIComponent(version) + + encodeURIComponent(row.version) + '&flavor=' + encodeURIComponent(data) - ); - return `<a href='${link}'>${data}</a>`; - } else { - return data; - } + ) + + "'>" + + data + + '</a>' + ); } }, { targets: 8, render: function (data, type, row) { - const rowData = dataForLink(this); - const settings = rowData.settings; - const version = settings.VERSION; - const distri = settings.DISTRI; - if (version !== undefined && distri !== undefined) { - const link = urlWithBase( + return ( + "<a href='" + + urlWithBase( '/tests/overview?build=' + encodeURIComponent(data) + '&distri=' + - encodeURIComponent(distri) + + encodeURIComponent(row.distri) + '&version=' + - encodeURIComponent(version) - ); - return `<a href='${link}'>${data}</a>`; - } else { - return data; - } + encodeURIComponent(row.version) + ) + + "'>" + + data + + '</a>' + ); } }, { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/dist/rpm/openQA.spec new/openQA-5.1745500773.055f94fe/dist/rpm/openQA.spec --- old/openQA-5.1744914226.24548346/dist/rpm/openQA.spec 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/dist/rpm/openQA.spec 2025-04-24 15:19:33.000000000 +0200 @@ -401,6 +401,7 @@ ln -s %{_datadir}/openqa/script/openqa-clone-custom-git-refspec %{buildroot}%{_bindir}/openqa-clone-custom-git-refspec ln -s %{_datadir}/openqa/script/openqa-validate-yaml %{buildroot}%{_bindir}/openqa-validate-yaml ln -s %{_datadir}/openqa/script/setup-db %{buildroot}%{_bindir}/openqa-setup-db +ln -s %{_datadir}/openqa/script/dump-db %{buildroot}%{_bindir}/openqa-dump-db %if %{with python_scripts} ln -s %{_datadir}/openqa/script/openqa-label-all %{buildroot}%{_bindir}/openqa-label-all %endif @@ -817,7 +818,9 @@ %{_unitdir}/openqa-scheduler.service.requires/postgresql.service %{_unitdir}/openqa-websockets.service.requires/postgresql.service %{_datadir}/openqa/script/setup-db +%{_datadir}/openqa/script/dump-db %{_bindir}/openqa-setup-db +%{_bindir}/openqa-dump-db %files single-instance diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/etc/openqa/openqa.ini new/openQA-5.1745500773.055f94fe/etc/openqa/openqa.ini --- old/openQA-5.1744914226.24548346/etc/openqa/openqa.ini 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/etc/openqa/openqa.ini 2025-04-24 15:19:33.000000000 +0200 @@ -292,6 +292,8 @@ #max_online_workers = 1000 ## Retry delay for limited workers in seconds #worker_limit_retry_delay = 900 +## Maximum number of retries with exponential back-off for GruJobs to wait for a GruTask to appear in the database +#wait_for_grutask_retries = 6 [archiving] ## Moves logs of jobs which are preserved during the cleanup because they are considered important diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/lib/OpenQA/Schema/ResultSet/JobTemplates.pm new/openQA-5.1745500773.055f94fe/lib/OpenQA/Schema/ResultSet/JobTemplates.pm --- old/openQA-5.1744914226.24548346/lib/OpenQA/Schema/ResultSet/JobTemplates.pm 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/lib/OpenQA/Schema/ResultSet/JobTemplates.pm 2025-04-24 15:19:33.000000000 +0200 @@ -32,7 +32,12 @@ flavor => $args->{product_spec}->{flavor}, version => $args->{product_spec}->{version}, }); - return {error => "Product '$args->{product_name}' is invalid"} unless $product; + return { + error => sprintf( + "Product '%s' not found in database (arch: '%s', distri: '%s', flavor: '%s', version: '%s')", + $args->{product_name}, $args->{arch}, $args->{product_spec}->{distri}, + $args->{product_spec}->{flavor}, $args->{product_spec}->{version})} + unless $product; my $test_suite; if (defined $args->{testsuite_name}) { $test_suite = $test_suites->find({name => $args->{testsuite_name}}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/lib/OpenQA/Setup.pm new/openQA-5.1745500773.055f94fe/lib/OpenQA/Setup.pm --- old/openQA-5.1744914226.24548346/lib/OpenQA/Setup.pm 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/lib/OpenQA/Setup.pm 2025-04-24 15:19:33.000000000 +0200 @@ -225,6 +225,7 @@ assets_default_limit => 100000, assets_max_limit => 200000, max_online_workers => 1000, + wait_for_grutask_retries => 6, # exponential, ~4 minutes worker_limit_retry_delay => ONE_HOUR / 4, }, archiving => { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/lib/OpenQA/Shared/GruJob.pm new/openQA-5.1745500773.055f94fe/lib/OpenQA/Shared/GruJob.pm --- old/openQA-5.1744914226.24548346/lib/OpenQA/Shared/GruJob.pm 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/lib/OpenQA/Shared/GruJob.pm 2025-04-24 15:19:33.000000000 +0200 @@ -5,6 +5,7 @@ use Mojo::Base 'Minion::Job', -signatures; use Mojo::Util qw(dumper); +use OpenQA::Log qw(log_debug); sub _grutasks ($self) { $self->minion->app->schema->resultset('GruTasks'); } @@ -14,7 +15,17 @@ # We have a gru_id and this is the first run of the job my $gru = $self->_grutasks->find($gru_id); # GruTask might not yet have landed in database due to open transaction - return $self->retry({delay => 2}) unless $gru; + unless ($gru) { + my $max_retries = $self->app->config->{misc_limits}->{wait_for_grutask_retries}; + my $retried = $self->info->{retries}; + my $delay = 2**(1 + $retried); + my $msg = "Could not find GruTask '$gru_id' after $retried retries"; + if ($retried > $max_retries) { + return $self->note(stop_reason => "$msg, giving up"); + } + log_debug("$msg, delaying ${delay}s"); + return $self->retry({delay => $delay}); + } } my $err = $self->SUPER::execute; return $err unless $gru_id; # Non-Gru tasks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/package-lock.json new/openQA-5.1745500773.055f94fe/package-lock.json --- old/openQA-5.1744914226.24548346/package-lock.json 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/package-lock.json 2025-04-24 15:19:33.000000000 +0200 @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "GPL-2.0", "dependencies": { - "ace-builds": "^1.40.0", + "ace-builds": "^1.40.1", "anser": "^2.3.2", "bootstrap": "^5.3.5", "chosen-js": "^1.8.7", @@ -22,7 +22,7 @@ "timeago": "^1.6.7" }, "devDependencies": { - "eslint": "^9.24.0", + "eslint": "^9.25.1", "eslint-config-prettier": "^10.1.2", "eslint-plugin-prettier": "^5.2.6", "prettier": "3.5.3" @@ -82,9 +82,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -119,9 +119,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", - "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", "dev": true, "license": "MIT", "engines": { @@ -152,19 +152,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -250,9 +237,9 @@ "dev": true }, "node_modules/ace-builds": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.40.0.tgz", - "integrity": "sha512-wOCyJfNRsq/yLTR7z2KpwcjaInuUs/mosu/OFLGGUA+g+ApD9OJ1AToHDIp0Xpa2koHJ79bmOya73oWjCNbjlA==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.40.1.tgz", + "integrity": "sha512-32uwJNwmhqpnYtr6oq8RoO1D6F6tnxisv5f9w2XPX3vi4QruuHNikadHUiHvnxLAV1n5Azv4LFtpItQ5dD1eRw==", "license": "BSD-3-Clause" }, "node_modules/acorn": { @@ -911,20 +898,20 @@ } }, "node_modules/eslint": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", - "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.24.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/package.json new/openQA-5.1745500773.055f94fe/package.json --- old/openQA-5.1744914226.24548346/package.json 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/package.json 2025-04-24 15:19:33.000000000 +0200 @@ -12,13 +12,13 @@ }, "homepage": "https://github.com/os-autoinst/openQA#readme", "devDependencies": { - "eslint": "^9.24.0", + "eslint": "^9.25.1", "eslint-config-prettier": "^10.1.2", "eslint-plugin-prettier": "^5.2.6", "prettier": "3.5.3" }, "dependencies": { - "ace-builds": "^1.40.0", + "ace-builds": "^1.40.1", "anser": "^2.3.2", "bootstrap": "^5.3.5", "chosen-js": "^1.8.7", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/script/dump-db new/openQA-5.1745500773.055f94fe/script/dump-db --- old/openQA-5.1744914226.24548346/script/dump-db 1970-01-01 01:00:00.000000000 +0100 +++ new/openQA-5.1745500773.055f94fe/script/dump-db 2025-04-24 15:19:33.000000000 +0200 @@ -0,0 +1,8 @@ +#!/bin/bash +set -euo pipefail +DUMP_FOLDER=${DUMP_FOLDER:-"/var/lib/openqa/SQL-DUMPS"} +DAYS_TO_KEEP=${DAYS_TO_KEEP:-"7"} +[[ $1 = '-h' ]] || [[ $1 = '--help' ]] && echo "Dump the openQA postgresql database to ${DUMP_FOLDER} and clean-up backups older than ${DAYS_TO_KEEP} days." && exit + +pg_dump -Fc -c openqa -f "${DUMP_FOLDER}/$(date -Idate).dump" +find "${DUMP_FOLDER}" -mtime "+${DAYS_TO_KEEP}" -print0 -delete diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/t/14-grutasks.t new/openQA-5.1745500773.055f94fe/t/14-grutasks.t --- old/openQA-5.1744914226.24548346/t/14-grutasks.t 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/t/14-grutasks.t 2025-04-24 15:19:33.000000000 +0200 @@ -601,15 +601,36 @@ }; subtest 'waiting gru job' => sub { + $t->app->config->{misc_limits}->{wait_for_grutask_retries} = 4; my $enq = $app->gru->enqueue(wait_for_grutask => {}); + my $id = $enq->{minion_id}; # Simulate that the gru task is not yet visible for the minion server $schema->resultset('GruTasks')->find($enq->{gru_id})->delete; my $worker = $app->minion->worker->register; - my $job = $worker->dequeue(0, {id => $enq->{minion_id}}); - $job->execute; + perform_minion_jobs($t->app->minion); + my $job = $t->app->minion->job($id); is $job->info->{retries}, 1, 'job retried because there is no GruTasks entry'; is $job->info->{state}, 'inactive', 'state inactive because there is no GruTasks entry'; is $job->info->{finished}, undef, 'finished is not defined'; + + subtest 'Giving up on missing GruTask' => sub { + # Calling retry() with delay 0 explicitly again to run the next job immediately + $t->app->minion->job($id)->retry({delay => 0}); # retries=2 + combined_like { perform_minion_jobs($t->app->minion) } qr{Could not find GruTask.*after 2 retries, delaying 8s}; + is $job->info->{retries}, 3, 'job retried because there is no GruTasks entry'; + + $t->app->minion->job($id)->retry({delay => 0}); # retries=4 + combined_like { perform_minion_jobs($t->app->minion) } + qr{Could not find GruTask.*after 4 retries, delaying 32s}; + is $job->info->{retries}, 5, 'job retried because there is no GruTasks entry'; + + $t->app->minion->job($id)->retry({delay => 0}); # retries=6 + perform_minion_jobs($t->app->minion); + is $job->info->{state}, 'failed', 'Job finally failed'; + like $job->info->{notes}->{stop_reason}, qr{Could not find GruTask '\d+' after 6 retries.*}, + 'Message is logged as job result'; + is $job->info->{retries}, 6, 'job retried because there is no GruTasks entry'; + }; }; # prevent writing to a log file to enable use of combined_like in the following tests @@ -801,7 +822,7 @@ subtest 'successful run triggered via $job->done' => sub { my $a_txt = path($job->result_dir, 'a-0.txt')->spew('Foo'); my $b_txt = path('t/data/14-module-b.txt')->copy_to($job->result_dir . '/b-0.txt'); - $job->done; + combined_like { $job->done; } qr/_carry_over_candidate/, 'no unexpected log output from resultset'; $_->discard_changes for ($job, $child_job); is($job->result, FAILED, 'job result is failed'); is($child_job->state, CANCELLED, 'child job cancelled'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/t/api/08-jobtemplates.t new/openQA-5.1745500773.055f94fe/t/api/08-jobtemplates.t --- old/openQA-5.1744914226.24548346/t/api/08-jobtemplates.t 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/t/api/08-jobtemplates.t 2025-04-24 15:19:33.000000000 +0200 @@ -1074,7 +1074,9 @@ id => $job_group_id3, job_group_id => $job_group_id3, error_status => 400, - error => ["Product 'opensuse-13.1-DVD-i586' is invalid"], + error => [ +"Product 'opensuse-13.1-DVD-i586' not found in database (arch: 'i586', distri: 'geeko', flavor: 'DVD', version: '13.1')" + ], }, 'Invalid product' ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openQA-5.1744914226.24548346/t/config.t new/openQA-5.1745500773.055f94fe/t/config.t --- old/openQA-5.1744914226.24548346/t/config.t 2025-04-17 20:23:46.000000000 +0200 +++ new/openQA-5.1745500773.055f94fe/t/config.t 2025-04-24 15:19:33.000000000 +0200 @@ -180,6 +180,7 @@ assets_default_limit => 100000, assets_max_limit => 200000, max_online_workers => 1000, + wait_for_grutask_retries => 6, worker_limit_retry_delay => ONE_HOUR / 4, }, archiving => { ++++++ openQA.obsinfo ++++++ --- /var/tmp/diff_new_pack.brGFcC/_old 2025-04-25 22:19:55.309080896 +0200 +++ /var/tmp/diff_new_pack.brGFcC/_new 2025-04-25 22:19:55.333081904 +0200 @@ -1,5 +1,5 @@ name: openQA -version: 5.1744914226.24548346 -mtime: 1744914226 -commit: 245483462547b9e7772bf597bd7ddd70c89f83ea +version: 5.1745500773.055f94fe +mtime: 1745500773 +commit: 055f94fee5dbce696c292af7344c2343d96a3852