README.md
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.
For more information, read the Getting Started guide.
FVM uses GitHub releases to trigger automated deployments across all platforms:
Ensure main branch is ready
Create GitHub Release
v4.0.0-beta.2 (follows semver with 'v' prefix)Automated Deployment
release.yml triggers automaticallyDart 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:
pubspec.yamldeploy_homebrew.yml for Homebrew updatesdeploy_docker.yml for Docker deploymentFor 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.
This directory contains a testing environment for validating the Flutter Version Manager (FVM) version format handling. The tests focus on ensuring that all valid version formats are correctly parsed and applied, while invalid formats are properly rejected.
The run_tests.sh script automates the testing of various version formats with FVM. It:
To run the tests with standard output:
./run_tests.sh
For detailed debugging output:
./run_tests.sh --verbose
The script tests the following version formats:
| Format | Example | Description |
|---|---|---|
| Channel | stable, beta | Flutter release channels |
| Semantic Version | 2.10.0 | Specific Flutter version |
| V-prefixed Version | v2.10.0 | Version with 'v' prefix |
| Version with Channel | 2.10.0@beta | Specific version from a channel |
| V-prefixed with Channel | v2.10.0@beta | V-prefixed version from a channel |
| Fork with Channel | custom-fork/stable | Fork with specified channel |
The script also validates proper rejection of invalid formats:
2.10.0@invalid)custom_build@beta)unknown-fork/stable)After running the tests, review the output to ensure all tests passed. If any failures occur, the script will provide details about what went wrong.
For a complete record of test outcomes, refer to the TEST_RESULTS.md file which may be generated after running the tests.
test/fixtures/sample_app directoryIf some tests are skipped, it may be because:
list command in the FVM implementation has issuesIn these cases, the script will continue with available tests and provide warnings about what was skipped.