FVM manages Flutter SDK versions per project. Switch between Flutter versions instantly without reinstalling, making it easy to test new releases and maintain consistent builds across your team.
- Need for simultaneous use of multiple Flutter SDKs.
- SDK testing requires constant channel switching.
- Channel switches are slow and need repeated reinstalls.
- Difficulty managing the latest successful SDK version used in an app.
- Flutter's major updates demand total app migration.
- Inconsistencies occur in development environments within teams.
For more information, read the Getting Started guide.
FVM uses GitHub releases to trigger automated deployments across all platforms:
-
Ensure main branch is ready
- All changes merged and tested
- Version will be set automatically from release tag
-
Create GitHub Release
- Go to GitHub Releases
- Click "Create a new release"
- Choose tag:
v4.0.0-beta.2(follows semver with 'v' prefix) - Write release notes in GitHub editor
- Click "Publish release"
-
Automated Deployment
release.ymltriggers automatically- Deploys to: pub.dev, GitHub binaries, Homebrew, Chocolatey, Docker
- Monitor progress in Actions tab
Dart SDK requirements: Day-to-day development now targets the repository SDK constraint (
>=3.6.0 <4.0.0). Release automation lives undertool/release_tool/and requires Dart SDK>=3.8.0. CI pins this higher tool chain via theRELEASE_DART_SDKenvironment variable (currently3.9.0) so it matches the versions packaged for Homebrew and other installers. If you run release tasks locally, switch to a Dart SDK3.8.0or newer before executing commands fromtool/release_tool/.
For hotfixes or emergency releases:
- Update version manually in
pubspec.yaml - Use individual platform workflows via manual dispatch:
deploy_homebrew.ymlfor Homebrew updatesdeploy_docker.ymlfor Docker deployment- Individual platform deployments as needed
For complete emergency deployment, create a GitHub release as normal.
See Workflow Documentation for detailed information.
Checkout Flutter Sidekick. Read more about it here.
Please view our FAQ.
This project is licensed under the MIT License; see LICENSE file for details.