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-06-02 16:02:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
 and      /work/SRC/openSUSE:Factory/.openQA.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openQA"

Tue Jun  2 16:02:38 2026 rev:849 rq:1356438 version:5.1780322162.c1836389

Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes    2026-05-27 
16:16:06.838833469 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.1937/openQA.changes  2026-06-02 
16:03:50.049722615 +0200
@@ -1,0 +2,17 @@
+Mon Jun 01 13:56:13 UTC 2026 - [email protected]
+
+- Update to version 5.1780322162.c1836389:
+  * refactor: Use more readable regex in `process-docs`
+  * refactor: Turn `process-docs` into proper style-checked Perl script
+  * feat: Add Makefile target to tidy Shell code
+  * docs: Fix links in documentation generated via `generate-docs`
+  * fix(openqa-clone-job): Allow empty API key/secret for auth.method=None
+  * fix(spec): Supplement bash-completion subpackage against bash-completion
+  * docs: Fix broken list under "Further systemd …" and wrap consistently
+  * docs: Fix example config for `git_auto_commit`
+  * docs: Wrap lines consistently under "Terms and variables …"
+  * docs: Fix wrapping in "Triggering tests …" section and below
+  * docs: Remove Git conflict markers that were missed by b51c609679
+  * feat: watch worker auto-restart systemd drop-ins for reloads
+
+-------------------------------------------------------------------

Old:
----
  openQA-5.1779808735.8c9bd805.obscpio

New:
----
  openQA-5.1780322162.c1836389.obscpio

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

Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:03:51.261772877 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:03:51.265773043 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-client
 Name:           %{short_name}-test
-Version:        5.1779808735.8c9bd805
+Version:        5.1780322162.c1836389
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:03:51.297774370 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:03:51.301774536 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-devel
 Name:           %{short_name}-test
-Version:        5.1779808735.8c9bd805
+Version:        5.1780322162.c1836389
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:03:51.337776029 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:03:51.341776195 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA
 Name:           %{short_name}-test
-Version:        5.1779808735.8c9bd805
+Version:        5.1780322162.c1836389
 Release:        0
 Summary:        Test package for openQA
 License:        GPL-2.0-or-later

++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:03:51.377777688 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:03:51.377777688 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-worker
 Name:           %{short_name}-test
-Version:        5.1779808735.8c9bd805
+Version:        5.1780322162.c1836389
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:03:51.425779678 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:03:51.425779678 +0200
@@ -104,7 +104,7 @@
 %define devel_requires %devel_no_selenium_requires chromedriver
 
 Name:           openQA
-Version:        5.1779808735.8c9bd805
+Version:        5.1780322162.c1836389
 Release:        0
 Summary:        Framework for automated system-level testing (web-frontend, 
scheduler and tools)
 Group:          Development/Tools/Other
@@ -347,7 +347,7 @@
 Summary:        Bash Completion for %{name}
 Group:          Development/Tools/Other
 Requires:       bash-completion
-Supplements:    (%{name}-client and bash)
+Supplements:    (%{name}-client and bash-completion)
 
 %description client-bash-completion
 The official bash completion script for openqa-cli.

++++++ openQA-5.1779808735.8c9bd805.obscpio -> 
openQA-5.1780322162.c1836389.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/Makefile 
new/openQA-5.1780322162.c1836389/Makefile
--- old/openQA-5.1779808735.8c9bd805/Makefile   2026-05-26 17:18:55.000000000 
+0200
+++ new/openQA-5.1780322162.c1836389/Makefile   2026-06-01 15:56:02.000000000 
+0200
@@ -470,8 +470,13 @@
        @command -v ruff >/dev/null 2>&1 || echo "Command 'ruff' not found, can 
not format python code"
        @if [ -n "$(pyfiles)" ]; then ruff format $(pyfiles); fi
 
+.PHONY: tidy-sh
+tidy-sh: ## Format shell scripts with shfmt
+       @command -v shfmt >/dev/null 2>&1 || echo "Command 'shfmt' not found, 
can not format shell code"
+       shfmt --write -i 4 -bn -ci -sr $(shellfiles)
+
 .PHONY: tidy
-tidy: tidy-js tidy-perl tidy-python ## Format JavaScript, Perl and Python code
+tidy: tidy-js tidy-perl tidy-python tidy-sh ## Format JavaScript, Perl, Python 
and Shell code
 
 .PHONY: test-containers-compose
 test-containers-compose: ## Run docker-compose tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/dist/rpm/openQA.spec 
new/openQA-5.1780322162.c1836389/dist/rpm/openQA.spec
--- old/openQA-5.1779808735.8c9bd805/dist/rpm/openQA.spec       2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/dist/rpm/openQA.spec       2026-06-01 
15:56:02.000000000 +0200
@@ -348,7 +348,7 @@
 Summary:        Bash Completion for %{name}
 Group:          Development/Tools/Other
 Requires:       bash-completion
-Supplements:    (%{name}-client and bash)
+Supplements:    (%{name}-client and bash-completion)
 
 %description client-bash-completion
 The official bash completion script for openqa-cli.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/docs/Installing.md 
new/openQA-5.1780322162.c1836389/docs/Installing.md
--- old/openQA-5.1779808735.8c9bd805/docs/Installing.md 2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/docs/Installing.md 2026-06-01 
15:56:02.000000000 +0200
@@ -878,7 +878,7 @@
 
 ``` ini
 [scm git]
-git_auto_commit = yes|no|''
+git_auto_commit = yes|no
 git_auto_clone = yes|no
 git_auto_update = yes|no
 checkout_needles_sha = yes|no
@@ -1074,29 +1074,28 @@
 The following information is partially openSUSE specific. The `openQA-worker`
 package provides further systemd units:
 
-- `[email protected]`: standard worker service, this is the default 
and `[email protected]` is just a symlink to this service
+- `[email protected]`: standard worker service, this is the default
+  and `[email protected]` is just a symlink to this service
 - `[email protected]`: see
   [enabling snapshots](WritingTests.md#snapshots-for-each-module)
-
 - `[email protected]`: worker that restarts automatically
   after processing assigned jobs
-
 - `openqa-worker-cacheservice`/`openqa-worker-cacheservice-minion`: services
   for [the asset cache](Installing.md#asset-caching)
-
 - `openqa-worker.target`
-
   - Starts `[email protected]` (but no other worker units) when started.
-
     - The number of started worker slots depends on the pool directories 
present
-      under `/var/lib/openqa/pool`. This information is determined via a 
systemd generator and can be refreshed via `systemctl daemon-reload`. - Stops 
`[email protected]` and other units conflicting with  
`[email protected]` when started.
-
+      under `/var/lib/openqa/pool`. This information is determined via a 
systemd
+      generator and can be refreshed via `systemctl daemon-reload`.
+    - Stops `[email protected]` and other units conflicting 
with
+      `[email protected]` when started.
   - Stops/restarts **all** worker units when stopped/restarted.
-
-  - Is restarted automatically when the `openQA-worker` package is updated 
(unless `DISABLE_RESTART_ON_UPDATE="yes"` is set in `/etc/sysconfig/services`).
-- `[email protected]`: allows to restart the worker 
service
-  automatically on configuration changes without interrupting jobs (see next
-  section for details)
+  - Is restarted automatically when the `openQA-worker` package is updated
+    (unless `DISABLE_RESTART_ON_UPDATE="yes"` is set in
+    `/etc/sysconfig/services`).
+- `[email protected]`: allows to restart the worker
+  service automatically on configuration changes without interrupting jobs (see
+  next section for details)
 
 #### Stopping/restarting workers without interrupting currently running jobs
 
@@ -1892,8 +1891,7 @@
     `git_auto_clone` enabled, openQA will create a checkout of the repository
     under the mentioned default location if it does not already exist
 
-<<<<<<< HEAD
-### Further notes
+#### Further notes
 - The mentioned `git_auto_clone` setting is part of the general
   [Git support](Installing.md#setting-up-git-support) and works best if used
   consistently. If e.g. only specifying a Git URL for `CASEDIR` but not for
@@ -1904,18 +1902,14 @@
     with e.g. `CASEDIR=https://github.com/…/…-distri-opensuse.git` and
     `DISTRI=microos` but no `NEEDLES_DIR`, needles will be missing despite 
being
     present for `DISTRI=opensuse`.
-||||||| parent of 642ae58d5 (docs: show document levels in generated TOC)
-### Further notes
-=======
-#### Further notes
->>>>>>> 642ae58d5 (docs: show document levels in generated TOC)
 
-- Setting the test variables has only an influence on os-autoinst. The web UI 
on the other hand always relies
-  on the directory structure described above. For the exact details how these 
paths are computed by the web UI
-  have a look at `lib/OpenQA/Utils.pm`.
+- Setting the test variables has only an influence on os-autoinst. The web UI 
on
+  the other hand always relies on the directory structure described above. For
+  the exact details how these paths are computed by the web UI have a look at
+  `lib/OpenQA/Utils.pm`.
 
-- When enabling the worker cache, parts of the usual "share directory" are 
located in the specified cache
-  directory on the worker host.
+- When enabling the worker cache, parts of the usual "share directory" are
+  located in the specified cache directory on the worker host.
 
 ## Automatic installation of the operating systems for openQA machines
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/docs/WritingTests.md 
new/openQA-5.1780322162.c1836389/docs/WritingTests.md
--- old/openQA-5.1779808735.8c9bd805/docs/WritingTests.md       2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/docs/WritingTests.md       2026-06-01 
15:56:02.000000000 +0200
@@ -2178,10 +2178,15 @@
 > - If only one of `CASEDIR` or `NEEDLES_DIR` is customized the other variable
 >   will still be initialized to point to the default repository.
 > - A relative `NEEDLES_DIR` is treated to be relative to the default `CASEDIR`
->   (even if `CASEDIR` is customized). To have it treated to be relative to 
the > custom `CASEDIR`, prefix the relative path with `%CASEDIR%/`. So 
specifying > e.g. `CASEDIR=https://github.com/…` and 
`NEEDLES_DIR=%%CASEDIR%%/the-needles`
->   will lead to `%CASEDIR%` being substituted with the path of the Git 
checkout > created for the custom `CASEDIR`. That results in needles found in
+>   (even if `CASEDIR` is customized). To have it treated to be relative to the
+>   custom `CASEDIR`, prefix the relative path with `%CASEDIR%/`. So specifying
+>   e.g. `CASEDIR=https://github.com/…` and 
`NEEDLES_DIR=%%CASEDIR%%/the-needles`
+>   will lead to `%CASEDIR%` being substituted with the path of the Git 
checkout
+>   created for the custom `CASEDIR`. That results in needles found in
 >   <https://github.com/…/tree/…/the-needles> to be used. Note that double
->   `%`-signs are to avoid variable substitution. When using `curl`, you need 
to > escape the `%`-sign as `%25` **in addition**. A helper script 
`openqa-clone-custom-git-refspec` is available for
+>   `%`-signs are to avoid variable substitution. When using `curl`, you need 
to
+>   escape the `%`-sign as `%25` **in addition**.
+>   A helper script `openqa-clone-custom-git-refspec` is available for
 >   convenience that supports some combinations.
 
 To clone one job within a remote instance based on an open github pull request
@@ -2193,12 +2198,15 @@
 
     openqa-clone-custom-git-refspec 
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/6649 
https://openqa.opensuse.org/tests/839191
 
-As noted above, customizing `CASEDIR` does **not** mean needles will be loaded 
from there, even if the repository specified as `CASEDIR` contains needles. To 
load needles from that repository, it needs to be specified as `NEEDLES_DIR` as
+As noted above, customizing `CASEDIR` does **not** mean needles will be loaded
+from there, even if the repository specified as `CASEDIR` contains needles. To
+load needles from that repository, it needs to be specified as `NEEDLES_DIR` as
 described in the note above.
 
 Keep in mind that if `PRODUCTDIR` is overwritten as well, it might not relate 
to
 the state of the specified git refspec that is passed via the command line
-parameter to `openqa-clone-custom-git-refspec` or via the `PRODUCTDIR` 
variable to `openqa-clone-job`. Both can still be used when overwriting 
`PRODUCTDIR`, but
+parameter to `openqa-clone-custom-git-refspec` or via the `PRODUCTDIR` variable
+to `openqa-clone-job`. Both can still be used when overwriting `PRODUCTDIR`, 
but
 special care must be taken if the schedule is modified (then it is safer to
 manually specify the schedule via the `SCHEDULE` variable).
 
@@ -2238,7 +2246,9 @@
 > These examples show how API credentials are supplied. It is important to
 > note that using `on:pull_request` would only work for PRs created on the main
 > repository but not for PRs created from forks. Therefore
-> `on:pull_request_target` is used instead. To still run the tests on the PR > 
version the variables under `github.event.pull_request.head.*` are utilized > 
(instead of e.g. just `$GITHUB_REF`).
+> `on:pull_request_target` is used instead. To still run the tests on the PR
+> version the variables under `github.event.pull_request.head.*` are utilized
+> (instead of e.g. just `$GITHUB_REF`).
 
 > **NOTE:**
 > Due to the use of `on:pull_request_target` the scenario definitions are
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1779808735.8c9bd805/lib/OpenQA/Script/CloneJob.pm 
new/openQA-5.1780322162.c1836389/lib/OpenQA/Script/CloneJob.pm
--- old/openQA-5.1779808735.8c9bd805/lib/OpenQA/Script/CloneJob.pm      
2026-05-26 17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/lib/OpenQA/Script/CloneJob.pm      
2026-06-01 15:56:02.000000000 +0200
@@ -270,8 +270,6 @@
         options => $options
     );
     my $local = $command->client($local_url)->max_redirects(3);
-    die "API key/secret for '$options->{host}' missing. Check out '$0 --help' 
for the config file syntax/lookup.\n"
-      if !$options->{'export-command'} && !($local->apikey && 
$local->apisecret);
 
     # configure the default for the number of retries and use exponential 
backoff by default
     $options->{retry} //= 5;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1779808735.8c9bd805/systemd/[email protected]
 
new/openQA-5.1780322162.c1836389/systemd/[email protected]
--- 
old/openQA-5.1779808735.8c9bd805/systemd/[email protected]
    2026-05-26 17:18:55.000000000 +0200
+++ 
new/openQA-5.1780322162.c1836389/systemd/[email protected]
    2026-06-01 15:56:02.000000000 +0200
@@ -9,6 +9,7 @@
 PathChanged=/etc/openqa/workers.ini.d
 PathChanged=/etc/openqa/client.conf
 PathChanged=/etc/openqa/client.conf.d
+PathChanged=/etc/systemd/system/[email protected]
 
 [Install]
 WantedBy=multi-user.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/t/35-script_clone_job.t 
new/openQA-5.1780322162.c1836389/t/35-script_clone_job.t
--- old/openQA-5.1779808735.8c9bd805/t/35-script_clone_job.t    2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/t/35-script_clone_job.t    2026-06-01 
15:56:02.000000000 +0200
@@ -399,11 +399,7 @@
 
     my %options
       = (host => 'foo', from => 'bar', 'clone-children' => 1, 'skip-download' 
=> 1, verbose => 1, args => ['FOO=bar']);
-    throws_ok { clone_jobs(42, \%options) } qr|API key/secret for 'foo' 
missing|, 'dies on missing API credentials';
 
-    $options{apikey} = $options{apisecret} = 'bar';
-    combined_like { clone_jobs(42, \%options) } qr|parent.*main.*child|s, 
'verbose output printed';
-    ok $tx_handled, 'transaction handled';
 
     my $check_common_post_args = sub ($test_suffix = '') {
         is scalar @post_args, 1, 'exactly one post call made' or return undef;
@@ -415,7 +411,24 @@
         is delete $params->{'group_id:42'}, 21, 'group of 42 preserved';
         return $params;
     };
+    subtest 'post args with no API key' => sub {
+        @post_args = ();
+        $options{apikey} = $options{apisecret} = 'bar';
+        combined_like { clone_jobs(42, \%options) } qr|parent.*main.*child|s, 
'clone without API key';
+        ok $tx_handled, 'transaction handled';
+        my $params = $check_common_post_args->() or return;
+        is delete $params->{'FOO:42'}, 'bar', 'setting passed to main job';
+        is delete $params->{'TEST:43'}, 'child', 'child job 43 cloned';
+        is delete $params->{'FOO:43'}, 'bar', 'setting passed to child job';
+        is delete $params->{'_START_AFTER:43'}, '42', 'child job cloned to 
start after main job 42';
+        is delete $params->{"CLONED_FROM:$_"}, "https://bar/tests/$_";, 
"CLONED_FROM set ($_)" for 41, 42, 43;
+        is scalar keys %$params, 0, 'exactly 3 jobs posted, so no further 
settings';
+    } or always_explain \@post_args;
     subtest 'post args' => sub {
+        @post_args = ();
+        $options{apikey} = $options{apisecret} = 'bar';
+        combined_like { clone_jobs(42, \%options) } qr|parent.*main.*child|s, 
'verbose output printed - with API key';
+        ok $tx_handled, 'transaction handled';
         my $params = $check_common_post_args->() or return;
         is delete $params->{'FOO:42'}, 'bar', 'setting passed to main job';
         is delete $params->{'TEST:43'}, 'child', 'child job 43 cloned';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/t/40-openqa-clone-job.t 
new/openQA-5.1780322162.c1836389/t/40-openqa-clone-job.t
--- old/openQA-5.1779808735.8c9bd805/t/40-openqa-clone-job.t    2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/t/40-openqa-clone-job.t    2026-06-01 
15:56:02.000000000 +0200
@@ -35,9 +35,6 @@
     like warning {
         throws_ok { main::main() } qr/missing job reference/, 'hit for 
mandatory parameter';
     }, qr{Unknown option: invalid-arg}, 'expected warning';
-
-    @ARGV = 'http://openqa.local.foo/t1';
-    throws_ok { main::main() } qr|API key/secret for 'localhost' missing|, 
'fails without API key/secret';
 };
 
 subtest errors => sub {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/tools/generate-docs 
new/openQA-5.1780322162.c1836389/tools/generate-docs
--- old/openQA-5.1779808735.8c9bd805/tools/generate-docs        2026-05-26 
17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/tools/generate-docs        2026-06-01 
15:56:02.000000000 +0200
@@ -25,10 +25,9 @@
     syntax_highlight_opt="--syntax-highlighting=pygments"
 fi
 
-perl -ne 'if (/^include::([^\]]+)\[\]/) { open my $f, "<", $1 or die $!; print 
while <$f>; close $f } else { print }' index.md \
-    | pandoc -s -f gfm -o build/index.html \
-        --template=template.html \
-        -c style.css \
-        $syntax_highlight_opt \
-        --metadata title="openQA Documentation" \
-        --toc --number-sections
+../tools/process-docs | pandoc -s -f gfm -o build/index.html \
+    --template=template.html \
+    -c style.css \
+    $syntax_highlight_opt \
+    --metadata title="openQA Documentation" \
+    --toc --number-sections
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1779808735.8c9bd805/tools/generate-documentation 
new/openQA-5.1780322162.c1836389/tools/generate-documentation
--- old/openQA-5.1779808735.8c9bd805/tools/generate-documentation       
2026-05-26 17:18:55.000000000 +0200
+++ new/openQA-5.1780322162.c1836389/tools/generate-documentation       
2026-06-01 15:56:02.000000000 +0200
@@ -230,11 +230,10 @@
     fi
 
     [[ ${formats[pdf]} ]] \
-        && perl -e 'sub p{my $f=shift;open my $h,"<",$f or die 
$!;while(<$h>){if(/^include::([^\]]+)\[\]/){p($1)}else{s/\[([^\]]+)\]\([\w-]+\.md(#[\w-]+)\)/[$1]($2)/g;s/\[([^\]]+)\]\(([\w-]+)\.md\)/"[$1](#".lc($2).")"/ge;print}}}p("index.md")'
 \
-        | pandoc -s -f gfm -o 
"${tmpwd}"/output/openqa-documentation-"${verbose_doc_name}".pdf 
--pdf-engine=weasyprint --number-sections
+        && ../tools/process-docs | pandoc -s -f gfm -o 
"${tmpwd}"/output/openqa-documentation-"${verbose_doc_name}".pdf \
+            --pdf-engine=weasyprint --number-sections
     [[ ${formats[html]} ]] \
-        && perl -e 'sub p{my $f=shift;open my $h,"<",$f or die 
$!;while(<$h>){if(/^include::([^\]]+)\[\]/){p($1)}else{s/\[([^\]]+)\]\([\w-]+\.md(#[\w-]+)\)/[$1]($2)/g;s/\[([^\]]+)\]\(([\w-]+)\.md\)/"[$1](#".lc($2).")"/ge;print}}}p("index.md")'
 \
-        | pandoc -s -f gfm -o 
"${tmpwd}"/output/openqa-documentation-"${verbose_doc_name}".html \
+        && ../tools/process-docs | pandoc -s -f gfm -o 
"${tmpwd}"/output/openqa-documentation-"${verbose_doc_name}".html \
             --template=template.html \
             -c style.css \
             --embed-resources --standalone \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1779808735.8c9bd805/tools/process-docs 
new/openQA-5.1780322162.c1836389/tools/process-docs
--- old/openQA-5.1779808735.8c9bd805/tools/process-docs 1970-01-01 
01:00:00.000000000 +0100
+++ new/openQA-5.1780322162.c1836389/tools/process-docs 2026-06-01 
15:56:02.000000000 +0200
@@ -0,0 +1,20 @@
+#!/bin/perl
+
+use strict;
+use warnings;
+use experimental 'signatures';
+
+sub process_file ($file) {
+    open my $handle, '<', $file or die $!;
+    while (my $line = <$handle>) {
+        if ($line =~ /^include::([^\]]+)\[\]/) { process_file($1) }
+        else {
+            $line =~ s/\[([^\]]+)\]\([\w-]+\.md(#[\w-]+)\)/[$1]($2)/g;
+            $line =~ s/\[([^\]]+)\]\(([\w-]+)\.md\)/[$1](#\L$2\E)/g;
+            print $line;
+        }
+    }
+    close $handle;
+}
+
+process_file('index.md');

++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.CiXoD8/_old  2026-06-02 16:04:05.630368722 +0200
+++ /var/tmp/diff_new_pack.CiXoD8/_new  2026-06-02 16:04:05.634368888 +0200
@@ -1,5 +1,5 @@
 name: openQA
-version: 5.1779808735.8c9bd805
-mtime: 1779808735
-commit: 8c9bd8052f65195f587f27fb5bee6b5111c2ef05
+version: 5.1780322162.c1836389
+mtime: 1780322162
+commit: c18363899cbe127225717f0b5bed136d8ddcc8f7
 

Reply via email to