FLUTTER ECOSYSTEM

leoafarias/fvm

Flutter 版本管理:一个简单的命令行工具,用于管理 Flutter SDK 版本。

fvm 项目封面
Stars
5523
Forks
285
最近推送(UTC)
2026年9月11日
项目状态
未归档
Leo Farias GitHub avatar
GITHUB User

Leo Farias ↗

Hack to the Future! Flutter & Dart GDE / Founder

@conceptadev Orlando, FL
语言DartShellPythonPowerShellDockerfileRuby

技术话题

此仓库发布的插件

使用的依赖

依赖清单 35 项

所在榜单

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

展开 / 收起项目 README

fvm

GitHub stars Pub Version Pub Likes Pub Points All Contributors MIT License Codecov Awesome Flutter

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.

Why FVM?

  • 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.

Release Process (For Maintainers)

FVM uses GitHub releases to trigger automated deployments across all platforms:

Creating a New Release
  1. Ensure main branch is ready

    • All changes merged and tested
    • Version will be set automatically from release tag
  2. 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"
  3. Automated Deployment

    • release.yml triggers 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 under tool/release_tool/ and requires Dart SDK >=3.8.0. CI pins this higher tool chain via the RELEASE_DART_SDK environment variable (currently 3.9.0) so it matches the versions packaged for Homebrew and other installers. If you run release tasks locally, switch to a Dart SDK 3.8.0 or newer before executing commands from tool/release_tool/.

Emergency Releases

For hotfixes or emergency releases:

  1. Update version manually in pubspec.yaml
  2. Use individual platform workflows via manual dispatch:
    • deploy_homebrew.yml for Homebrew updates
    • deploy_docker.yml for Docker deployment
    • Individual platform deployments as needed

For complete emergency deployment, create a GitHub release as normal.

See Workflow Documentation for detailed information.

Contributors

https://contrib.rocks/image?repo=leoafarias/fvm

Checkout Flutter Sidekick. Read more about it here.

Troubleshooting

Please view our FAQ.

License

This project is licensed under the MIT License; see LICENSE file for details.