dartdosh 0.2.8
dartdosh: ^0.2.8 copied to clipboard
A powerful Flutter build CLI tool with automatic version management, smart file naming, and personalized experience
0.2.8 #
Features #
- π Shorter File Names: Build files now use short environment names instead of full names
- π― Clean Naming: Files are named as
{shortEnv}_{version}_{buildNumber}.{ext}(e.g.,prod_1.0.9_2155.apk) - β¨ Consistent Format: All flavor builds follow the same compact naming pattern
Changes #
- Environment name mapping:
productionβprod,developmentβdev,stagingβstg - Removed target name from flavor build file names for cleaner output
- File extension indicates the type (
.apk,.ipa,.aab)
Examples #
Before:
apk_production_1.0.9_2155.apk
ipa_staging_2.0.0_12.ipa
After:
prod_1.0.9_2155.apk
stg_2.0.0_12.ipa
Split APKs:
prod_1.0.9_2155_arm64-v8a.apk
prod_1.0.9_2155_armeabi-v7a.apk
0.2.7 #
Changes #
- π§ Default Behavior Update:
auto_increment_build_numbernow defaults tofalse - π Documentation Update: All docs updated to reflect new default behavior
- βοΈ Opt-in Version Management: Users must explicitly enable auto increment by setting config to
true
Rationale #
- Prevents unexpected version changes
- Gives users explicit control over version management
- More predictable default behavior
0.2.6 #
Features #
- π― Better Config Creation UX: When build_config.json doesn't exist, it's created and opened in IDE
- π Smart Config Workflow: Execution stops after config creation, prompting user to review and re-run
- βοΈ Optional Build Number Increment: Added
auto_increment_build_numberboolean field in config (default: false)
Changes #
- Config file now automatically opens in default IDE when created
- Added
buildConfigCreatedLogType with instructions to review config and re-run - Build number increment is now disabled by default, can be enabled by setting
auto_increment_build_number: true - Execution stops after config creation instead of continuing with build
Configuration #
{
"language": "uz",
"auto_increment_build_number": false, // New field (default: false)
"output_path": "~/Desktop/dartdosh-builds",
...
}
Examples #
# First run - creates config and stops
dartdosh build apk --production
# Output: Config created, opened in IDE, asks to re-run
# Second run - proceeds with build
dartdosh build apk --production
# Output: Normal build process (version not incremented by default)
# Enable auto increment in config
"auto_increment_build_number": true
# Build runs with version increment
0.2.5 #
Features #
- π¦ File Management for All Builds: Files are now renamed and moved to output_path even without environment flags
- π― Consistent Output: Both flavor and plain builds get organized file naming
Changes #
- Non-environment builds now rename files to
{target}_{version}_{buildNumber}format - Files are moved to output_path regardless of environment flag presence
- Only version increment is skipped for non-environment builds
- File organization works for all build types
Examples #
# With environment - increments version, renames: apk_production_1.2.3_46.apk
dartdosh build apk --production
# Without environment - no version increment, renames: apk_1.2.3_46.apk
dartdosh build apk
0.2.4 #
Features #
- π― Optional Environment: Environment flags are now optional - run plain Flutter commands without flavors
- π§ Flexible Builds: Use
dartdosh build apkfor simple builds without version management - π¦ Smart Behavior: Version increment and file renaming only happen when environment is specified
Changes #
- Environment parameter is now nullable in CLI and BuildManager
- When no environment specified, runs plain
flutter build <target>command - Build number increment only happens for flavor builds (when environment is specified)
- File renaming/moving only occurs for flavor builds
- Default environment display shows "default" in logs when no environment provided
Examples #
# With environment (flavor build) - increments version, renames files
dartdosh build apk --production
dartdosh build apk -p
# Without environment (plain Flutter build) - no version management
dartdosh build apk
dartdosh build ipa --release
0.2.3 #
Features #
- β οΈ Language Validation: Unsupported languages now show warning and fallback to English
- π Comprehensive Documentation: Updated README with detailed language support, flag variants, and examples
- π Language Configuration Guide: Clear documentation on how to set and use language preferences
Changes #
- Added language validation in
Logger.setLanguage()with user-friendly warning - Unsupported languages automatically fallback to English with informative message
- Updated README with multi-language examples in Uzbek and English
- Documented all environment flag variants (
-p,-prod,-d,-dev,-s) - Added language support notes and behavior documentation
Documentation #
- Added multi-language support section with examples
- Documented all short flag variants for environments
- Added language fallback behavior explanation
- Improved configuration examples with language field
- Added comprehensive feature descriptions
0.2.2 #
Features #
- π Localized Progress Bar: Progress bar tasks now translate according to selected language
- π Multi-Language Build Stages: All build stages (Gradle, Dependencies, Compiling, etc.) display in user's language
Changes #
- Added
Logger.getProgressTask()static method for progress task translations - Created
_progressTasksmap with translations for all build stages - Updated
_handleProcessOutput()to use localized progress messages - Progress stages now support Uzbek, English, and Russian
Technical #
- New progress task keys:
starting,gradle,dependencies_downloading,dependencies_ready,compiling,bundling,assembling,signing,finishing,ready - BuildManager now calls
Logger.getProgressTask()for all stage updates
0.2.1 #
Features #
- β‘ Short Flag Support: Added convenient shorthand flags for environments
- Production:
--production,-p,-prod - Staging:
--staging,-s - Development:
--development,-d,-dev
- Production:
Changes #
- Enhanced CLI flag parsing to accept multiple variants for each environment
- Updated environment flag filtering in extra flags extraction
- Improved documentation for flag options
Examples #
# All these commands work the same:
dartdosh build apk --production
dartdosh build apk -p
dartdosh build apk -prod
dartdosh build apk --development
dartdosh build apk -d
dartdosh build apk -dev
dartdosh build apk --staging
dartdosh build apk -s
0.2.0 #
Features #
- π Multi-Language Support: Full support for Uzbek (uz), English (en), and Russian (ru) languages
- π― Language Configuration: Added
languagefield to build_config.json (default: "uz") - π¬ Localized Messages: All log messages translated with positive, encouraging tone across all languages
- π Cultural Adaptation: Language-appropriate addressing - "Xo'jayiin" (uz), "Boss" (en), "ΠΠΎΡΡ" (ru)
Changes #
- Completely rewrote Logger class with multi-language support
- Added static language state management in Logger
- Implemented nested Map structure for translations:
Map<String, Map<LogType, List<String>>> - All LogTypes now support 3 languages with multiple message variants
- Language is read from build_config.json and applied to all log messages
- BuildManager now sets language from config before executing builds
Technical #
- Added
Logger.setLanguage(String language)static method - Language validation: only accepts 'uz', 'en', 'ru'
- Default language: 'uz' (Uzbek) if not specified in config
- Maintains random message selection within each language
0.1.12 #
Features #
- π― Clean Progress Display: Build output is now hidden, showing only clean progress bar
- β οΈ Smart Error Display: Warnings and errors are still shown when they occur
- π Enhanced Stage Detection: Added dependency resolution (30%) and "Got dependencies" (40%) stages
Changes #
- Removed verbose Flutter build output for cleaner terminal
- Only show warnings, errors, and failures from build output
- Added dependency-related progress stages
- Progress bar updates smoothly through all build stages (20% β 40% β 60% β 95%)
0.1.11 #
Bug Fixes #
- π§ Fixed Terminal Clearing: Progress bar now properly clears on macOS instead of creating new lines
- π Enhanced Progress Detection: Added more build stage patterns (bundling, signing, assembling) for accurate progress tracking
- π― Better Stage Recognition: Progress now advances beyond 20% by detecting bundle, sign, and assemble stages
Changes #
- Clear progress bar before showing stdout to prevent line duplication
- Added comprehensive lowercase pattern matching for build stages
- Added new build stages: bundling (60%), signing (80%), improved detection for assembling (70%)
- Progress bar only shows after first stdout output to avoid premature display
0.1.10 #
Features #
- β‘ Faster Progress Updates: Progress bar now updates every 1 second (improved from 2 seconds)
- π± Build Info Display: Progress bar now shows target and flavor being built (e.g.,
[apk - production]) - π macOS Terminal Fix: Improved terminal clearing for better compatibility on macOS
Changes #
- Changed progress update interval from 2 seconds to 1 second for more responsive feedback
- Added target and environment info to progress bar display
- Improved ANSI escape codes for terminal clearing on macOS
0.1.9 #
Features #
- π Live Progress Updates: Progress bar updates every 2 seconds with current task info
- π Task Indicator: Shows what's happening: "Gradle ishlayapti...", "Flutter kodi kompilyatsiya qilinyapti..."
- π― AAB Support: Full support for
aabandappbundlecommands with proper file detection - π§ Better File Detection: Improved APK/AAB path detection for all flavors
Changes #
- Progress bar now updates periodically (every 2 seconds) instead of on-demand
- Added
Timer.periodicfor continuous progress updates - Fixed appbundle/aab not being copied to output path
- Fixed flavor name duplication in Android build files
- Improved split APK architecture extraction (only arch name, no flavor duplication)
- Added more AAB path variants: productionRelease, stagingRelease, developmentDebug
- Added more APK path variants for different flavor configurations
Bug Fixes #
- Fixed:
aabcommand not recognized - Fixed: Progress bar showing only once and freezing
- Fixed: Appbundle files not moved to output directory
- Fixed: Android file names containing duplicate flavor names (e.g.,
production_production_1.0.8.apk)
0.1.8 #
Features #
- π Build Progress Bar: Real-time progress bar with percentage during builds
- β‘ Async Build Process: Non-blocking build execution with live output streaming
- π― Smart Progress Detection: Automatically detects Flutter build stages and updates progress
Changes #
- Removed auto-open config file feature (config file no longer opens automatically)
- Converted build process from sync to async for better performance
- Added
_handleProcessOutput()method for streaming build output - Added
_showProgress()method with animated progress bar - Removed
configFileOpenedLogType (no longer needed)
0.1.7 #
Features #
- π Donation Messages: After successful builds, random humorous donation messages appear (10 variants)
- π Logger System: All console output now goes through the Logger system for consistency
- π¨ Better File Naming: Build files now named as
{target}_{env}_{version}_{buildNumber}(e.g.,apk_production_1.0.8_2150.apk) - π§ Enhanced LogTypes: Added
buildNumberIncremented,fileSaved,outputDirCreatedfor detailed logging
Changes #
- Removed all
print()statements in favor ofLogger.log() - Fixed file naming bug where environment was duplicated in filename
- Added new LogType variants with random message selection
- Improved code organization and consistency
0.1.6 #
Features #
- π― Desktop Output Path: Default output path now points to
~/Desktop/dartdosh-buildsinstead ofreleases - π Auto File Open: Config file automatically opens in default editor after creation
- π¬ Improved Messages: Better user feedback when config is created for first time
- π₯οΈ Cross-Platform: Supports macOS, Linux, and Windows for auto file opening
Changes #
- Changed default
output_pathfromreleasesto~/Desktop/dartdosh-builds - Added
_openConfigFile()helper method for opening config in default editor - Enhanced console messages: "Xo'jayiin, default configlarni yaratdim, tekshirib ko'ring!"
0.1.5 #
Package Maintenance #
- β
Added Verified Publisher: Package now published under verified publisher
ahadjonovss.uz - π¦ Publisher Information: Added publisher field to pubspec.yaml for better package credibility
0.1.4 #
Bug Fixes #
- π Fixed --split Flag for IPA: The
--splitflag is now properly ignored for IPA builds (iOS doesn't support split builds) - β
Improved Flag Handling:
--splitflag now only applies to APK builds, converting to--split-per-abi - π± Better Platform Support: Different build targets now handle flags appropriately based on platform capabilities
0.1.3 #
Critical Bug Fix #
- π₯ Fixed Entry Point: Updated main entry point to use the new CLI class architecture
- π Resolved Environment Detection: Fixed critical issue where dartdosh.dart was using old ArgParser code instead of the new CLI class
- β Simplified Architecture: Main entry point now properly delegates to CLI class for cleaner code organization
0.1.2 #
Bug Fixes #
- π Fixed Environment Flag Parsing: Environment flags (--production, --staging, --development) are now correctly recognized and excluded from extra build flags
- π Resolved "Unknown" Environment Error: Fixed issue where environment was being detected as "unknown" even when flags were provided
0.1.1 #
Code Quality Improvements #
- β Added Dartdoc Comments: All public APIs now have comprehensive documentation
- β
Fixed Formatting Issues: All files formatted with
dart format - β Fixed Linting Issues: Removed unnecessary braces in string interpolation
- β Improved Pub Score: Achieved 50/50 pub points with proper documentation
Technical Changes #
- Added dartdoc comments to CLI, BuildManager, and public functions
- Fixed string interpolation warnings
- Applied Dart formatting to entire codebase
0.1.0 #
New Features #
- β Automatic Build Number Increment: Build number automatically increments by 1 before each build
- β Output Path Support: Built files can be automatically copied to specified output directory
- β
Smart File Naming: Files are renamed to
{environment}_{version}_{buildNumber}format - β Auto Directory Creation: Output directory is created automatically if it doesn't exist
- β
Auto Config Generation: If
build_config.jsondoesn't exist, it's automatically created with default settings - β Personalized Messages: All log messages address the user as "Xo'jayiin" (Boss)
Changes #
- Updated
build_config.jsonstructure to supportoutput_pathparameter - Build number is now incremented in
pubspec.yamlbefore build starts - Built files are copied to output path (if specified) instead of just being renamed
- Missing
build_config.jsonis now auto-generated instead of causing an error - All logger messages now include "Xo'jayiin" for a personalized experience
Examples #
# With output_path configured
dartdosh build apk --production
# Result: releases/production_1.2.3_46.apk
# Without output_path
dartdosh build apk --staging
# Result: build/app/outputs/flutter-apk/staging_1.2.3_46.apk
0.0.3 #
- Stable version with basic build functionality
0.0.1 #
- Initial version