Thank you for your interest in contributing to Assetify! 🎉
- Flutter SDK 3.2.0 or higher
- Dart SDK (included with Flutter)
- Git
-
Fork and Clone
git clone https://github.com/Ionic-Errrrs-Code/assetify.git cd assetify -
Install Dependencies
flutter pub get cd example && flutter pub get && cd ..
-
Verify Setup
dart analyze dart test
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
-
Test Your Changes
# Run static analysis dart analyze # Run unit tests dart test # Test CLI manually dart run bin/assetify.dart generate # Test example app cd example dart run ../bin/assetify.dart generate flutter run
-
Commit and Push
git add . git commit -m "feat: add your feature description" git push origin feature/your-feature-name
-
Create Pull Request
- Use the GitHub web interface
- Provide clear description of changes
- Link to any related issues
- Follow Dart style guide
- Use
dart formatfor consistent formatting - Keep line length under 80 characters where reasonable
- Use meaningful variable and function names
We follow Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changes (no logic change)refactor:Code refactoringtest:Adding testschore:Maintenance tasks
Examples:
feat: add support for WebP images
fix: handle empty asset directories gracefully
docs: update README with new CLI options
# All tests
dart test
# Specific test file
dart test test/generator_test.dart
# With coverage
dart test --coverage=coverage- Add tests for all new functionality
- Test both happy path and edge cases
- Use descriptive test names
- Follow existing test patterns
Always test the CLI commands manually:
# Test generation
dart run bin/assetify.dart generate -v
# Test watch mode (cancel with Ctrl+C)
dart run bin/assetify.dart watch
# Test with example project
cd example
dart run ../bin/assetify.dart generate
flutter run-
Update Version
- Update
versioninpubspec.yaml - Update
CHANGELOG.mdwith new version and changes - Update version references in documentation
- Update
-
Test Release
dart pub publish --dry-run
-
Create Release
git tag v1.x.x git push origin v1.x.x dart pub publish
- Search existing issues
- Test with latest version
- Provide minimal reproduction case
**Environment:**
- Assetify version: x.x.x
- Flutter version: x.x.x
- OS: Windows/macOS/Linux
**Description:**
Clear description of the bug
**Steps to Reproduce:**
1. Step one
2. Step two
3. Step three
**Expected Behavior:**
What should happen
**Actual Behavior:**
What actually happens
**Additional Context:**
Any other relevant information- Check if feature already exists
- Search existing feature requests
- Consider if it fits project scope
**Problem Statement:**
What problem does this solve?
**Proposed Solution:**
How should it work?
**Alternatives Considered:**
Other approaches you've thought about
**Additional Context:**
Any other relevant informationassetify/
├── bin/ # CLI entry points
├── lib/
│ ├── assetify.dart # Main library export
│ └── src/ # Implementation
├── test/ # Unit tests
├── example/ # Example Flutter app
└── docs/ # Additional documentation
AssetGenerator: Core generation logicPubspecReader: Pubspec.yaml parsingAssetEntry/ProjectInfo: Data models- CLI: Command-line interface
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Respect different viewpoints and experiences
- Harassment, discrimination, or trolling
- Publishing private information
- Spam or off-topic discussions
- Any behavior inappropriate for a professional setting
- Documentation improvements
- Error message enhancements
- Additional asset type support
- CLI usability improvements
- Performance optimizations
- Additional output formats
- Configuration enhancements
- Test coverage improvements
- Plugin system
- Custom generators
- IDE integrations
- CI/CD integrations
- Questions: Open a Discussion
- Bugs: Open an Issue
- Chat: Join our community discussions
Contributors are recognized in:
- Release notes
- README contributors section
- Git commit history
Thank you for making Assetify better! 🚀