* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
11 KiB
Release-Green: keeping the queue and release branch green (Malti)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Il-problema li dan isolvi
Il-full gate (.github/workflows/ci.yml — unit shards, vitest, ratchets,
package-artifact, SonarQube, E2E) jitħaddem biss fuq il-PR tar-rilaxx (PR → main). Il-PRs immirati lejn
release/** jirċievu l-fast-gates (quality.yml: testijiet affettwati minn TIA + verifika tat-tipi + lint)
u, għal bidliet fil-kodiċi, build tal-produzzjoni konsultattiv. Konsegwenza: fallimenti li jidhru biss waqt ir-rilaxx xorta jistgħu
jakkumulaw fis-skiet fuq il-fergħa tar-rilaxx u jisplodu f’saffi ta’ ~40 minuta fil-ħin tar-rilaxx,
wieħed wieħed.
Il-"familja release-green" teżisti biex tantiċipa dawk il-fallimenti — tivvalida l-ekwivalenti tal-full gate lokalment / barra mir-rilaxx, fi kwalunkwe ħin, sabiex il-PR tar-rilaxx ikun diġà aħdar mal-ewwel eżekuzzjoni tiegħu fis-CI.
Prinċipju mhux negozjabbli: xejn minn dan ma jimblokka lill-kontributur. Ma nżidux verifika obbligatorja li tfalli l-PR tiegħu. Id-drift (ratchets) huwa għall-manutenzjonist biex jerġa’ jistabbilixxi l-linja bażi waqt ir-rilaxx — qatt ma huwa tħassib tal-kontributur. L-ebda parti ma tagħlaq PR (serq tal-kreditu) u lanqas iddgħajjef test biex jgħaddi.
Il-familja (4 partijiet) — u kif kull waħda taħdem b’mod indipendenti
| Parti | X’inhi | Meta titħaddem | Ambitu |
|---|---|---|---|
/green-prs (Soluzzjoni A) |
Skennjar fuq talba mill-manutenzjonist tal-kju ta’ PRs miftuħa | B’mod indipendenti, perjodikament — u speċjalment qabel /generate-release |
Il-kju kollu tal-PRs → release/** |
/validate-release-green (Soluzzjoni C — npm run check:release-green) |
Magna ta’ validazzjoni: tirriproduċi l-full gate fuq fergħa JEW kandidat għall-merge | B’mod indipendenti, fi kwalunkwe ħin | Fergħa speċifika jew PR tal-merge |
/babysit <PR#> |
Imexxi s-CI live ta’ PR wieħed sakemm isir aħdar | B’mod indipendenti, għal kull PR | PR wieħed |
nightly-release-green.yml (Soluzzjoni D) |
Workflow awtomatizzat ta’ kull lejl; jiftaħ issue meta jkun hemm falliment HARD | Awtomatikament (cron) | Il-fergħa tar-rilaxx attiva |
Tweġiba qasira għal "dan huwa biss għar-rilaxxi?": le. /green-prs ġie ddisinjat biex
jitħaddem perjodikament, bejn ir-rilaxxi. It-tħaddim indipendenti huwa l-użu normali — ir-rilaxx huwa biss
il-mument meta t-tħaddim tiegħu jagħti l-akbar valur.
Build konsultattiv minn PR għal rilaxx
quality.yml issa jinkludi Build (advisory) għal PRs tal-kodiċi li mhumiex abbozzi u għall-fergħat tal-kju ta’ Mergify.
Dan jirrifletti r-riċetta tal-build tal-produzzjoni minn ci.yml: Node 24, npm-ci-retry,
check:node-runtime, u npm run build b’OMNIROUTE_USE_TURBOPACK=1. Intenzjonalment
ma jtellax artifact tal-build għax l-ebda job tal-kwalità sussegwenti ma juża wieħed f’dan il-workflow.
Neħħi continue-on-error wara ġimgħa ta’ runs stabbli tal-PR tar-rilaxx sabiex is-sinjal isir
gate obbligatorju minn PR għal rilaxx.
Soluzzjoni C — npm run check:release-green (il-magna)
Tirriproduċi validazzjoni ekwivalenti għal dik tar-rilaxx fuq il-working tree attwali u tikklassifika kull riżultat aħmar:
- HARD (typecheck, żbalji tal-lint, unit, vitest, db-rules, public-creds, u
package-artifactfakultattiv) → difett reali;exit 1. Jissewwa fuq il-fergħa tas-sors (TDD, Regola #18). - DRIFT (twissijiet ta’ eslint, cognitive-complexity, file-size) → drift tar-ratchet akkumulat matul iċ-ċiklu, mhux tort tal-kontributur; jiġi rrappurtat biss u jingħata baseline ġdid mill-mantenitur waqt ir-rilaxx. Id-drift qatt ma jibdel il-kodiċi tal-ħruġ — għalhekk qatt ma jimblokka lil ħadd.
npm run check:release-green # il-fergħa attwali (working tree)
node scripts/quality/validate-release-green.mjs --json # output strutturat
node scripts/quality/validate-release-green.mjs --quick # jaqbeż unit+vitest (drift+typecheck+lint biss)
node scripts/quality/validate-release-green.mjs --with-build # jinkludi package-artifact (bil-mod)
Jiddijanjostika u jirrapporta biss (mingħajr tiswija awtomatika). L-orkestrazzjoni biex kollox isir aħdar tinsab f’
/green-prs u /review-prs.
Soluzzjoni A — /green-prs (l-iskennjar tal-kju)
Proċedura (sommarju — ara l-ħila green-prs għad-dettalji):
- Agħmel inventarju tal-kju ta’ PRs miftuħa mqabbla mal-fergħa attiva tar-rilaxx.
- Ikklassifika kull PR (vijabbli / jistħoqqlu ċaħda / jeħtieġ l-awtur) — dawk li jistħoqqilhom ċaħda jew jeħtieġu lill-awtur jiġu rrappurtati, mhux magħluqa (jiddeċiedi l-awtur).
- Għal kull PR vijabbli, f’worktree iżolat (Regola #19), aġġorna l-PR sal-ponta tal-fergħa tar-rilaxx u ħaddem
npm run check:release-green:- HARD → sewwi fuq il-fergħa tal-kontributur permezz ta’ koawtorija (dan jippreserva l-istatus “Merged” tal-awtur), u erġa’ ħaddem sakemm jitneħħew ir-riżultati HARD kollha.
- DRIFT → ħallih kif inhu; jingħata baseline ġdid waqt ir-rilaxx.
- Irrapporta tabella PR × (verdett, riżultati HARD ħomor, issewwa?, DRIFT, issa release-green?).
Jista’ jħejji l-kju mingħajr ma jagħmel merge; jagħmel merge biss meta jintalab b’mod espliċitu — u qatt ma jagħlaq PR.
Kadenzja rakkomandata
- Ħaddem
/green-prsperjodikament (eż., kull ġimgħa) u dejjem qabel/generate-release. - Żomm
nightly-release-green.yml(Soluzzjoni D) bħala sinjal kontinwu: meta jiftaħ issue għal riżultat HARD aħmar, ikun wasal iż-żmien għal skennjar. - Uża
/validate-release-greenmeta jkun meħtieġ biex tiċċekkja fergħa jew kandidat speċifiku għal merge. - Uża
/babysit <PR#>meta PR speċifiku jkun jeħtieġ li jitwassal għal stat aħdar fuq is-CI live.
Relazzjoni mar-rilaxx
/generate-releaseisejjaħ il-validazzjoni fil-Fażi 0 (pre-flight): jagħti baseline ġdid lid-DRIFT u jsewwi l-HARD qabel ma jiftaħ il-PR tar-rilaxx./review-prsjuża l-gate release-green fil-pass tad-deċiżjoni tal-merge (aħdar qabel il-merge).
L-għan tal-partijiet kollha huwa l-istess: PR tar-rilaxx aħdar mal-ewwel run tas-CI, minflok ma noqogħdu nsegwu riżultati ħomor f’saffi ta’ 40 minuta fil-jum tar-rilaxx.