Languages: English | 한국어 | 日本語 | 简体中文 | Español | Português (BR)
GetXDrop is a CLI-first migration workbench for legacy GetX-based Flutter apps.
It is not a one-click rewrite tool. It helps teams answer the two questions that matter first:
- What in this codebase is risky?
- What should we migrate first?
Today, GetXDrop focuses on doctor, audit, and report. It analyzes GetX usage, writes machine-readable artifacts, and turns that analysis into a migration report with route, network, controller, and finding-level planning context.
- Repository: github.com/curogom/getxdrop
- Issues: github.com/curogom/getxdrop/issues
- Discussions: github.com/curogom/getxdrop/discussions
- Latest release: GetXDrop v0.2.0
- Site: curogom.github.io/getxdrop
When a widely used package becomes uncertain, teams need a response path immediately.
GetXDrop is built for that first response window:
- inspect a real GetX app quickly
- surface migration hotspots without pretending the rewrite is trivial
- give teams enough structure to plan a staged move to
GoRouter + Dio + Riverpod 3
doctorfor project and toolchain validationauditfor GetX usage analysisreportfor markdown and JSON migration reports- optional
getxdrop.yamlproject config - default
summary.jsonartifact forauditandreport - compact stdout summaries for CI and PR logs
- hotspot ranking for files, controllers, route modules, categories, and subcategories
- route inventory
- network inventory
- controller complexity scoring
- explainable finding drill-down
- sample app regression coverage
- dedicated sample app CLI end-to-end flow coverage
- CI baseline for analyze and test
Not shipped in v0.2:
getxdrop scaffoldgetxdrop apply-safe- one-click full GetX migration
git clone https://github.com/curogom/getxdrop
cd getxdrop
fvm install && fvm use && fvm dart pub get
cd packages/cli
fvm dart run bin/getxdrop.dart audit \
--project ../../examples/sample_getx_app \
--out ../../build/getxdrop \
--format bothThen open:
build/getxdrop/inventory.jsonbuild/getxdrop/summary.jsonbuild/getxdrop/migration_report.jsonbuild/getxdrop/migration_report.md
Optional project config:
version: 1
audit:
include_test: false
ignore: []
output:
path: build/getxdrop
report:
format: bothPublic commands in v0.2:
getxdrop doctor
getxdrop audit
getxdrop reportDevelopment helpers from the repository root:
fvm dart run melos run analyze
fvm dart run melos run test
fvm dart run melos run audit:sampleDefault output directory: build/getxdrop
inventory.jsonAuditResultwire shape with top-levelschemaVersion,inventory, andparseFailuressummary.jsonCommandSummarywire shape with top-levelschemaVersion,command,project,status,exitCode,summary,riskSummary,categoryCounts,planningCounts, andtopHotspotsmigration_report.mdhuman-readable migration reportmigration_report.jsonProjectInventorywire shape with top-levelschemaVersion,project,summary,riskSummary,categories,routeInventory,networkInventory,controllerInventory,hotspotInventory,findingDrillDowns,recommendedOrder, andfindings
Schema policy:
- current
inventory.jsonschema version:1 - current
summary.jsonschema version:1 - current
migration_report.jsonschema version:1 - additive changes should prefer forward-compatible extension
- incompatible wire-shape changes must be called out explicitly in release notes and docs
getxdrop.yaml is optional and only loaded from the project root passed to the CLI.
- precedence:
CLI flags > getxdrop.yaml > built-in defaults output.pathis resolved relative to the project rootaudit.ignoremerges config values with CLI--ignorereport.formatsets the default format forgetxdrop reportauditkeeps its existing behavior: report artifacts are only written when--formatis provided
Blocking config problems are reported as exit code 2.
CLI runtime uses the dart and flutter available in PATH.
- verified Dart family:
3.11.x - verified Flutter family:
3.41.x - recommended Dart exact version:
3.11.4 - recommended Flutter exact version:
3.41.6
doctor behavior:
- verified-family patch drift is reported as
warnings: - unsupported family or missing tooling is reported as
issues: - blocking issues return exit code
2
Repository development remains pinned through fvm for reproducibility.
v0.2.x is GitHub-first.
- primary public home: GitHub repository
- primary release channel: GitHub Releases
- public site: GitHub Pages
- current package registry stance: not published to pub.dev yet
This is intentional: the current CLI depends on getxdrop_analyzer_core and getxdrop_report_core, so a future pub.dev release needs a package-level publication strategy for the dependency set, not just the executable wrapper.
doctor,audit,reportgetxdrop.yamlconfig support- stable artifacts:
inventory.json,summary.json,migration_report.* - hotspot ranking and top-hotspot summaries
- route / network / controller planning slices
- explainable finding drill-down
- compact CI / PR-friendly CLI summaries
scaffoldassistant forGoRouter + Dio + Riverpod 3apply-safedry-run-first rewrite candidates
- richer
explain,diff, andstatsworkflows - baseline compare and team-friendly CI integrations
packages/analyzer_core: audit engine and normalized inventory modelspackages/report_core: report rendererspackages/cli: CLI entrypointpackages/codemod_core: reserved future safe-apply contractspackages/templates: reserved future scaffold contractsexamples/sample_getx_app: fixture app for regression coveragesite/: static public landing pagedocs/: public roadmap, release, operations, and internal docs
Public project docs:
- docs/README.md
- docs/roadmap.md
- docs/master_plan.md
- docs/launch_kit.md
- docs/public_release_checklist.md
- docs/maintainer_operations.md
- docs/release_and_support_policy.md
- docs/distribution_strategy.md
- docs/github_launch_runbook.md
Internal design and implementation docs:
See: