Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Converts the scripts to be Dart scripts instead, so they can be more cross platform and more maintainable by the Flutter team (no more powershell, for instance).
Also adds tests for the scripts.
Fixes #45
Summary of Changes
This pull request undertakes a significant refactoring effort by migrating the project's build, versioning, and local update scripts from various shell languages to Dart. The primary goal is to enhance the scripts' cross-platform compatibility and ease of maintenance for the Flutter team. This change involves the removal of old shell scripts and the introduction of new, well-structured Dart equivalents, complete with a dedicated utility layer and unit tests to ensure reliability.
Highlights
build_release.dartfor creating release archives,bump_version.dartfor updating project versions, andupdate_local.dartfor managing local installations.utils.dartfile provides shared functionalities and aScriptContextfor dependency injection, significantly enhancing the testability of the scripts. Unit tests for the new Dart scripts have also been added.Changelog
gemini-extension.jsonandCHANGELOG.md.gemini-extension.jsonandCHANGELOG.md.ScriptContextfor dependency injection,ExitExceptionfor controlled exits, and helper functions for finding the repository root, getting platform info, and running/capturing process output.BuildReleaseCommand,BumpVersionCommand, andUpdateLocalCommandusing mock file systems and process managers.