[DOC-CVS] [doc-base] check-ci-without-jing: Add --with-jing option and exercise both validators in CI
[email protected] (Jordi Kroon) Fri, 24 Jul 2026 13:37:35 +0000
| Newsgroups | php.doc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Jordi Kroon (jordikroon)
Date: 2026-07-24T15:37:26+02:00
Commit: https://github.com/php/doc-base/commit/872b6042873f550d757c06128c172f3f7f193c02
Raw diff: https://github.com/php/doc-base/commit/872b6042873f550d757c06128c172f3f7f193c02.diff
Add --with-jing option and exercise both validators in CI
Changed paths:
M .github/workflows/integrate.yaml
M configure.php
Diff:
diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml
index ec7568bd84..cf0350c606 100644
--- a/.github/workflows/integrate.yaml
+++ b/.github/workflows/integrate.yaml
@@ -58,5 +58,8 @@ jobs:
php doc-base/scripts/qa/extensions.xml.php --check
php doc-base/scripts/qa/section-order.php
- - name: "Build documentation for ${{ matrix.language }}"
- run: "php doc-base/configure.php --disable-libxml-check --enable-xml-details --redirect-stderr-to-stdout --with-lang=${{ matrix.language }}"
+ - name: "Build documentation for ${{ matrix.language }} (jing)"
+ run: "php doc-base/configure.php --disable-libxml-check --enable-xml-details --redirect-stderr-to-stdout --with-jing=yes --with-lang=${{ matrix.language }}"
+
+ - name: "Build documentation for ${{ matrix.language }} (libxml)"
+ run: "php doc-base/configure.php --disable-libxml-check --enable-xml-details --redirect-stderr-to-stdout --with-jing=no --with-lang=${{ matrix.language }}"
diff --git a/configure.php b/configure.php
index 1a07591639..02c9584fb9 100755
--- a/configure.php
+++ b/configure.php
@@ -85,6 +85,8 @@ function usage() // {{{
--with-php=PATH Path to php CLI executable [detect]
--with-lang=LANG Language to build [{$acd['LANG']}]
--with-partial=my-xml-id Root ID to build (e.g. <book xml:id="MY-ID">) [{$acd['PARTIAL']}]
+ --with-jing=auto|yes|no Validate with Jing (requires Java) instead of
+ libxml [{$acd['JING']}]
--disable-broken-file-listing Do not ignore translated files in
broken-files.txt
--disable-xpointer-reporting Do not show XInclude/XPointer failures. Only effective
@@ -294,6 +296,7 @@ function find_xml_files($path) // {{{
'TRANSLATION_ONLY_INCL_BEGIN' => '',
'TRANSLATION_ONLY_INCL_END' => '',
'XPOINTER_REPORTING' => 'yes',
+ 'JING' => 'auto',
); // }}}
$ac = $acd;
@@ -425,6 +428,14 @@ function find_xml_files($path) // {{{
$ac['XPOINTER_REPORTING'] = $v;
break;
+ case 'jing':
+ if (!in_array($v, array('auto', 'yes', 'no'))) {
+ errbox("Invalid value for --with-jing: {$v} (expected auto, yes or no)");
+ errors_are_bad(1);
+ }
+ $ac['JING'] = $v;
+ break;
+
case '':
break;
@@ -989,11 +1000,17 @@ function xml_validate( $dom )
// Jing is faster, but depends on Java.
- $out = null;
- $ret = null;
- exec( "java -version 2>&1" , $out , $ret );
+ $jing = $GLOBALS['ac']['JING'];
- if ( $ret == 0 )
+ if ( $jing == 'auto' )
+ {
+ $out = null;
+ $ret = null;
+ exec( "java -version 2>&1" , $out , $ret );
+ $jing = $ret == 0 ? 'yes' : 'no';
+ }
+
+ if ( $jing == 'yes' )
xml_validate_jing();
else
xml_validate_libxml( $dom );