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 c5c2437f37 TIKA-4920: keep random test locales off in CI for now
(#3307)
c5c2437f37 is described below
commit c5c2437f37730dec004f6f1c97d031f0de2c3bb4
Author: Tim Allison <[email protected]>
AuthorDate: Tue Oct 6 19:03:57 2026 -0400
TIKA-4920: keep random test locales off in CI for now (#3307)
---
.github/workflows/main-jdk17-build.yml | 5 +++--
.github/workflows/main-jdk17-windows-build.yml | 5 +++--
.skills/devs/development/SKILL.md | 10 ++++++----
tika-parent/pom.xml | 2 +-
4 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/main-jdk17-build.yml
b/.github/workflows/main-jdk17-build.yml
index 033a5b6888..05a9447e33 100644
--- a/.github/workflows/main-jdk17-build.yml
+++ b/.github/workflows/main-jdk17-build.yml
@@ -96,11 +96,12 @@ jobs:
# javadoc:aggregate is push-only: it is an aggregate-docs artifact, is
# 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).
- name: Build with Maven
run: |
mvn install -Pfast -pl :tika-annotation-processor -am -B -q
mvn clean test install ${{ github.event_name == 'push' &&
'javadoc:aggregate' || '' }} -Pci -T1C \
- -Dtika.test.locale=random \
-pl "$(echo "$IT_MODULES" | sed 's/:/!:/g')" \
-B
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
@@ -141,7 +142,7 @@ jobs:
# so without this they would drop out of license checking entirely.
- name: Run integration tests
run: |
- mvn clean apache-rat:check test -Pci -Dtika.test.locale=random \
+ mvn clean apache-rat:check test -Pci \
-pl "$IT_MODULES" \
-B
"-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
diff --git a/.github/workflows/main-jdk17-windows-build.yml
b/.github/workflows/main-jdk17-windows-build.yml
index ac8de6c2b5..3961ef2eac 100644
--- a/.github/workflows/main-jdk17-windows-build.yml
+++ b/.github/workflows/main-jdk17-windows-build.yml
@@ -19,8 +19,9 @@
# - path handling: the checkout dir below deliberately contains a space
# - child JVMs (tika-server, pipes forks) started under a non-en_US locale
#
-# The Linux jobs run in-process tests under a random default locale
-# (-Dtika.test.locale=random, RandomLocaleListener); this one runs them under
+# 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
# 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/.skills/devs/development/SKILL.md
b/.skills/devs/development/SKILL.md
index 863c05aeb9..fae59a1361 100644
--- a/.skills/devs/development/SKILL.md
+++ b/.skills/devs/development/SKILL.md
@@ -211,10 +211,12 @@ them back. Anything hot enough to need a real seek gets a
channel from
CONCATENATE-only bugs).
- Keep tests non-duplicative: don't add a test whose failure another test
already guarantees.
-- CI runs every test JVM under a random default locale
(`-Dtika.test.locale=random`;
- `RandomLocaleListener` in `tika-test-support`, wired through tika-parent). A
plain
- build keeps the JVM's own locale. A CI failure's stack trace and the fork's
stderr
- name the locale; reproduce with `-Dtika.test.locale=<tag>`. A test that
fails only
+- `-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
+ 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
reason to pin `Locale.US` in the test.
- Where there's bang for the buck, prefer parameterized tests over
diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index edd2d7335c..5f36d6d3ad 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -1522,7 +1522,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
- <!-- -Dtika.test.locale=random (CI) or =tr-TR runs the tests under
that default locale
+ <!-- -Dtika.test.locale=random or =tr-TR runs the tests under that
default locale
(RandomLocaleListener). -Duser.language here would not work:
surefire sets
it in the fork only after the default Locale is fixed. -->
<!-- java.io.tmpdir MUST be quoted: argLine is split on whitespace,
and the Windows