chore: upgrade 7 major dependencies with API migrations#194
Merged
Conversation
Ran flutter pub upgrade to bring all packages to latest within existing semver constraints (e.g. riverpod 3.1->3.3, drift 2.30->2.31, go_router 17.0->17.2, lints 6.0->6.1). Fixed use_null_aware_elements lint violations surfaced by lints 6.1.0 upgrade.
v12.4.0 calls NSProcessInfo.isiOSAppOnVision which is unavailable in Xcode 16.2's SDK, causing a compile error on iOS. Pin back to 12.3.0 via dependency_overrides until upstream fixes the availability guard.
Upgrade major versions: - file_picker 10.x -> 11.x (FilePicker.platform removed, use static methods) - flutter_local_notifications 18.x -> 21.x (positional -> named params) - flutter_contacts 1.x -> 2.x (static -> sub-API pattern) - desktop_drop 0.4.x -> 0.7.x (XFile -> DropItem) - googleapis 15.x -> 16.x - native_exif 0.6.x -> 0.7.x - timezone 0.10.x -> 0.11.x
Contributor
There was a problem hiding this comment.
Pull request overview
Upgrades 7 direct dependencies with major version bumps (plus a device_info_plus pin) and migrates the codebase to the new breaking APIs across file picking, local notifications, contacts access, and desktop drag-and-drop.
Changes:
- Migrated
file_pickerusage fromFilePicker.platform.*to the new staticFilePicker.*API across import/export flows. - Updated
flutter_local_notificationscalls to named parameters and refreshed platform plugin registration/artifacts. - Migrated contacts import flow to
flutter_contactsv2 sub-APIs and updated desktop drop tests todesktop_drop’sDropItemFile.
Reviewed changes
Copilot reviewed 18 out of 21 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| windows/flutter/generated_plugins.cmake | Adds the Windows notifications plugin to the generated FFI plugin list. |
| test/shared/widgets/global_drop_target_test.dart | Updates desktop_drop test scaffolding from XFile to DropItemFile. |
| pubspec.yaml | Bumps major dependency versions and pins device_info_plus via dependency_overrides. |
| pubspec.lock | Updates locked versions/checksums for upgraded dependencies (incl. new transitive deps). |
| macos/Podfile.lock | Updates CocoaPods lockfile for upgraded plugins (incl. flutter_contacts). |
| macos/Flutter/GeneratedPluginRegistrant.swift | Registers flutter_contacts plugin for macOS. |
| lib/features/universal_import/presentation/providers/universal_import_providers.dart | Migrates import pickers to FilePicker.pickFiles(...). |
| lib/features/settings/presentation/providers/export_providers.dart | Migrates backup export/import pickers to new FilePicker.* APIs. |
| lib/features/settings/presentation/providers/debug_log_providers.dart | Migrates debug log save dialog to FilePicker.saveFile(...). |
| lib/features/dive_import/presentation/providers/uddf_import_providers.dart | Migrates UDDF import picker to FilePicker.pickFiles(...). |
| lib/features/buddies/presentation/widgets/buddy_list_content.dart | Migrates contact import to FlutterContacts.permissions + FlutterContacts.native.showPicker(). |
| lib/features/backup/presentation/pages/backup_settings_page.dart | Migrates backup save/import/directory pickers to FilePicker.* APIs. |
| lib/core/services/notification_service.dart | Migrates notifications initialization/scheduling/show/cancel to new named-parameter APIs. |
| lib/core/services/export/uddf/uddf_full_export_service.dart | Migrates UDDF export save dialog to FilePicker.saveFile(...). |
| lib/core/services/export/shared/file_export_utils.dart | Migrates image/PDF save dialogs to FilePicker.saveFile(...). |
| lib/core/services/export/pdf/pdf_export_service.dart | Migrates PDF export save dialog to FilePicker.saveFile(...). |
| lib/core/services/export/kml/kml_export_service.dart | Migrates KML export save dialog to FilePicker.saveFile(...). |
| lib/core/services/export/excel/excel_export_service.dart | Migrates Excel export save dialog to FilePicker.saveFile(...). |
| lib/core/services/export/csv/csv_export_service.dart | Migrates CSV export save dialogs to FilePicker.saveFile(...). |
| lib/core/services/database_location_service.dart | Migrates directory picker to FilePicker.getDirectoryPath(...). |
| ios/Podfile.lock | Updates CocoaPods lockfile checksums for upgraded plugins. |
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
flutter_local_notifications 21.x requires desugar_jdk_libs >= 2.1.4 but the project had 2.0.4, causing Android build failure.
Add MockFilePickerPlatform to exercise FilePicker.saveFile/pickFiles code paths across CSV, Excel, KML, and file_export_utils services. Rename _xFileFromBytes to _dropItemFromBytes in drop target test to match the desktop_drop 0.7.x DropItem type.
Re-export FilePickerPlatform from mock_file_picker_platform.dart so test files avoid direct dependency on file_picker's internal src/ path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrade 7 direct dependencies with major version bumps, migrating all breaking API changes. Pins
device_info_plusto 12.3.0 to work around an Xcode 16.2 compile error.Follows up on #192 which upgraded 66 packages within existing constraints.
Changes
file_picker10.x -> 11.x:FilePicker.platform.method()->FilePicker.method()(static API)flutter_local_notifications18.x -> 21.x: positional -> named parameters forshow,zonedSchedule,cancel,initializeflutter_contacts1.x -> 2.x: monolithic API -> sub-API pattern (permissions,native)desktop_drop0.4.x -> 0.7.x:XFile->DropItemtype in testsgoogleapis15.x -> 16.x (no API changes)native_exif0.6.x -> 0.7.x (no API changes)timezone0.10.x -> 0.11.x (no API changes)device_info_plusto 12.3.0 viadependency_overrides(v12.4.0 callsNSProcessInfo.isiOSAppOnVisionwhich is unavailable in Xcode 16.2)Test Plan
flutter testpasses (6,286 tests, 0 failures)flutter analyzepasses (0 issues)Screenshots
N/A - no UI changes