Migreer file_picker 11 → 12 (ontgrendelt wakelock_plus 1.7 + flutter_secure_storage 11) #1739
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1739
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Achtergrond
file_picker 11is de sleutelafhankelijkheid die drie andere upgrades blokkeert. Dewin32-dependency zit in de weg:wakelock_plus >=1.6.1vereistwin32 ^6.0.1flutter_secure_storage >=11.0.0vereistwin32 ^6.0.1(viaflutter_secure_storage_windows ^4.2.2)file_picker >=8.3.3 <12.0.0vereistwin32 ^5.9.0file_picker 12migreert naarwin32 ^6.0.0, wat het conflict oplost. Eén migratie ontgrendelt dus drie packages tegelijk.Wat breekt in file_picker 12
Breaking changes
pickFiles()allowMultipledefault nutrue— wasfalse. Elke call-site die één bestand verwacht moet explicietallowMultiple: falsekrijgen, of migreren naar de nieuwepickFile()-methode.withDatadeprecated — gebruikPlatformFile.readAsBytes()na het picken.withReadStreamdeprecated — gebruikPlatformFile.readAsByteStream().readSequentialdeprecated.lockParentWindowdeprecated — gebruikWindowsOptions.lockParentWindow/LinuxOptions.lockParentWindow.cancelUploadOnWindowBlurdeprecated — gebruikWebOptions.cancelUploadOnWindowBlur.saveFile()fileNameenbytesnu required — wij geven deze al mee, dus dit zou geen probleem moeten zijn.Federated architectuur
file_picker 12is opgesplitst in federated packages (file_picker_platform_interface,android_file_picker,file_picker_darwin,file_picker_linux,windows_file_picker,file_picker_web). Dit zou transparant moeten zijn voor onze code.Call-sites die aangepast moeten worden
pickFiles()metwithData: true(6 call-sites in lib/)lib/services/image_service.dart(3 call-sites: regels 252, 272, 306)lib/widgets/editors/chart_editor.dart(regel 392)lib/widgets/shell/presentation_import_action.dart(regel 259, metallowMultiple: true)lib/services/file/file_service_import.dart(regel 582)lib/services/file/file_service_style_profile.dart(regel 414)lib/widgets/dialogs/seal_timestamp_dialog.dart(regel 226)lib/widgets/dialogs/settings_dialog.dart(regel 674)lib/widgets/dialogs/parts/settings_dialog_style_builder.dart(regel 651)lib/widgets/dialogs/openkat_server_report_dialog.dart(regel 512)pickFiles()zonderwithData(alleen.pathgebruikt)lib/services/file/file_service_import.dart(regel 596 — heeft wélwithData: true)saveFile()(al metfileName+bytes— zou moeten werken)lib/services/document_export_service.dart(regel 372)lib/services/file_service.dart(regels 258, 985)lib/services/file/file_service_style_profile.dart(regel 259)lib/services/file/file_service_package.dart(regel 56)lib/services/file/file_service_dossier.dart(regel 87)lib/services/export_service.dart(regels 274, 280)lib/widgets/dialogs/seal_timestamp_dialog.dart(regel 202)getDirectoryPath()(geen breaking changes verwacht)lib/widgets/dialogs/settings_dialog.dart(regel 1026)lib/widgets/dialogs/open_presentation_dialog.dart(regel 158)lib/widgets/dialogs/slide_finder_dialog.dart(regel 204)lib/widgets/dialogs/import_slides_dialog.dart(regel 108)lib/widgets/dialogs/parts/image_carousel_picker_actions.dart(regel 624)lib/widgets/shell/openkat_import_action_io.dart(regel 58)lib/widgets/dialogs/settings/openkat_integration_panel.dart(regel 233)lib/widgets/dialogs/openkat_server_report_dialog.dart(regel 525)lib/widgets/presentation/session_export.dart(regel 311)lib/widgets/dialogs/save_destination_dialog.dart(regel 89)lib/widgets/dialogs/presentation_import_queue_dialog.dart(regel 105)Tooling
tool/check_conventions.dart(regel 559-607) — heeft een check diewithData: truein de argumenten zoekt. Deze check moet mogelijk aangepast worden naar de nieuwereadAsBytes()-pattern.test/file_picker_extension_filter_test.dart— 7 matches, moet geüpdatet worden.Aanpak
file_picker: ^11.0.2→^12.0.0in pubspec.yamlwakelock_plus: ^1.5.2→^1.7.0in pubspec.yamlflutter_secure_storage: ^10.3.1→^11.0.0in pubspec.yamlflutter pub getuitpickFiles()call-sites bij:allowMultiple: falsetoe waar het ontbreekt (en single-file verwacht wordt)withData: truedoorPlatformFile.readAsBytes()na het pickentool/check_conventions.dartbij naar het nieuwe patternmake checkgroenGeschiedenis
Onderzocht tijdens #1736 (Flutter 3.47.1 upgrade). Toen afgevallen vanwege de API-wijzigingen die een aparte PR vereisten.