fluttercraft 0.3.3
fluttercraft: ^0.3.3 copied to clipboard
Cross-platform Flutter build CLI - Craft Your Flutter Builds with Precision.
0.3.3 - 2026-01-14 #
๐งน Cleanup #
- Removed
no_reviewConfiguration - No longer supported in YAML- Default behavior unchanged: Shows confirmation prompt by default
- Existing
no_reviewsettings in config files are ignored - Use CLI flags:
--review(force prompt),-y/--no-review(skip)
- Fixed
--no-confirmCLI flag usage (now Shorebird-only, removed from shouldReview logic) - Removed obsolete tests and fixtures
0.2.10 - 2025-12-30 #
๐ Critical Bug Fixes #
- Shorebird Build Argument Parsing - Fixed critical issue where Shorebird builds failed with "Missing argument for --build-name"
- Root cause: Using
runInShell: trueon Windows caused cmd.exe to mangle the--separator and arguments - Solution: Disabled shell execution for Shorebird commands to pass arguments directly to the process
- Added
runInShellparameter to ProcessRunner.run() with default for backward compatibility - Kept
'--'quoting in command display for Windows (per Shorebird docs), but execution uses unquoted array argument - Shorebird commands now execute correctly on Windows without shell interference
- Root cause: Using
0.2.4 - 2025-12-30 #
๐ Critical Bug Fixes #
- Edited Command Execution - Fixed critical bug where manually edited build commands were never executed
- Commands edited via
(e)dit commandoption were validated and displayed but ignored during execution - Code was rebuilding commands from config instead of using the edited version
- Now properly detects edited commands and executes them as provided by user
- Added
buildFromCommand()method in FlutterRunner for raw command execution - Shows "Final Command" section before execution so users see exactly what will run
- Commands edited via
โจ Enhancements #
-
Command Execution Transparency - Show final command immediately before execution
- Displays "(Custom edited command - not generated from config)" when applicable
- Logs whether command was manually edited by user in build log
- Helps users verify the exact command being executed
-
Improved dart_define_from_file Debugging - Enhanced validation and logging
- Shows both configured path and resolved absolute path
- Displays clear warning if file not found: "โ File not found!"
- Explains that missing file will not be included in build command
- Provides actionable guidance: "Create the file or update fluttercraft.yaml to fix this"
0.2.3 - 2025-12-30 #
๐ Bug Fixes #
- Shorebird Error Detection - Fixed false success reporting when Shorebird commands fail
- Now detects Shorebird error patterns ("Missing argument", "Usage: shorebird") even when exit code is 0
- Prevents misleading "BUILD COMPLETE" message when build actually failed
- Shows appropriate error message: "Build failed: Shorebird command error detected"
โจ Enhancements #
-
Command Edit Validation - Added validation when manually editing build commands
- Warns if
--build-nameis missing from Flutter arguments (after--) - Warns if
--build-numberis missing from Flutter arguments (after--) - Validates presence of
--separator for Shorebird commands - Helps prevent accidental removal of required flags when adding custom arguments
- Warns if
-
dart_define_from_file Visibility - Enhanced logging and validation
- Now displays
dart_define_from_filepath in build log and console output - Shows file existence status (โ or โ NOT FOUND) in console
- Displays source: "(from flavor)" or "(from defaults)" when flavor is active
- Validates file existence and warns if configured file is missing
- Helps users verify configuration is loaded correctly and catch missing files early
- Now displays
0.2.2 - 2025-12-22 #
๐ Bug Fixes #
- Shorebird Command Structure - Fixed incorrect
--separator placement in Shorebird commands- Corrected per official Shorebird documentation: only management flags (
--artifact,--no-confirm,--flutter-version) go before-- - All Flutter build flags (
--build-name,--build-number,--flavor,--target,--dart-define,--dart-define-from-file) now correctly placed after--separator - Removed duplicate flags that were appearing both before and after
-- - Before (incorrect):
shorebird release android --artifact=apk --build-name=1.0.0 -- --build-name=1.0.0 --dart-define=foo=bar - After (correct):
shorebird release android --artifact=apk --no-confirm --flutter-version=3.35.3 -- --build-name=1.0.0 --build-number=1 --dart-define-from-file=.env
- Corrected per official Shorebird documentation: only management flags (
0.2.1 - 2025-12-22 #
โจ New Features #
- Dual Config Loading - Support for both separate
fluttercraft.yamland embeddedpubspec.yamlconfiguration- Priority Chain:
fluttercraft.yaml(highest) โpubspec.yamlwithfluttercraft:section โ sensible defaults - Config Source Tracking: New
configSourcefield inAppContextshows where config was loaded from - No Auto-Generation: Tool works with intelligent defaults when no config exists - no file creation
- Embedded Config Example: Added
doc/examples/pubspec_embedded.yamlshowing how to embed config inpubspec.yaml
- Priority Chain:
โ ๏ธ BREAKING CHANGES #
-
Root Key Requirement: All config files (both
fluttercraft.yamland embedded) MUST now havefluttercraft:as root keyOld Format (No longer supported):
build_defaults: &build_defaults platform: aab build: <<: *build_defaultsNew Format (Required):
fluttercraft: build_defaults: &build_defaults platform: aab build: <<: *build_defaults
๐ Migration Guide #
Option 1: Auto-regenerate (Recommended)
fluttercraft gen -f
Option 2: Manual Update
- Add
fluttercraft:at the beginning of yourfluttercraft.yaml - Indent all existing content by 2 spaces
๐ ๏ธ Improvements #
- Clear Error Messages: Helpful error messages with migration guidance when root key is missing
- YAML Anchors: Continue to work correctly with the new indented structure
- Consistent Structure: Same format whether using separate file or embedded config
0.2.0 - 2025-12-22 #
๐จ UI Improvements #
- Rich CLI Output: Enhanced shell UI with colored borders, spinner animations, and better formatted tables.
- Improved Summary: Build summary now shows detailed information in a styled box.
๐ ๏ธ Fixes #
- Platform Handling: Replaced deprecated
buildTypewithplatforminternally. - Console Colors: Fixed potential crash with undefined colors in prompts.
- Validation: Added explicit validation for supported platforms (Mobile only for now).
0.1.9 - 2025-12-21 #
๐งน Housekeeping #
- Removed Legacy Config: Removed obsolete
.buildenvsystem and related documentation scripts (gen-buildenv.ps1,build.ps1,buildenv.base). - Documentation: Updated
doc/proj_structure.mdto accurately reflect the current project structure, including new core modules and tests.
0.1.8 - 2025-12-19 #
๐ Bug Fixes #
- Shorebird Integration: Fixed missing
--flutter-versionflag in Shorebird command generation when FVM is used. - Config UI: Fixed
info -vnot displayingdart_define_from_filewhen the dart define map is empty.
0.1.7 - 2025-12-19 #
โจ New Features #
- Run Aliases - Enhanced
runcommand:- Direct Execution - Run aliases directly in shell (e.g.
> my_alias) - Runtime Parameters - Support for
{0}(positional) and{key}(named) placeholders. - Preview - Shows command preview before execution
- Auto-list -
flc runlists available aliases
- Direct Execution - Run aliases directly in shell (e.g.
0.1.6 - 2025-12-18 #
โจ New Features #
- No Review Option - Added
no_reviewconfig and CLI flag to skip final build confirmationbuild --no-revieworbuild -yskips the "Do you want to proceed?" prompt- Configurable via
build.no_review: trueinfluttercraft.yaml
0.1.5 - 2025-12-18 #
๐ง Improvements #
- Output path - Changed default from
dist/to.fluttercraft/dist/ - Auto gitignore -
flc gennow adds.fluttercraft/to.gitignore - Console edge cases -
choose()now handles empty options and invalid defaultIndex
0.1.4 - 2025-12-17 #
โ ๏ธ Breaking: Renamed Flag #
should_add_dart_defineโshould_prompt_dart_define- Config-defined
global_dart_define+dart_definenow always apply to builds - Flag now only controls interactive prompting for custom dart-defines at build time
- Config-defined
โจ New Features #
- Interactive dart-define input - When
should_prompt_dart_define: true, prompts for customKEY=VALUEpairs during build - Always apply config dart-defines -
global_dart_defineanddart_definevalues are always included in build commands
๐ง Technical Changes #
- Removed conditional guards from
finalDartDefineandfinalDartDefineFromFilegetters - Added interactive input loop in
build_command.dart - Updated
gencommand template with new flag name
0.1.3 - 2025-12-17 #
๐ง Enhancements #
- Shell UI - Added
dart_define_from_filedisplay ininfo -vcommand- Shows file path in "Dart Define" section when configured
- Helps users understand where dart define values are sourced from
- Display format:
From File .env.prod(shown before individual defines)
0.1.2 - 2025-12-17 #
โจ New Features #
- dart_define_from_file support - Configure
--dart-define-from-fileparameter influttercraft.yaml- Global configuration in
build_defaults.dart_define_from_file - Flavor-specific overrides via
flavors.<flavor>.dart_define_from_file - Supports
.env,.env.dev,.jsonfile formats - Automatically included in build command
- Global configuration in
๐ง Updates #
- gen command - Updated
flc gento includedart_define_from_fileexamples in generated config - YAML structure - Added
dart_define_from_file: nullto build_defaults section
0.1.1 - 2025-12-16 #
โ ๏ธ Breaking: New YAML Structure #
build_defaultsanchor for inheritanceenvironmentssection (groups fvm, shorebird, bundletool)- Renamed flags:
use_*โshould_*
โจ New Features #
- Build Flavors - dev/staging/prod overrides
- Explicit Dart Define - global + flavor merging
- No Color Mode -
environments.no_color
See detailed changes for migration guide.
0.1.0 - 2025-12-15 #
โ ๏ธ Breaking Changes #
- Breaking: Renamed
auto_confirmโno_confirmin Shorebird config (update yourfluttercraft.yaml)
โจ New Features #
- Edit before build - Type
eat confirmation to modify the build command interactively - Reload command - Added
reload/rcommand in shell to hot-reload config from disk - Improved help - Updated help format with proper sections
๐ Bug Fixes #
- fix: Removed
--releaseflag from Shorebird builds (per official docs: "never add --release when using shorebird") - fix: Shorebird artifact now correctly derived from build type
๐ Documentation #
- Cleaner YAML format in generated
fluttercraft.yaml(comments above lines, no uppercase labels) - Added
@read-onlyannotation for derived config values
0.0.6 - 2025-12-15 - Initial Release #
Craft Your Flutter Builds with Precision
โจ Key Features #
- Interactive Shell - Continuous REPL for rapid development
- Streamlined Build Process - Build, version, and deploy in one flow
- Seamless Integrations - FVM, Shorebird, auto-determine versions and context
- Custom Command Aliases - Define reusable command sequences via
flc run <alias>
๐ฆ Installation #
# From pub.dev
dart pub global activate fluttercraft
# From binary
# Download fluttercraft.exe from releases
0.0.5 - 2025-12-15 #
- feat: Add BuildConfig for YAML-based project configuration, FVM integration, and update documentation and gitignore
- refactor: FlutterCraft (renamed ALL)
- fix: Complete rename to fluttercraft, also alias flb to flc
- fix: Auto-detect FVM Flutter version from
.fvmrc - fix: Auto-detect Shorebird app_id from
shorebird.yaml
0.0.4 - 2025-12-13 #
- New
gencommand - Generatefluttercraft.yamlwith--forceflag support - Smart defaults - CLI works without config file, reads from
pubspec.yaml - Warning banner - Shows message when
fluttercraft.yamlis missing
0.0.3 #
- Shell mode improvements
- Build logging enhancements
- Version management fixes
1.0.0 #
- Initial version.