๐ Flutterfy
A powerful and intuitive command-line tool for Flutter and Dart projects that automates semantic version management in your pubspec.yaml file. Say goodbye to manual version updates and embrace automated, error-free versioning!
โจ Features
- ๐ฏ Semantic Versioning: Full support for
major.minor.patch+buildformat - ๐ง Intelligent Build Numbers: Auto-generates timestamp-based build numbers or accepts custom ones
- ๐ก๏ธ Robust Error Handling: Comprehensive validation and clear error messages
- ๐ป Cross-Platform: Works on Windows, macOS, Linux, and CI/CD environments
- ๐ Smart Detection: Handles both versioned and non-versioned
pubspec.yamlfiles - โก Lightning Fast: Minimal dependencies for maximum performance
๐ Quick Start
Global Installation (Recommended)
dart pub global activate flutterfy
After installation, use it anywhere:
flutterfy patch
Local Installation
Add to your pubspec.yaml:
dev_dependencies:
flutterfy: ^1.0.1
Then run:
dart pub get
dart run flutterfy patch
๐ Usage
Basic Commands
# Increment patch version (1.0.0 โ 1.0.1+timestamp)
flutterfy patch
# Increment minor version (1.0.1 โ 1.1.0+timestamp)
flutterfy minor
# Increment major version (1.1.0 โ 2.0.0+timestamp)
flutterfy major
# Use custom build number
flutterfy patch --build=42
# Show help
flutterfy --help
Advanced Usage
# CI/CD integration with build ID
flutterfy patch --build=$BUILD_NUMBER
# Pre-release versions
flutterfy minor --build=beta-1
๐ฎ Interactive Examples
Before:
name: my_awesome_app
version: 1.0.0
After running flutterfy minor:
name: my_awesome_app
version: 1.1.0+1703123456
๐ง Programmatic Usage
You can also use Flutterfy in your Dart scripts:
import 'package:flutterfy/flutterfy.dart';
void main() {
// Update patch version
updateVersion('patch', null);
// Update with custom build number
updateVersion('minor', '42');
}
๐ Version Levels Explained
| Level | Description | Example Transform | Use Case |
|---|---|---|---|
patch |
Bug fixes and small updates | 1.0.0 โ 1.0.1 |
๐ Bug fixes |
minor |
New features, backward compatible | 1.0.1 โ 1.1.0 |
โจ New features |
major |
Breaking changes | 1.1.0 โ 2.0.0 |
๐ฅ Breaking changes |
๐ก๏ธ Error Handling
Flutterfy provides clear, actionable error messages:
โ Error: pubspec.yaml not found in current directory
โ Error: No valid version found in pubspec.yaml
โ Error: Invalid build number: abc123
๐งช Testing
# Run tests
dart test
# Run with coverage
dart test --coverage=coverage
genhtml coverage/lcov.info -o coverage/html
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support the Project
If Flutterfy has helped you in your projects, consider supporting its development:
๐ฑ Connect with the Creator
Follow Neryad for updates and more awesome tools:
- ๐ฃ Twitch: twitch.tv/neryad
- ๐ค Twitter: @neryadg
- ๐ด YouTube Gaming: youtube.com/@neryadg
- ๐ฑ WhatsApp Channel: Join Community
- ๐ Website: beacons.ai/neryad
๐ Stats
๐๏ธ Related Projects
- Flutter Version Manager - Manage Flutter SDK versions
- Pub.dev - The official Dart package repository
- Semantic Versioning - Learn about semantic versioning
๐ Changelog
All notable changes to this project are documented in the CHANGELOG.md.
๐ฎ Roadmap
๐จ Interactive CLI with prompts๐ Version history tracking๐ Git tag automation๐ฑ Flutter plugin integration๐ Web dashboard for teams
Made with โค๏ธ by Neryad
Star โญ this repo if you find it helpful!