flutist 1.1.3
flutist: ^1.1.3 copied to clipboard
A Flutter project management framework inspired by Tuist
Changelog #
All notable changes to Flutist will be documented in this file.
1.1.3 - 2025-01-02 #
📝 Documentation #
- Simplified README.md to core content (removed detailed documentation for future docs site)
- Added Docs badge with book icon linking to DeepWiki documentation
- Updated all documentation links to https://deepwiki.com/seonwooke/flutist
- Updated pubspec.yaml documentation field to point to DeepWiki
1.1.2 - 2025-01-02 #
📝 Documentation #
- Updated README.md version badge to reflect current version (1.1.1)
- Fixed project structure documentation:
- Corrected
main.dartlocation toroot/lib/main.dart(was incorrectly shown inapp/lib/main.dart) - Clarified that
app.dartbelongs inapp/lib/app.dart
- Corrected
- Removed
dart testsection from Development Setup (tests not yet implemented) - Fixed duplicate
lib/directory in project structure example
1.1.1 - 2025-01-02 #
✨ Added #
- Clean Architecture example repository:
- Added link to
flutist_clean_architecturerepository in README.md Examples section - Added Real-World Examples section to example/README.md
- Showcases Clean Architecture implementation using Flutist
- Added link to
🔧 Improved #
flutist generatecommand:- Automatically removes deleted modules from
package.dartwhen module files are not found - When a module's pubspec.yaml cannot be found (e.g.,
home_domain), extracts base module name (e.g.,home) and removes it frompackage.dart - Ensures
package.dartstays in sync with actual file system structure - Filters
flutist_gen.dartmodules to only include those present inproject.dart - Modules removed from
project.dartare now also removed fromflutist_gen.dart
- Automatically removes deleted modules from
🐛 Fixed #
- Fixed logging message format in generate command
1.1.0 - 2025-01-02 #
🚀 Major Changes #
- Project structure update: Moved
main.dartfromapp/lib/main.darttolib/main.dart- Root
lib/main.dartnow imports and runs app frompackage:app/app.dart - App module is automatically added as a path dependency in root
pubspec.yaml - Enables direct execution with
flutter runfrom root directory - Removed
flutist runcommand - useflutter rundirectly instead
- Root
✨ Added #
- Root
lib/main.dartgeneration influtist initcommand - Automatic app module dependency management in root
pubspec.yaml
🗑️ Removed #
- BREAKING:
flutist runcommand has been removed- Users should use
flutter rundirectly from the project root - This change simplifies the toolchain and aligns with standard Flutter workflows
- Users should use
🔧 Changed #
flutist initnow createslib/main.dartin root directory instead ofapp/lib/main.dart- Root
pubspec.yamltemplate now includes app module as path dependency - Run command references removed from documentation and help text
1.0.10 - 2025-01-02 #
🐛 Fixed #
flutist generatecommand:- Fixed empty dependencies section being converted from
dependencies:todependencies: {} - Now preserves original format when dependencies section is empty
- Empty dependencies sections are formatted as
dependencies:instead ofdependencies: {} - Files with unchanged dependencies no longer show unnecessary format changes
- Fixed empty dependencies section being converted from
1.0.9 - 2025-01-02 #
🐛 Fixed #
flutist createcommand:- Fixed incorrect
analysis_options.yamlinclude path for layered modules (feature, library, standard) - Now uses
path.relative()to correctly calculate relative path from module to root directory - Previously calculated depth based on
moduleRelativePath, which was incorrect for layered modules - Example:
features/book_detail/book_detail_domainnow correctly uses../../../analysis_options.yamlinstead of../../analysis_options.yaml
- Fixed incorrect
1.0.8 - 2025-01-02 #
🐛 Fixed #
flutist initcommand:- Fixed version detection using
dart pub global listcommand instead of pubspec.yaml lookup global_packagesdirectory doesn't containpubspec.yaml, onlypubspec.lock- Now correctly reads installed flutist version from
dart pub global listoutput - Fixes issue where version detection failed for globally installed packages via
dart pub global activate
- Fixed version detection using
1.0.7 - 2025-01-02 #
🐛 Fixed #
flutist initcommand:- Fixed version detection when running
flutist initafterdart pub global activate flutist - Prioritized
global_packageslookup to correctly read installed flutist version - Added package name validation to ensure correct
pubspec.yamlis read - Simplified version detection logic by removing unnecessary directory traversal
- Now correctly adds the installed flutist version to project dependencies instead of fallback version
- Fixed version detection when running
1.0.6 - 2025-01-02 #
🔧 Improved #
flutist initcommand:- Dynamically reads flutist package version from current package's
pubspec.yaml - Uses pub.dev package instead of local path reference
- Automatically reflects version updates when
pubspec.yamlis updated - Changed from hardcoded version to dynamic version reading
- Dynamically reads flutist package version from current package's
1.0.5 - 2025-01-02 #
🎨 Style #
- Applied Dart formatter to example files and codebase
- Formatted
example/flutist/flutist_gen.dart - Formatted
example/package.dart - Applied consistent code formatting across the project
- Formatted
1.0.4 - 2025-01-02 #
🐛 Fixed #
- Fixed
flutist runcommand creatingroot/lib/main.dartfile- Added explicit
-tflag to targetapp/lib/main.dartwhen running Flutter - Automatically detects and removes existing
root/lib/main.dartif found - Prevents Flutter from auto-creating
root/lib/main.dartfile
- Added explicit
1.0.3 - 2025-01-02 #
🐛 Fixed #
- Fixed
flutist runcommand creating unnecessaryroot/lib/main.dartfile- Removed auto-generation logic that created
root/lib/main.dartwhen missing - Flutter workspace automatically finds
app/lib/main.dartwhen running from root directory - Updated README.md documentation to reflect correct behavior
- Removed auto-generation logic that created
1.0.2 - 2025-01-02 #
✨ Added #
- Example directory for pub.dev with complete project structure demonstration
README.mdwith usage instructions and module type explanationsdirectory_structure.mdwith Microfeature Architecture visualization- Example
package.dartandproject.dartconfiguration files - Example
pubspec.yamlwith workspace configuration - Example
flutist_gen.dartshowing generated code structure
🔧 Improved #
flutist initcommand:- Prevent overwriting existing
README.mdfiles - Merge Flutist configuration into existing
pubspec.yamlinstead of overwriting - Automatically add
workspacesection if missing - Automatically add
appmodule to workspace if not exists - Automatically add
flutistdependency with latest version when merging - Fix
app.dartimport path inmain.dart(use relative import instead of package import)
- Prevent overwriting existing
- README.md:
- Add "Core Commands" section highlighting main 4 commands (
init,create,generate,scaffold) - Add "All Commands" table at the top for quick reference
- Improve command visibility with larger headings and bold text
- Add
scaffoldexample to Quick Start section
- Add "Core Commands" section highlighting main 4 commands (
🐛 Fixed #
- Fixed import path in generated
app/lib/main.dart(changed frompackage:app/app.darttoapp.dart) - Fixed dependency getter names in example files (camelCase conversion:
shared_preferences→sharedPreferences,json_annotation→jsonAnnotation) - Suppressed warnings in example directory with custom
analysis_options.yaml
1.0.1 - 2025-01-02 #
🐛 Fixed #
- Fixed README.md banner image loading issue by using GitHub raw URL instead of relative path
1.0.0 - 2025-01-02 #
🎉 Initial Release #
Flutist is a Flutter project management framework inspired by Tuist, providing declarative module structure and dependency management.
✨ Features #
Core Commands
flutist init- Initialize project with workspace supportflutist create- Create modules (simple, feature, library, standard)flutist generate- Sync dependencies with type-safe auto-completionflutist scaffold- Generate code from templates (Tuist-style)flutist graph- Visualize module dependencies (Mermaid, DOT, ASCII)flutist run- Run Flutter appflutist pub- Manage packages
🏗️ Module Types #
- Simple - Single-layer module
- Feature - 3-layer (Domain, Data, Presentation)
- Library - 5-layer (Example, Interface, Implementation, Testing, Tests)
- Standard - 3-layer (Implementation, Tests, Testing)
📦 What's Included #
- Auto-generated
flutist_gen.dartfor type-safe dependencies - Built-in feature template (BLoC pattern)
- Comprehensive
analysis_options.yaml(100+ lint rules) - Automatic workspace registration
- Smart relative path calculation
🐛 Known Issues #
- iOS build requires workspace workaround (Flutter limitation)
- Solution: Use Android/Web for development
📚 Quick Example #
flutist init
flutist create --path features --name login --options library
flutist generate
flutist graph --open
🙏 Credits #
Inspired by Tuist