This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new de6b50dd09d [chore](ci) Remove Japanese launch-only checks (#4212)
de6b50dd09d is described below
commit de6b50dd09daf92d67eed09672834a71efad9daa
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Tue Oct 13 06:05:02 2026 +0800
[chore](ci) Remove Japanese launch-only checks (#4212)
## Result
The Japanese launch in #4211 has passed its full-version memory,
browser, search, and document checks. This removes the two branch-gated
launch-only workflows, `Japanese PoC` and `Japanese document scope`,
before T09 translation batches begin. The document-scope job relies on
the original T03 snapshot and would become stale as new translations are
merged. The full-build job only ran on the staged implementation
branches or by manual dispatch; normal T09 branches already skipped it.
The local build, memory-sampling, static, navigation, browser, and
search verification scripts remain available. Permanent PR checks
remain: Build Check, Japanese coverage audit, Markdown links, and file
sizes. The PoC README now describes the live production locale and the
retained local validation commands. No site source, translation,
routing, or production deploy workflow changes.
## Validation
- 38 i18n/build tests passed.
- `actionlint` passed on the remaining Japanese coverage and production
deploy workflows; the unchanged Build Check workflow has pre-existing
shellcheck notices.
- `git diff --check` passed. No site build is needed for workflow
deletion and README correction.
- Repository branch rules currently do not require the removed job
names.
Co-authored-by: morningman <[email protected]>
---
.github/workflows/japanese-documents.yml | 129 ---------------------------
.github/workflows/japanese-poc.yml | 145 -------------------------------
scripts/i18n/poc/README.md | 52 ++++++-----
3 files changed, 29 insertions(+), 297 deletions(-)
diff --git a/.github/workflows/japanese-documents.yml
b/.github/workflows/japanese-documents.yml
deleted file mode 100644
index 05105c0ddc6..00000000000
--- a/.github/workflows/japanese-documents.yml
+++ /dev/null
@@ -1,129 +0,0 @@
-name: Japanese document scope
-
-on:
- workflow_dispatch:
- inputs:
- baseline_ref:
- description: 'Merged English/Chinese baseline (no deployment)'
- required: true
- default: master
- pull_request:
- branches: [master]
- paths:
- - 'scripts/i18n/**'
- - 'translations/**'
- - 'i18n/ja/**'
- - 'docusaurus.config.js'
- - 'src/theme/SearchBar/**'
- - 'src/theme/SearchPage/**'
- - 'src/utils/tokenize.ts'
- - 'static/.htaccess'
- - '.github/workflows/cron-deploy-website.yml'
- - '.github/workflows/manual-deploy-website.yml'
- - '.github/workflows/japanese-documents.yml'
-
-permissions:
- contents: read
-
-concurrency:
- group: japanese-documents-${{ github.event.pull_request.number || github.ref
}}
- cancel-in-progress: true
-
-jobs:
- document-scope:
- # T03 validates real Dev/4.x content, without repeating the full memory
- # experiment. The complete production matrix remains in japanese-poc.yml.
- if: github.event_name == 'workflow_dispatch' ||
startsWith(github.head_ref, 'feat/japanese-doc-inventory') ||
startsWith(github.head_ref, 'feat/japanese-i18n-ci-search') ||
startsWith(github.head_ref, 'feat/japanese-i18n-launch')
- runs-on: ubuntu-latest
- timeout-minutes: 120
- env:
- NODE_OPTIONS: --max-old-space-size=8192
- DORIS_ASSET_ORIGIN: ''
- steps:
- - uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha || github.sha }}
- repository: ${{ github.event.pull_request.head.repo.full_name ||
github.repository }}
- path: candidate
- fetch-depth: 0
- persist-credentials: false
- - uses: actions/checkout@v4
- with:
- ref: ${{ inputs.baseline_ref || github.event.pull_request.base.sha }}
- path: baseline
- fetch-depth: 0
- persist-credentials: false
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- - name: Prepare swap and browser
- run: |
- sudo fallocate -l 8G /mnt/japanese-documents-swap
- sudo chmod 600 /mnt/japanese-documents-swap
- sudo mkswap /mnt/japanese-documents-swap
- sudo swapon /mnt/japanese-documents-swap
- npm install -g [email protected]
- npm install --prefix "$RUNNER_TEMP/document-browser"
--no-package-lock --no-save [email protected]
- "$RUNNER_TEMP/document-browser/node_modules/.bin/playwright" install
--with-deps chromium
- sudo apt-get update
- sudo apt-get install -y fonts-noto-cjk
- - name: Install candidate and verify scope
- working-directory: candidate
- run: |
- yarn --frozen-lockfile
- yarn key-features:generate
- mkdir -p ../evidence
- node --test scripts/i18n/__tests__/*.test.cjs
scripts/i18n/poc/*.test.cjs scripts/__tests__/build-locales.test.cjs
- node scripts/i18n/audit-coverage.cjs --source-ref HEAD --output
../evidence/coverage.json
- - name: Build Dev and 4.x English/Chinese baseline
- working-directory: baseline
- env:
- DOCS_VERSIONS: current,4.x
- DORIS_ENABLE_JA: 'false'
- run: |
- yarn --frozen-lockfile
- yarn key-features:generate
- yarn build:locales
- - name: Verify baseline static artifact
- env:
- NODE_PATH: ${{ runner.temp }}/document-browser/node_modules
- run: |
- node candidate/scripts/i18n/poc/verify-static.cjs --site
baseline/build --output evidence/baseline-browser --capture-baseline-errors
- rm -rf baseline/build baseline/node_modules
- - name: Build Dev and 4.x in three independent locale processes
- working-directory: candidate
- env:
- DOCS_VERSIONS: current,4.x
- DORIS_ENABLE_JA: 'true'
- run: yarn build:locales
- - name: Verify Japanese documents and original locale behavior
- env:
- NODE_PATH: ${{ runner.temp }}/document-browser/node_modules
- run: |
- # Execute every independent validator so a failure retains browser
- # evidence as well. Any nonzero result still fails the complete job.
- set +e
- node candidate/scripts/i18n/verify-static.cjs --site candidate/build
--manifest candidate/.i18n-build/manifests/ja.json --output
evidence/static-status.json
- doc_status_exit=$?
- node candidate/scripts/i18n/verify-doc-navigation.cjs --site
candidate/build --output evidence/document-navigation.json
- doc_navigation_exit=$?
- node candidate/scripts/i18n/poc/verify-static.cjs --site
candidate/build --output evidence/candidate-browser --expect-ja --baseline
evidence/baseline-browser/signatures.json
- doc_browser_exit=$?
- node candidate/scripts/i18n/verify-search.cjs --site candidate/build
> evidence/search.json
- search_exit=$?
- if (( doc_status_exit || doc_navigation_exit || doc_browser_exit ||
search_exit )); then exit 1; fi
- - name: Preserve CI-built site for failed validation replay
- uses: actions/upload-artifact@v4
- if: failure()
- with:
- name: japanese-document-site-${{ github.event.pull_request.head.sha
|| github.sha }}
- path: candidate/build
- if-no-files-found: ignore
- retention-days: 3
- - uses: actions/upload-artifact@v4
- if: always()
- with:
- name: japanese-documents-${{ github.event.pull_request.head.sha ||
github.sha }}
- path: evidence
- if-no-files-found: warn
- retention-days: 14
diff --git a/.github/workflows/japanese-poc.yml
b/.github/workflows/japanese-poc.yml
deleted file mode 100644
index f4a1ecd742c..00000000000
--- a/.github/workflows/japanese-poc.yml
+++ /dev/null
@@ -1,145 +0,0 @@
-name: Japanese PoC
-
-on:
- workflow_dispatch:
- inputs:
- baseline_ref:
- description: 'English/Chinese baseline commit or ref (no deployment)'
- required: true
- default: master
- pull_request:
- branches: [master]
- paths:
- - 'i18n/ja/**'
- - 'src/**'
- - 'static/home-next/**'
- - 'static/js/embedded-locale.js'
- - 'config/custom-docusaurus-plugin.js'
- - 'config/asset-origin.js'
- - 'config/ssrTemplate.js'
- - 'package.json'
- - 'yarn.lock'
- - 'scripts/patch-react-ssr.js'
- - 'docusaurus.config.js'
- - 'scripts/i18n/**'
- - 'scripts/build-locales.cjs'
- - 'scripts/build-locale.cjs'
- - 'scripts/__tests__/build-locales.test.cjs'
- - 'translations/**'
- - '.github/workflows/cron-deploy-website.yml'
- - '.github/workflows/manual-deploy-website.yml'
- - '.github/workflows/japanese-poc.yml'
-
-# PR code is untrusted. This job has no deployment environment, secrets,
-# publish token, or write permission. It never uses pull_request_target.
-permissions:
- contents: read
-
-concurrency:
- group: japanese-poc-${{ github.event.pull_request.number || github.ref }}
- cancel-in-progress: true
-
-jobs:
- full-build:
- # Keep the expensive full matrix specific to the staged implementation
- # branches. General translation-PR scope detection belongs to T04.
- if: github.event_name == 'workflow_dispatch' ||
startsWith(github.head_ref, 'feat/japanese-i18n-poc') ||
startsWith(github.head_ref, 'feat/japanese-i18n-status') ||
startsWith(github.head_ref, 'feat/japanese-i18n-launch')
- runs-on: ubuntu-latest
- timeout-minutes: 180
- env:
- NODE_OPTIONS: --max-old-space-size=8192
- PWA_SERVICE_WORKER_URL: https://doris.apache.org/sw.js
- steps:
- - name: Checkout PoC source
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha || github.sha }}
- repository: ${{ github.event.pull_request.head.repo.full_name ||
github.repository }}
- path: poc-source
- fetch-depth: 0
- persist-credentials: false
- - name: Checkout baseline source
- uses: actions/checkout@v4
- with:
- ref: ${{ inputs.baseline_ref || github.event.pull_request.base.sha
|| 'master' }}
- path: baseline-source
- fetch-depth: 0
- persist-credentials: false
- - name: Use production Node version
- uses: actions/setup-node@v4
- with:
- node-version: 20
- - name: Add production swap allocation
- run: |
- sudo fallocate -l 8G /mnt/swapfile2
- sudo chmod 600 /mnt/swapfile2
- sudo mkswap /mnt/swapfile2
- sudo swapon /mnt/swapfile2
- free -h
- swapon --show
- - name: Prepare browser validation
- run: |
- npm install -g [email protected]
- npm install --prefix "$RUNNER_TEMP/poc-browser" --no-package-lock
--no-save [email protected]
- "$RUNNER_TEMP/poc-browser/node_modules/.bin/playwright" install
--with-deps chromium
- sudo apt-get update
- sudo apt-get install -y fonts-noto-cjk
- - name: Install baseline dependencies and generated inputs
- working-directory: baseline-source
- run: |
- yarn cache clean
- yarn --frozen-lockfile
- # Use the same upstream UTF-8 fix in both dependency installations.
- # Original baseline document/UI source remains at the base SHA.
- node ../poc-source/scripts/patch-react-ssr.js node_modules/react-dom
- yarn key-features:generate
- - name: Full English and Chinese baseline
- run: |
- python3 poc-source/scripts/i18n/poc/measure-build.py \
- --source baseline-source --output evidence/baseline
- - name: Save rendered baseline
- env:
- # The verifier lives in poc-source, whose dependencies are installed
- # later. Resolve its HTML parser from the already installed baseline.
- NODE_PATH: ${{ runner.temp }}/poc-browser/node_modules:${{
github.workspace }}/baseline-source/node_modules
- run: |
- node poc-source/scripts/i18n/poc/verify-static.cjs \
- --site evidence/baseline/site --output evidence/baseline/browser
--cdn-to-local
- rm -rf evidence/baseline/site baseline-source/node_modules
- - name: Install PoC dependencies and generated inputs
- working-directory: poc-source
- run: |
- yarn cache clean
- yarn --frozen-lockfile
- yarn key-features:generate
- node --test scripts/i18n/poc/*.test.cjs
scripts/i18n/__tests__/*.test.cjs scripts/__tests__/build-locales.test.cjs
- - name: Validate translation states in a real fixture site
- working-directory: poc-source
- env:
- NODE_PATH: ${{ runner.temp }}/poc-browser/node_modules
- run: |
- set -o pipefail
- node scripts/i18n/verify-fixture.cjs --browser | tee
../evidence/translation-fixture.log
- - name: Full sequential build in independent locale processes
- run: |
- python3 poc-source/scripts/i18n/poc/measure-build.py \
- --source poc-source --output evidence/poc --japanese
--separate-locales
- - name: Validate PoC static artifact and existing locales
- env:
- NODE_PATH: ${{ runner.temp }}/poc-browser/node_modules
- run: |
- node poc-source/scripts/i18n/poc/verify-static.cjs \
- --site evidence/poc/site --output evidence/poc/browser --expect-ja
\
- --baseline evidence/baseline/browser/signatures.json
- node poc-source/scripts/i18n/verify-static.cjs \
- --site evidence/poc/site --manifest
poc-source/.i18n-build/manifests/ja.json \
- --output evidence/poc/translation-status.json
- cp -R poc-source/.i18n-build/manifests evidence/poc/manifests
- - name: Upload evidence even when validation fails
- if: always()
- uses: actions/upload-artifact@v4
- with:
- name: japanese-poc-${{ github.event.pull_request.head.sha ||
github.sha }}
- path: evidence
- if-no-files-found: warn
- retention-days: 14
diff --git a/scripts/i18n/poc/README.md b/scripts/i18n/poc/README.md
index 6a0fa3e4658..e1d70c4de62 100644
--- a/scripts/i18n/poc/README.md
+++ b/scripts/i18n/poc/README.md
@@ -1,8 +1,8 @@
# Japanese PoC validation
-Japanese is disabled unless `DORIS_ENABLE_JA=true` is set at build time. No
-translation service runs in the browser or in the website deployment workflows.
-The existing production workflows still build only English and Chinese.
+Japanese is enabled when `DORIS_ENABLE_JA=true` is set at build time. The
+production cron and manual workflows build English, Chinese, and Japanese.
+No translation service runs in the browser or in website deployment workflows.
For local debugging, generate the usual inputs, then build all three locales in
independent Node processes in one sequential job. The T02 run confirmed a
@@ -22,32 +22,34 @@ Leaving it unset preserves the production CDN. Worker
chunks always use the
resolved same-origin language base URL, including single-locale previews.
A multi-locale output is required to validate the production `/ja/` routes.
-`Japanese PoC` supports `workflow_dispatch` after merge and a read-only
-`pull_request` entry for branches beginning with `feat/japanese-i18n-poc`
before
-merge. It builds the PR's base as the two-language baseline, then the PR head
as
-three languages on the same Ubuntu runner, Node 20, 8192 MiB Node heap and 8
GiB
-additional swap. Each build keeps every active version and content/search
-plugin. The workflow never deploys or uses deployment secrets.
+The launch was validated by the full-build and document-scope jobs in
+[PR #4211](https://github.com/apache/doris-website/pull/4211). Those temporary
+workflows have been removed after launch. Keep these scripts for local or
+explicitly arranged full-matrix checks. For an Ubuntu comparison, build the
+English/Chinese base and the three-language candidate on the same runner with
+Node 20, an 8192 MiB Node heap, 8 GiB additional swap, every active version,
+and the original content/search plugins. The scripts do not deploy or use
+deployment secrets.
Both dependency installations apply the same small upstream React 18.3.1 SSR
fix from [React PR #26228](https://github.com/react/react/pull/26228).
The original renderer can insert NUL bytes at UTF-8 buffer boundaries,
corrupting
CJK IDs and link URLs when markup shifts. The patch flushes only written bytes;
-it does not upgrade React or change document content. The PoC applies it
through
-`postinstall`; the workflow explicitly applies it to the original baseline too.
-Evidence records both installed renderer file hashes to verify this parity.
+it does not upgrade React or change document content. `postinstall` applies the
+patch to local builds; when comparing an older base, apply the same patch there
+and record both installed renderer file hashes to verify parity.
The browser verifier rejects NUL bytes and compares all URLs exactly, without
discarding corrupted anchors. Remove the patch when upgrading to React 19.
-The artifact contains the actual source SHAs, lock hashes, environment,
commands,
+`measure-build.py` records the actual source SHAs, lock hashes, environment,
commands,
per-language times, exit codes, GNU time output, sampled system/process memory,
-cgroup metrics when readable, build logs, browser results and the new static
-site. Process Max RSS and summed process RSS do not establish whole-runner
memory
+cgroup metrics when readable, and build logs. The browser verifier records its
+own results and screenshots. Process Max RSS and summed process RSS do not
establish whole-runner memory
use. A failed or timed-out build cannot count as an OOM-free completed build.
Memory availability, swap availability, pressure and kernel/cgroup OOM counters
-are also emitted to the job log every minute. On SIGTERM/SIGINT the observer
+are also emitted to stdout every minute. On SIGTERM/SIGINT the observer
stops its own build process group and persists final counters where possible.
-This keeps evidence visible when artifact upload is skipped; SIGKILL cannot be
+This keeps evidence visible when an artifact upload is skipped; SIGKILL cannot
be
handled, and a partial log cannot establish an OOM-free completed build.
The browser check uses Playwright installed separately from the website's
@@ -67,8 +69,8 @@ routes and validates the Dev locale switch instead. Full 4.x
and other active
versions are validated by CI; keep local builds limited to Dev.
In that preview only, the validator aliases `/docs/dev/search-index*.json` to
the same locale's own Dev index at its root, and records every alias. The
-existing SearchBar assumes the stable version is included. Full CI uses the
-production index layout without this preview adaptation.
+existing SearchBar assumes the stable version is included. A full build uses
+the production index layout without this preview adaptation.
Homepage message IDs are permanent. The numbered IDs are assigned once; do not
renumber them when reordering content or changing English wording. English
@@ -83,8 +85,12 @@ English. Intentional untranslated content:
product/customer/brand/theme names,
SQL and example result titles, numbers and units, legal/license notices, and
text
embedded in existing diagram images and the documentation overview
illustration.
The homepage's owned news announcements and HTML illustration captions are
-translated. Japanese search, complete translation status/SEO, and public launch
-remain later tasks; passing this PoC does not authorize enabling Japanese in
-production.
+translated. Japanese search and per-page translation status/SEO are live after
+T05; untranslated documentation displays the same-version English source with
+a Japanese notice. Translation coverage remains incomplete and is tracked by
+the coverage audit.
-Use `measure-build.py --separate-locales --japanese` for the isolated full
three-language probe. It preserves the complete version/plugin scope and
records each child PID. Production cron/manual use the same launcher while
Japanese remains disabled.
+Use `measure-build.py --separate-locales --japanese` for an isolated full
+three-language probe. It preserves the complete version/plugin scope and
+records each child PID. Production cron/manual use the same locale launcher
+with Japanese enabled.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]