๐Ÿš€ Flutterfy

Pub Version License: MIT Build Status Coverage

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

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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:

ko-fi

๐Ÿ“ฑ Connect with the Creator

Follow Neryad for updates and more awesome tools:

๐Ÿ“Š Stats

GitHub stars GitHub forks GitHub issues GitHub pull requests

๐Ÿ“ˆ 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!

Libraries

flutterfy