๐ 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+build
format - ๐ง 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.yaml
files - โก 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
Made with โค๏ธ by Neryad
Star โญ this repo if you find it helpful!