flutter_restore 1.3.0
flutter_restore: ^1.3.0 copied to clipboard
Static compatibility scanner for legacy Flutter projects.
Changelog #
1.3.0 #
Added #
- Added the
plancommand:flutter_restore plan <path>renders an ordered, advisory migration plan built from scan findings. The plan is intentionally not an autofix, because regeneratingandroid/orios/can destroy custom native changes in legacy projects. - Added
MigrationPlan,MigrationStep, andMigrationRiskmodels with stable one-based step numbering,reason,affects, anddepends_onfields, plus an estimated risk level and a native customization indicator. - Added
MigrationPlanBuilderwith deterministic step ordering: Gradle infrastructure before the Flutter Gradle plugin migration, and the plugin migration before the Android embedding rewrite. - Added plain text and JSON plan renderers;
plansupports the same--jsonand--platformoptions asscan.
1.2.0 #
Added #
- Added dependency scanning:
pubspec.yamlandpubspec.lockare parsed into aDependencySnapshotwith environment constraints, direct and dev dependency constraints, resolved versions, sources, and lock SDK bounds. - Added lock consistency rules for stale
pubspec.lockfiles: constraint and locked version mismatches, dependencies missing from the lock, and stale lock entries for removed dependencies. - Added dependency SDK compatibility rules that report when declared dependencies require a newer Dart or Flutter SDK than the project environment allows, including per-package requirements such as "http 1.2.2 requires Dart >= 3.2.0".
- Added package conflict rules that flag known incompatible dependency pairs
(for example
intlversusflutter_localizations, or olddart_code_metricswith modernanalyzer). - Added package note rules for deprecated or discontinued packages such as
js,flutter_driver,pedantic, anddart_code_metrics. - Added a Dependencies section to plain text reports and a
dependenciessnapshot to JSON reports. - Added curated package compatibility tables to
CompatibilityDatathat can be extended per project throughRuleRunner(data: ...). - Added a project logo to the README.
Fixed #
- Fixed the
modern_flutterfixture lock file so it is consistent with its pubspec.
1.1.0 #
Added #
- Added
scan --platform all|android|ios|linux|windows|webto scope reports and rule evaluation to one platform or every supported platform. - Added Linux, Windows, and web project snapshots to
ProjectSnapshot. - Added Linux target structure checks for runner completeness, CMake minimum version, and GTK pkg-config wiring.
- Added Windows target checks for runner completeness, CMake minimum version,
legacy run loop files, version metadata wiring, dark title bar support, and
the Flutter 3.13 first-frame
ForceRedrawmigration. - Added web target checks for runner completeness, current bootstrap wiring,
<base href>, deprecatedloadEntrypoint, deprecatedserviceWorkerVersion, manual service worker registration, and incomplete customflutter_bootstrap.jsfiles. - Added a desktop migration rule for obsolete
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsiaworkarounds. - Added fixture coverage for modern Linux, Windows, and web targets.
- Added legacy desktop/web fixtures that exercise the new platform migration rules.
Changed #
- Split
rule_runner.dartinto Dartpartfiles for project-wide, Android, iOS, and platform-specific rules. - Updated plain text and JSON reports so selected platforms are reflected in both output formats.
- Reworked the README into a structured pub.flutter-io.cn-oriented format with table of contents, usage, supported platform, rule, report, and development sections.
1.0.1 #
Added #
- Added an iOS project snapshot alongside the Android snapshot.
- Added iOS compatibility findings for deployment targets, Podfile platform baselines, CocoaPods-only projects, mixed CocoaPods and SwiftPM dependency management, SwiftPM opt-out flags, and local plugin deployment target conflicts.
- Added iOS runner migration signals for missing or incomplete UIScene setup,
custom AppDelegate lifecycle code, manual
GeneratedPluginRegistrantcalls, legacy Flutter engine initialization, old Flutter build scripts, legacy Flutter.framework embedding, and legacy/custom Xcode build settings. - Added fixture coverage for legacy CocoaPods, modern SwiftPM, mixed dependency management, old deployment targets, missing UIScene configuration, and custom legacy AppDelegate projects.
Changed #
- Included iOS facts in plain text and JSON scan reports.
- Updated package metadata and refreshed locked dev dependency versions for the pub.flutter-io.cn release.
1.0.0 #
Initial stable release.
Added #
- Added
flutter_restore scan <path>CLI. - Added plain text and JSON compatibility reports.
- Added static scanning for Flutter, pub, and Android project files.
- Added compatibility findings for Gradle, Android Gradle Plugin, Java, SDK,
legacy Flutter Gradle integration,
.flutter-plugins, and Android v1 embedding signals. - Added fixture-based scanner, rule, and CLI test coverage.