Skip to content

Backfill-ul de articole păstrează engleza scrisă din panou

Vitalie requested to merge 57_backfill-english into develop

Backfill-ul promitea, în propriul antet și în pasul de CI de lângă el, că adaugă doar ro/ru care lipsesc și că nu atinge niciodată en. Scria valoarea compusă din fișierele-sursă întreagă.

Pentru un articol neatins e o operație fără efect — en din sursă și en din baza de date sunt același șir. Dar panoul scrie toate cele trei limbi (hyperhub-service.ts pune title/excerpt/heroImageAlt/blocks din cerere), deci un articol căruia i s-a rescris engleza din panou cât timp ro/ru încă lipseau își pierdea tăcut rescrierea la următorul seed, înlocuită cu textul original preluat prin scraping.

Decizia

Promisiunea devine adevărată în cod, nu se șterge din comentariu. en-ul rândului e purtat mai departe ori de câte ori există; doar limbile care lipsesc vin din sursă. Asta e regula casei peste tot în acest repo — „an admin's own upload survives", „an admin's own edit survives".

Rezumatul pe care un rând nu l-a avut niciodată se completează în continuare din sursă, en inclus: acolo nu există nimic al rândului de protejat, iar fără el articolul se servește fără descriere în nicio limbă.

en și ro/ru pot ajunge astfel să spună lucruri diferite — exact cum arată „traducerea nu a prins încă editarea". Nimic nu le împerechează la randare: resolveLocale întoarce valoarea unei singure limbi, întreagă.

Verificare

Pe o copie a bazei, cu un rând adus exact în forma care pierdea date — engleza rescrisă, rusa lipsă:

HyperhubArticle RO/RU backfill: 1 updated, 71 already complete
title.en = TITLU SCRIS DE ADMIN          <- pastrat
title.ru = Избавление от ишиаса...       <- adaugat din sursa
excerpt.en = REZUMAT SCRIS DE ADMIN      <- pastrat
excerpt.ru = Ишиас, характеризующийся... <- adaugat din sursa

A doua rulare: 0 updated, 72 already complete. Gaura de rezumat, testată separat pe același fișier, se umple în continuare în toate cele trei limbi.

npm run build cod 0, npm test 600 de teste trecute. .gitlab-ci.yml validat cu glab ci lint: valid.

Capcană de execuție

MR-ul atinge .gitlab-ci.yml, deci regula din workflow.rules nu îi dă pipeline deloc. Verificările de mai sus s-au rulat local. După fuziune se pornește un pipeline manual pe ramura țintă, ca să existe și butonul de seed.

Edited by Vitalie

Merge request reports