This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new c8d4fa1b65 TIKA-4920: nightly locale build, one full reactor per 
priority locale (#3308)
c8d4fa1b65 is described below

commit c8d4fa1b6568b8ad69acd5981dcd2197314a2531
Author: Tim Allison <[email protected]>
AuthorDate: Tue Oct 6 19:38:56 2026 -0400

    TIKA-4920: nightly locale build, one full reactor per priority locale 
(#3308)
---
 .github/workflows/main-jdk17-build.yml             |  2 +-
 .github/workflows/main-jdk17-windows-build.yml     |  4 +--
 .github/workflows/main-jdk21-build.yml             |  2 +-
 .github/workflows/main-jdk25-build.yml             |  2 +-
 ...in-jdk21-build.yml => nightly-locale-build.yml} | 37 ++++++++++++++++------
 .skills/devs/development/SKILL.md                  |  5 +--
 6 files changed, 35 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/main-jdk17-build.yml 
b/.github/workflows/main-jdk17-build.yml
index 05a9447e33..6e072074c7 100644
--- a/.github/workflows/main-jdk17-build.yml
+++ b/.github/workflows/main-jdk17-build.yml
@@ -97,7 +97,7 @@ jobs:
       # single-threaded, and javadoc breakage is caught on main within the 
hour;
       # PR pushes should not wait on it.
       # Random test locales (-Dtika.test.locale=random, RandomLocaleListener) 
stay off
-      # in CI until the remaining locale-dependent tests are fixed (TIKA-4920).
+      # here until nightly-locale-build has been green several nights running 
(TIKA-4920).
       - name: Build with Maven
         run: |
           mvn install -Pfast -pl :tika-annotation-processor -am -B -q
diff --git a/.github/workflows/main-jdk17-windows-build.yml 
b/.github/workflows/main-jdk17-windows-build.yml
index 3961ef2eac..3de95a6f1b 100644
--- a/.github/workflows/main-jdk17-windows-build.yml
+++ b/.github/workflows/main-jdk17-windows-build.yml
@@ -20,8 +20,8 @@
 #   - child JVMs (tika-server, pipes forks) started under a non-en_US locale
 #
 # In-process tests can run under a random default locale
-# (-Dtika.test.locale=random, RandomLocaleListener; off in CI until the 
remaining
-# locale-dependent tests are fixed, TIKA-4920); this one runs them under
+# (-Dtika.test.locale=random, RandomLocaleListener; nightly-locale-build does, 
the
+# PR jobs will again once it stays green, TIKA-4920); this one runs them under
 # de_DE. Pipes forks receive their parent's locale as -D flags, but JVMs the
 # tests start themselves (tika-server) inherit only the environment, hence
 # JAVA_TOOL_OPTIONS here, which every JVM reads at startup.
diff --git a/.github/workflows/main-jdk21-build.yml 
b/.github/workflows/main-jdk21-build.yml
index 3aa717983a..dba342210d 100644
--- a/.github/workflows/main-jdk21-build.yml
+++ b/.github/workflows/main-jdk21-build.yml
@@ -48,4 +48,4 @@ jobs:
           key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
           restore-keys: maven-${{ runner.os }}-
       - name: Build with Maven
-        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install javadoc:aggregate -Pci -T1C -Dtika.test.locale=random -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
+        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install javadoc:aggregate -Pci -T1C -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
diff --git a/.github/workflows/main-jdk25-build.yml 
b/.github/workflows/main-jdk25-build.yml
index 58187e295b..690304a24d 100644
--- a/.github/workflows/main-jdk25-build.yml
+++ b/.github/workflows/main-jdk25-build.yml
@@ -48,4 +48,4 @@ jobs:
           key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
           restore-keys: maven-${{ runner.os }}-
       - name: Build with Maven
-        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install javadoc:aggregate -Pci -T1C -Dtika.test.locale=random -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
+        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install javadoc:aggregate -Pci -T1C -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
diff --git a/.github/workflows/main-jdk21-build.yml 
b/.github/workflows/nightly-locale-build.yml
similarity index 53%
copy from .github/workflows/main-jdk21-build.yml
copy to .github/workflows/nightly-locale-build.yml
index 3aa717983a..397a74932b 100644
--- a/.github/workflows/main-jdk21-build.yml
+++ b/.github/workflows/nightly-locale-build.yml
@@ -15,29 +15,46 @@
 # limitations under the License.
 #
 
-name: main jdk21 build
+# Every locale the random-locale listener prioritizes, each in its own 
full-reactor
+# build, plus one random draw for the long tail. Nothing gates on this job: it 
is
+# the canary for locale-dependent code (TIKA-4920). The rule for turning
+# -Dtika.test.locale=random back on in the PR jobs is several green nights here
+# in a row. Reproduce a failure locally with the same -Dtika.test.locale=<tag>.
+#
+# Only in-process tests see the locale: pipes forks receive their parent's 
locale
+# as -D flags, but JVMs the tests start themselves (tika-server) inherit only 
the
+# environment. main-jdk17-windows-build covers that surface under de_DE.
+name: nightly locale build
 
 on:
-  push:
-    branches: [ main ]
-    paths-ignore:
-      - 'docs/**'
+  schedule:
+    - cron: '17 3 * * *'
+  workflow_dispatch:
 
 jobs:
   build:
+    if: github.repository == 'apache/tika'
     runs-on: ubuntu-latest
     timeout-minutes: 60
     strategy:
+      fail-fast: false
       matrix:
-        java: [ '21' ]
+        locale:
+          - tr-TR
+          - az-Latn-AZ
+          - th-TH-u-nu-thai-x-lvariant-TH
+          - ja-JP-u-ca-japanese-x-lvariant-JP
+          - ar-EG
+          - de-DE
+          - random
 
     steps:
       - uses: actions/checkout@v7
-      - name: Set up JDK ${{ matrix.java }}
+      - name: Set up JDK 17
         uses: actions/setup-java@v6
         with:
           distribution: 'temurin'
-          java-version: ${{ matrix.java }}
+          java-version: '17'
       - name: Cache Maven repository
         # Explicit, not setup-java's cache: 'maven', so our own snapshots stay 
out of the tarball.
         uses: actions/cache@v6
@@ -47,5 +64,5 @@ jobs:
             !~/.m2/repository/org/apache/tika
           key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
           restore-keys: maven-${{ runner.os }}-
-      - name: Build with Maven
-        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install javadoc:aggregate -Pci -T1C -Dtika.test.locale=random -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
+      - name: Build with Maven under ${{ matrix.locale }}
+        run: mvn install -Pfast -pl :tika-annotation-processor -am -B -q && 
mvn clean test install -Pci -T1C -Dtika.test.locale=${{ matrix.locale }} -B 
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
diff --git a/.skills/devs/development/SKILL.md 
b/.skills/devs/development/SKILL.md
index fae59a1361..7735d333a6 100644
--- a/.skills/devs/development/SKILL.md
+++ b/.skills/devs/development/SKILL.md
@@ -213,8 +213,9 @@ them back. Anything hot enough to need a real seek gets a 
channel from
   already guarantees.
 - `-Dtika.test.locale=random` runs every test JVM under a random default locale
   (`RandomLocaleListener` in `tika-test-support`, wired through tika-parent); 
run it
-  before touching anything that formats or parses text. It is off in CI until 
the
-  remaining locale-dependent tests are fixed (TIKA-4920). A plain build keeps 
the
+  before touching anything that formats or parses text. The PR jobs leave it 
off
+  until `nightly-locale-build` (one full build per priority locale, plus a 
random
+  draw) has been green several nights running (TIKA-4920). A plain build keeps 
the
   JVM's own locale. A failure's stack trace and the fork's stderr name the 
locale;
   reproduce with `-Dtika.test.locale=<tag>`.  A test that fails only
   in some locales is a bug in the code under test (use `Locale.ROOT`), not a

Reply via email to