fix(tooling): translate-docs-poort geeft exitcode dóór en wordt begrensd tot uitgebrachte talen #1342

Closed
brenno wants to merge 1 commit from claude/modest-gagarin-993395 into main
Owner

Vervolg op #1338, dat twee door de crash gemaskeerde zaken apart meldde. Getoetst tegen dart run tool/translate_docs.dart --check; echo exit=$?.

1. De poort gaf zijn oordeel niet door (bug)

main was Future<int>, maar Dart negeert een uit main teruggegeven int — het proces eindigde altijd 0, dus --check was een stille rooktest. Elk retourpad zet nu de globale exitCode (return exitCode = …): zowel de --check-tak als de return 2/return 1-paden.

2. De 270 ontbrekende varianten (besluit: begrenzen)

Besluit genomen (maintainer) om de poort begrensd te maken in plaats van 270 machinevertalingen af te dwingen. Docs zijn inhoud, en het vaste beleid is inhoud = nl+en, alleen de interface gaat naar alle app-talen; STUB=1 zou Engelse tekst als bv. Italiaans wegschrijven — een leugen tegen de lezer. Een nieuwe expectedDocLanguages ({nl}) legt vast welke talen de poort verplicht stelt; #1181's machinerie blijft opt-in, taal voor taal toe te voegen. De poort faalt nog wél hard op de twee echte regressies in élke taal: een variant op schijf die niet in pubspec.yaml geregistreerd staat, en een uitgesloten document (PRIVACY/SECURITY_DESIGN) dat toch vertaald werd.

Tests

De checklogica is nu een zuivere, geïnjecteerde functie (computeDocsCheck) met een DocsCheckOutcome; test/translate_docs_tool_test.dart toetst het hele contract, en een aparte test pint de exitcode-bedrading vast (draait het echte main in een tijdelijke werkboom, controleert de globale exitCode — rood vóór deze fix). make check-static groen.

Bewust nog open (geen bug)

translate-docs-check staat niet in $(STATIC_GATES) en wordt door geen CI-poort aangeroepen — hij bewaakt nu correct maar draait nergens automatisch. Hem in de statische poort hangen is een aparte beleidskeuze (elke PR draait hem dan) mét een CHECKS.md-rimpel, en wacht op een maintainer-besluit.

🤖 Generated with Claude Code

Vervolg op #1338, dat twee door de crash gemaskeerde zaken apart meldde. Getoetst tegen `dart run tool/translate_docs.dart --check; echo exit=$?`. ## 1. De poort gaf zijn oordeel niet door (bug) `main` was `Future<int>`, maar Dart negeert een uit `main` teruggegeven int — het proces eindigde altijd 0, dus `--check` was een stille rooktest. Elk retourpad zet nu de globale `exitCode` (`return exitCode = …`): zowel de `--check`-tak als de `return 2`/`return 1`-paden. ## 2. De 270 ontbrekende varianten (besluit: begrenzen) Besluit genomen (maintainer) om de poort **begrensd** te maken in plaats van 270 machinevertalingen af te dwingen. Docs zijn *inhoud*, en het vaste beleid is inhoud = nl+en, alleen de *interface* gaat naar alle app-talen; `STUB=1` zou Engelse tekst als bv. Italiaans wegschrijven — een leugen tegen de lezer. Een nieuwe `expectedDocLanguages` (`{nl}`) legt vast welke talen de poort verplicht stelt; #1181's machinerie blijft opt-in, taal voor taal toe te voegen. De poort faalt nog **wél hard** op de twee echte regressies in élke taal: een variant op schijf die niet in `pubspec.yaml` geregistreerd staat, en een uitgesloten document (PRIVACY/SECURITY_DESIGN) dat toch vertaald werd. ## Tests De checklogica is nu een zuivere, geïnjecteerde functie (`computeDocsCheck`) met een `DocsCheckOutcome`; `test/translate_docs_tool_test.dart` toetst het hele contract, en een aparte test pint de exitcode-bedrading vast (draait het echte `main` in een tijdelijke werkboom, controleert de globale `exitCode` — rood vóór deze fix). `make check-static` groen. ## Bewust nog open (geen bug) `translate-docs-check` staat **niet** in `$(STATIC_GATES)` en wordt door geen CI-poort aangeroepen — hij bewaakt nu correct maar draait nergens automatisch. Hem in de statische poort hangen is een aparte beleidskeuze (elke PR draait hem dan) mét een CHECKS.md-rimpel, en wacht op een maintainer-besluit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(tooling): translate-docs-poort geeft exitcode dóór en wordt begrensd tot uitgebrachte talen
All checks were successful
scans / scans (pull_request) Successful in 3m3s
static-gate / static-gate (pull_request) Successful in 6m3s
23ebf7ba8d
Vervolg op #1338, dat twee door de crash gemaskeerde zaken apart meldde.

1. De poort gaf zijn oordeel niet door. `main` was `Future<int>`, maar Dart
   negeert een uit `main` teruggegeven int: het proces eindigde altijd 0, dus
   `--check` was een stille rooktest in plaats van een inhoudscontrole. Elk
   retourpad zet nu de globale `exitCode` (`return exitCode = …`).

2. Besluit: de poort wordt begrensd, niet 270 machinevertalingen afgedwongen.
   Docs zijn inhoud, en het beleid is inhoud = nl+en, alleen de interface gaat
   naar alle app-talen; `STUB=1` zou Engels als een andere taal wegschrijven.
   Een nieuwe `expectedDocLanguages` ({nl}) legt vast welke talen verplicht
   zijn; #1181's machinerie blijft opt-in, taal voor taal. De poort faalt nog
   hard op de echte regressies in elke taal: een variant op schijf die niet in
   pubspec.yaml geregistreerd staat, en een vertaald uitgesloten document.

De checklogica is nu een zuivere, geïnjecteerde functie (`computeDocsCheck`)
met een `DocsCheckOutcome`; `test/translate_docs_tool_test.dart` toetst het
contract, en een aparte test pint de exitcode-bedrading vast (rood vóór de fix).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Author
Owner

Gesloten als duplicaat van #1341, dat al op main staat (merge 98f08a4f). Twee sessies pakten dezelfde follow-up parallel op. #1341 doet hetzelfde: main geeft de exitcode door, de check bewaakt consistentie voor de verscheepte talen (shippedDocLanguages = ['nl']) i.p.v. alle 31, en de poort hangt in STATIC_GATES.

Gesloten als duplicaat van #1341, dat al op `main` staat (merge 98f08a4f). Twee sessies pakten dezelfde follow-up parallel op. #1341 doet hetzelfde: `main` geeft de exitcode door, de check bewaakt consistentie voor de verscheepte talen (`shippedDocLanguages = ['nl']`) i.p.v. alle 31, en de poort hangt in `STATIC_GATES`.
brenno closed this pull request 2026-08-07 19:30:05 +00:00
All checks were successful
scans / scans (pull_request) Successful in 3m3s
Required
Details
static-gate / static-gate (pull_request) Successful in 6m3s
Required
Details

Pull request closed

Sign in to join this conversation.
No description provided.