[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9128":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},9128,"fvm","leoafarias\u002Ffvm","leoafarias","Flutter Version Management: A simple CLI to manage Flutter SDK versions.","https:\u002F\u002Ffvm.app",null,"Dart",5453,279,25,58,0,1,9,40,8,38.34,"MIT License",false,"main",true,[27,28,29,30,31,5,32],"cli","dart","flutter","flutter-releases","flutter-sdk-versions","sdk","2026-06-12 02:02:03","# fvm\n\n![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fleoafarias\u002Ffvm?style=for-the-badge&logo=GitHub&logoColor=black&labelColor=white&color=dddddd)\n[![Pub Version](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Ffvm?label=version&style=for-the-badge&logo=dart&logoColor=3DB0F3&labelColor=white&color=3DB0F3)](https:\u002F\u002Fpub.dev\u002Fpackages\u002Ffvm\u002Fchangelog)\n[![Pub Likes](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Flikes\u002Ffvm?style=for-the-badge&logo=dart&logoColor=3DB0F3&label=Pub%20Likes&labelColor=white&color=3DB0F3)](https:\u002F\u002Fpub.dev\u002Fpackages\u002Ffvm\u002Fscore)\n[![Pub Points](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fpoints\u002Ffvm?style=for-the-badge&logo=dart&logoColor=3DB0F3&label=Points&labelColor=white&color=3DB0F3)](https:\u002F\u002Fpub.dev\u002Fpackages\u002Ffvm\u002Fscore)\n[![All Contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fleoafarias\u002Ffvm?style=for-the-badge&color=018D5B&labelColor=004F32)](https:\u002F\u002Fgithub.com\u002Fleoafarias\u002Ffvm\u002Fgraphs\u002Fcontributors)\n[![MIT License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fleoafarias\u002Ffvm?style=for-the-badge&color=FF2E00&labelColor=CB2500)](https:\u002F\u002Fopensource.org\u002Flicenses\u002Fmit-license.php)\n![Codecov](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fleoafarias\u002Ffvm?style=for-the-badge&color=FFD43A&labelColor=F3BE00)\n[![Awesome Flutter](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fawesome-flutter-8A00CB?style=for-the-badge&color=8A00CB&labelColor=630092)](https:\u002F\u002Fgithub.com\u002FSolido\u002Fawesome-flutter)\n\nFVM 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.\n\n## Why FVM?\n\n- Need for simultaneous use of multiple Flutter SDKs.\n- SDK testing requires constant [channel](https:\u002F\u002Fgithub.com\u002Fflutter\u002Fflutter\u002Fwiki\u002FFlutter-build-release-channels) switching.\n- Channel switches are slow and need repeated reinstalls.\n- Difficulty managing the latest successful SDK version used in an app.\n- Flutter's major updates demand total app migration.\n- Inconsistencies occur in development environments within teams.\n\nFor more information, read the [Getting Started guide](https:\u002F\u002Ffvm.app\u002Fdocumentation\u002Fgetting-started).\n\n## Release Process (For Maintainers)\n\nFVM uses GitHub releases to trigger automated deployments across all platforms:\n\n### Creating a New Release\n\n1. **Ensure main branch is ready**\n   - All changes merged and tested\n   - Version will be set automatically from release tag\n\n2. **Create GitHub Release**\n   - Go to [GitHub Releases](https:\u002F\u002Fgithub.com\u002Fleoafarias\u002Ffvm\u002Freleases)\n   - Click \"Create a new release\"  \n   - Choose tag: `v4.0.0-beta.2` (follows semver with 'v' prefix)\n   - Write release notes in GitHub editor\n   - Click \"Publish release\"\n\n3. **Automated Deployment**\n   - [`release.yml`](.github\u002Fworkflows\u002Frelease.yml) triggers automatically\n   - Deploys to: pub.dev, GitHub binaries, Homebrew, Chocolatey, Docker\n   - Monitor progress in [Actions tab](https:\u002F\u002Fgithub.com\u002Fleoafarias\u002Ffvm\u002Factions)\n\n> **Dart SDK requirements:** Day-to-day development now targets the\n> repository SDK constraint (`>=3.6.0 \u003C4.0.0`). Release automation lives under\n> `tool\u002Frelease_tool\u002F` and requires Dart SDK `>=3.8.0`. CI pins this higher tool\n> chain via the `RELEASE_DART_SDK` environment variable (currently `3.9.0`) so\n> it matches the versions packaged for Homebrew and other installers.\n> If you run release tasks locally, switch to a Dart SDK `3.8.0` or newer\n> before executing commands from `tool\u002Frelease_tool\u002F`.\n\n### Emergency Releases\n\nFor hotfixes or emergency releases:\n1. **Update version manually** in `pubspec.yaml`\n2. **Use individual platform workflows** via manual dispatch:\n   - `deploy_homebrew.yml` for Homebrew updates\n   - `deploy_docker.yml` for Docker deployment\n   - Individual platform deployments as needed\n\nFor complete emergency deployment, create a GitHub release as normal.\n\nSee [Workflow Documentation](.github\u002Fworkflows\u002FREADME.md) for detailed information.\n\n## Contributors\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fleoafarias\u002Ffvm\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=leoafarias\u002Ffvm\" \u002F>\n\u003C\u002Fa>\n\n---\n\nCheckout Flutter Sidekick. [Read more about it here.](https:\u002F\u002Fgithub.com\u002Fleoafarias\u002Fsidekick)\n\n## Troubleshooting\n\nPlease view our [FAQ](https:\u002F\u002Ffvm.app\u002Fdocumentation\u002Fgetting-started\u002Ffaq).\n\n## License\n\nThis project is licensed under the MIT License; see [LICENSE](LICENSE) file for details.\n\n# FVM Version Format Testing Guide\n\nThis 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.\n\n## Test Script Overview\n\nThe `run_tests.sh` script automates the testing of various version formats with FVM. It:\n\n1. Creates a clean Flutter test environment\n2. Tests different version formats including:\n   - Channel versions (stable, beta, dev, master)\n   - Semantic versions (e.g., 2.10.0)\n   - Versions with 'v' prefix (e.g., v2.10.0)  \n   - Versions with channel specification (e.g., 2.10.0@beta)\n   - Fork specifications (e.g., custom-fork\u002Fstable)\n3. Validates error handling for invalid formats\n4. Reports test results\n\n## Running the Tests\n\nTo run the tests with standard output:\n\n```bash\n.\u002Frun_tests.sh\n```\n\nFor detailed debugging output:\n\n```bash\n.\u002Frun_tests.sh --verbose\n```\n\n## Tested Version Formats\n\nThe script tests the following version formats:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| Channel | `stable`, `beta` | Flutter release channels |\n| Semantic Version | `2.10.0` | Specific Flutter version |\n| V-prefixed Version | `v2.10.0` | Version with 'v' prefix |\n| Version with Channel | `2.10.0@beta` | Specific version from a channel |\n| V-prefixed with Channel | `v2.10.0@beta` | V-prefixed version from a channel |\n| Fork with Channel | `custom-fork\u002Fstable` | Fork with specified channel |\n\n## Error Cases\n\nThe script also validates proper rejection of invalid formats:\n\n- Invalid channel specification (`2.10.0@invalid`)\n- Custom build with channel (`custom_build@beta`)\n- Non-existent fork (`unknown-fork\u002Fstable`)\n\n## Test Results\n\nAfter running the tests, review the output to ensure all tests passed. If any failures occur, the script will provide details about what went wrong.\n\nFor a complete record of test outcomes, refer to the `TEST_RESULTS.md` file which may be generated after running the tests.\n\n## Prerequisites\n\n- Dart SDK must be installed and available in PATH\n- Flutter SDK must be installed and available in PATH\n- The script should be run from the `test\u002Ffixtures\u002Fsample_app` directory\n\n## Troubleshooting\n\nIf some tests are skipped, it may be because:\n\n1. The required Flutter versions are not installed\n2. The `list` command in the FVM implementation has issues\n\nIn these cases, the script will continue with available tests and provide warnings about what was skipped.\n","FVM 是一个用于管理 Flutter SDK 版本的命令行工具。它允许用户在项目间轻松切换不同的 Flutter 版本，无需重新安装，从而简化了新版本测试和团队内构建一致性维护的过程。该工具使用 Dart 语言编写，支持通过 CLI 快速操作，并且能够有效解决多版本共存、频繁切换通道带来的问题。适用于需要在同一台机器上管理多个 Flutter 项目的开发者，特别是那些经常需要测试不同版本或与团队成员保持开发环境一致性的场景。",2,"2026-06-11 03:21:22","top_language"]