Windows flutter-test op de spiegel: resterende ~20 portabiliteitsfouten (git-op-Windows, SBOM-CRLF, trash, ref-herschrijving) #880

Closed
opened 2026-07-26 09:46:34 +00:00 by brenno · 1 comment
Owner

Context

De Windows-flutter test-leg in .github/workflows/ci.yml draaide op de GitHub-spiegel nog nóóit (de build strandde altijd eerder). Na de windows-2022-pin bleek een achterstand van 78 portabiliteitsfouten. Op branch fix/spiegel-ci-windows-2022 zijn er ~58 weggewerkt (pad-normalisatie in tests + check-tools, Windows file-locking, CRLF, een tool-padbug in pack_web_release, image_usage-targets). Dit issue dekt de resterende ~20 — de harde kern die een Windows-machine of gerichte code-fix vraagt en niet blind (alleen via de ~19-min CI-lus) verantwoord te repareren is.

Verificatie

Alleen via de mirror-CI (Windows-job) of een echte Windows-machine. macOS/Linux draaien deze tests groen.

De resterende clusters

Harde kern — waarschijnlijk echte platformvragen

  • git-op-Windows (~15): git_cli (ProcessException: The parameter is incorrect, process_win.cc:577 — subprocesaanroep faalt), git_native_cert_pin, git_network_guard, git_forge_contract, git_deck_mirror_contract. Vermoedelijk een echte beperking van de native git-CLI-wrapper op Windows (argument-/padverwerking in Process.start), of de tests vragen een andere git-configuratie. Dit is waar de git-opslagfunctie Windows raakt — diagnose op een echte Windows-machine.
  • sbom (1): git checkt op Windows uit met , wat de inhouds-hashes in de SBOM verandert t.o.v. de met gegenereerde, gecommitte SBOM. Fix: waarschijnlijk .gitattributes die LF forceert voor de gehashte bronbestanden (of normalisatie in tool/), niet een testregel.
  • trash (3): verplaatsing naar de prullenbak geeft false op Windows — mogelijk echte verplaats-/rename-semantiek of padverwerking in de trash-service.

Format-nabij — mogelijk echte bug, langs de bewaker

  • image_reference_service (1) + slide_dedup_dialogs (2): het herschrijven van ![](…)-verwijzingen kan op Windows \-scheidingen produceren (via p.join). Als dat zo is, is het een échte formaatbug — verwijzingen in de .md moeten / blijven voor portabiliteit. Fix: p.posix gebruiken voor het pad in de herschrijving. Raakt het bestandsformaat → langs de bewaker vóór het landt.

Ongeclassificeerd — waarschijnlijk snelle test-fixes

  • duplicate_cleanup_dialog (1), import_note_l10n (1), image_service_coverage (3): nog niet uitgezocht; vermoedelijk pad-/platformkanaal-issues in de test, snel weg te werken.

Aanpak

Het patroon voor de mechanische gevallen staat in de commits van fix/spiegel-ci-windows-2022: verwachtingen door p.normalize, of de finder/vergelijking via dezelfde p.join/p.posix als de code. De harde kern (git, sbom, trash) verdient een Windows-machine i.p.v. blind gokken via CI.

Zie ook

  • Branch met de ~58 fixes + de windows-2022-pin: fix/spiegel-ci-windows-2022
  • Gerelateerd: de dartcv4-migratie #870 (schrapt de windows-2022-pin).
## Context De Windows-`flutter test`-leg in `.github/workflows/ci.yml` draaide op de GitHub-spiegel nog nóóit (de build strandde altijd eerder). Na de `windows-2022`-pin bleek een achterstand van **78** portabiliteitsfouten. Op branch **`fix/spiegel-ci-windows-2022`** zijn er **~58 weggewerkt** (pad-normalisatie in tests + check-tools, Windows file-locking, CRLF, een tool-padbug in `pack_web_release`, image_usage-targets). Dit issue dekt de **resterende ~20** — de harde kern die een Windows-machine of gerichte code-fix vraagt en niet blind (alleen via de ~19-min CI-lus) verantwoord te repareren is. ## Verificatie Alleen via de mirror-CI (Windows-job) of een echte Windows-machine. macOS/Linux draaien deze tests groen. ## De resterende clusters ### Harde kern — waarschijnlijk echte platformvragen - **git-op-Windows (~15):** `git_cli` (`ProcessException: The parameter is incorrect`, process_win.cc:577 — subprocesaanroep faalt), `git_native_cert_pin`, `git_network_guard`, `git_forge_contract`, `git_deck_mirror_contract`. Vermoedelijk een echte beperking van de native git-CLI-wrapper op Windows (argument-/padverwerking in `Process.start`), of de tests vragen een andere git-configuratie. Dit is waar de git-opslagfunctie Windows raakt — diagnose op een echte Windows-machine. - **`sbom` (1):** git checkt op Windows uit met ` `, wat de inhouds-hashes in de SBOM verandert t.o.v. de met ` ` gegenereerde, gecommitte SBOM. Fix: waarschijnlijk `.gitattributes` die LF forceert voor de gehashte bronbestanden (of normalisatie in `tool/`), niet een testregel. - **`trash` (3):** verplaatsing naar de prullenbak geeft `false` op Windows — mogelijk echte verplaats-/rename-semantiek of padverwerking in de trash-service. ### Format-nabij — mogelijk echte bug, langs de bewaker - **`image_reference_service` (1) + `slide_dedup_dialogs` (2):** het herschrijven van `![](…)`-verwijzingen kan op Windows `\`-scheidingen produceren (via `p.join`). Als dat zo is, is het een échte formaatbug — verwijzingen in de `.md` moeten `/` blijven voor portabiliteit. Fix: `p.posix` gebruiken voor het pad in de herschrijving. **Raakt het bestandsformaat → langs de bewaker vóór het landt.** ### Ongeclassificeerd — waarschijnlijk snelle test-fixes - **`duplicate_cleanup_dialog` (1), `import_note_l10n` (1), `image_service_coverage` (3):** nog niet uitgezocht; vermoedelijk pad-/platformkanaal-issues in de test, snel weg te werken. ## Aanpak Het patroon voor de mechanische gevallen staat in de commits van `fix/spiegel-ci-windows-2022`: verwachtingen door `p.normalize`, of de finder/vergelijking via dezelfde `p.join`/`p.posix` als de code. De harde kern (git, sbom, trash) verdient een Windows-machine i.p.v. blind gokken via CI. ## Zie ook - Branch met de ~58 fixes + de windows-2022-pin: `fix/spiegel-ci-windows-2022` - Gerelateerd: de dartcv4-migratie #870 (schrapt de windows-2022-pin).
Author
Owner

Voortgang (PR #883, gemerged): de niet-git-portabiliteit is weg. Twee echte formaatbugs (beeldpaden met \ de .md in op Windows → nu posix /), .gitattributes eol=lf voor de SBOM-hashes + CRLF-controles, en trash/duplicate_cleanup op Windows overgeslagen (geen Recycle Bin-ondersteuning).

Wat resteert (~15 fouten = de git-cluster): git_cli, git_native_cert_pin, git_network_guard, git_forge_contract, git_deck_mirror_contract. Oorzaak: NativeGitCli._spawn gebruikt includeParentEnvironment: false + een hardened env (bewust, tegen tokenlek via GIT_TRACE, §10.2). Op Windows laat dat git zonder PATH/SystemRoot achter → ProcessException: The parameter is incorrect. De fix (Windows-essentiële env-vars aan _hardenedEnv toevoegen zónder de controle te verzwakken) hoort op een echte Windows-machine met security-review, niet blind via de CI-lus.

**Voortgang (PR #883, gemerged):** de niet-git-portabiliteit is weg. Twee echte formaatbugs (beeldpaden met `\` de `.md` in op Windows → nu posix `/`), `.gitattributes` `eol=lf` voor de SBOM-hashes + CRLF-controles, en trash/duplicate_cleanup op Windows overgeslagen (geen Recycle Bin-ondersteuning). **Wat resteert (~15 fouten = de git-cluster):** `git_cli`, `git_native_cert_pin`, `git_network_guard`, `git_forge_contract`, `git_deck_mirror_contract`. Oorzaak: `NativeGitCli._spawn` gebruikt `includeParentEnvironment: false` + een hardened env (bewust, tegen tokenlek via `GIT_TRACE`, §10.2). Op Windows laat dat `git` zonder `PATH`/`SystemRoot` achter → `ProcessException: The parameter is incorrect`. De fix (Windows-essentiële env-vars aan `_hardenedEnv` toevoegen zónder de controle te verzwakken) hoort op een echte Windows-machine met security-review, niet blind via de CI-lus.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#880
No description provided.