Migreer opencv_core -> dartcv4 2.x (native assets) en schrap de windows-2022-pin #870

Closed
opened 2026-07-26 08:18:36 +00:00 by brenno · 0 comments
Owner

Doel

Migreer opencv_core -> dartcv4 2.x zodat de Windows-CI op windows-latest bouwt en de windows-2022-pin uit ci.yml én release.yml (#788) weg kan.

Waarom

opencv_core is teruggetrokken voor Flutter >= 3.38 (wij draaien 3.44.7) en zijn voorgebouwde OpenCV-pack gaat niet samen met de nieuwste MSVC — de oorzaak van de falende Windows-CI. dartcv4 2.2.1 levert een pack dat wel bij nieuwere MSVC past. Het #788-commentaar noemt precies dit als de eindoplossing van de pin.

Al bewezen (branch fix/windows-opencv-dartcv4, op origin + mirror)

  • flutter build windows slaagt op windows-latest (op de mirror geverifieerd) — dit repareert Windows echt.
  • flutter build web slaagt: native assets worden correct overgeslagen voor web.
  • dart analyze schoon: de Dart-API is identiek (FaceDetectorYN, imdecode, resize, Mat, MatType); alleen de import in lib/services/privacy/image_face_scan_io.dart wijzigt.
  • flutter build macos produceert de native lib.

Wat nog moet (native-assets-nasleep — de reden dat dit geen kale bump is)

dartcv4 2.x is geen FFI-plugin meer maar levert OpenCV via native-assets build-hooks (hook/build.dart, hooks/record_use in de lockfile). Gevolgen:

  1. CMake overal. De hook draait CMake bij élke flutter build/flutter test. Nodig op de CI-jobs (web-hardening, gate, matrix installeren nu geen cmake) én op de dev-machine. De native_toolchain_cmake-resolver weigerde de Android-SDK-cmake ("cmake version=latest niet gevonden"); zonder een geaccepteerde cmake breken lokaal make check en make sbom.
  2. Padnamen gewijzigd. macOS-framework heet nu dartcv.framework (was DartCvMacOS.framework); libs landen onder build/native_assets/<os>/ (bv. build/native_assets/macos/libdartcv.dylib). Werk de DARTCV_LIB-zoektocht in de Makefile en de build-stappen in ci.yml bij.
  3. Dekkingsvraag. De detectietests laden de native laag niet vanzelf onder flutter test (run <1s, "native niet beschikbaar"), en dartcv4 2.x lijkt DARTCV_LIB_PATH niet meer te honoreren (probeerde te herbouwen via de hook). Bepaal hoe het native detectiepad in CI gedekt blijft.
  4. SBOM regenereren (make sbom) en sbom/ mee committen (dep-wijziging).
  5. Als het werkt: schrap de windows-2022-pin in ci.yml (deze PR) én release.yml (#788).

Context

De pin (ci.yml + release.yml) is de gedocumenteerde noodgreep die dit issue vervangt. Branch met het bewezen werk: fix/windows-opencv-dartcv4.

## Doel Migreer `opencv_core` -> `dartcv4 2.x` zodat de Windows-CI op `windows-latest` bouwt en de `windows-2022`-pin uit **ci.yml** én **release.yml** (#788) weg kan. ## Waarom `opencv_core` is teruggetrokken voor Flutter >= 3.38 (wij draaien 3.44.7) en zijn voorgebouwde OpenCV-pack gaat niet samen met de nieuwste MSVC — de oorzaak van de falende Windows-CI. `dartcv4 2.2.1` levert een pack dat wel bij nieuwere MSVC past. Het #788-commentaar noemt precies dit als de eindoplossing van de pin. ## Al bewezen (branch `fix/windows-opencv-dartcv4`, op origin + mirror) - `flutter build windows` slaagt op **windows-latest** (op de mirror geverifieerd) — dit repareert Windows echt. - `flutter build web` slaagt: native assets worden correct overgeslagen voor web. - `dart analyze` schoon: de Dart-API is identiek (`FaceDetectorYN`, `imdecode`, `resize`, `Mat`, `MatType`); alleen de import in `lib/services/privacy/image_face_scan_io.dart` wijzigt. - `flutter build macos` produceert de native lib. ## Wat nog moet (native-assets-nasleep — de reden dat dit geen kale bump is) `dartcv4 2.x` is geen FFI-plugin meer maar levert OpenCV via **native-assets build-hooks** (`hook/build.dart`, `hooks`/`record_use` in de lockfile). Gevolgen: 1. **CMake overal.** De hook draait CMake bij élke `flutter build`/`flutter test`. Nodig op de CI-jobs (web-hardening, gate, matrix installeren nu geen cmake) én op de dev-machine. De `native_toolchain_cmake`-resolver weigerde de Android-SDK-cmake ("cmake version=latest niet gevonden"); zonder een geaccepteerde cmake breken lokaal `make check` en `make sbom`. 2. **Padnamen gewijzigd.** macOS-framework heet nu `dartcv.framework` (was `DartCvMacOS.framework`); libs landen onder `build/native_assets/<os>/` (bv. `build/native_assets/macos/libdartcv.dylib`). Werk de `DARTCV_LIB`-zoektocht in de **Makefile** en de build-stappen in **ci.yml** bij. 3. **Dekkingsvraag.** De detectietests laden de native laag niet vanzelf onder `flutter test` (run <1s, "native niet beschikbaar"), en `dartcv4 2.x` lijkt `DARTCV_LIB_PATH` niet meer te honoreren (probeerde te herbouwen via de hook). Bepaal hoe het native detectiepad in CI gedekt blijft. 4. **SBOM** regenereren (`make sbom`) en `sbom/` mee committen (dep-wijziging). 5. Als het werkt: **schrap de `windows-2022`-pin** in ci.yml (deze PR) én release.yml (#788). ## Context De pin (ci.yml + release.yml) is de gedocumenteerde noodgreep die dit issue vervangt. Branch met het bewezen werk: `fix/windows-opencv-dartcv4`.
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#870
No description provided.