This document outlines the standards and workflows for creating issues and pull requests for the Flutter Bunny project. Following these guidelines helps maintain project quality and ensures efficient collaboration.
We categorize issues into several types:
- Bug Report - Something isn't working as expected
- Feature Request - Suggestion for new functionality
- Documentation - Improvements or additions to documentation
- Performance - Issues related to performance optimization
- Maintenance - Technical debt, refactoring, dependencies
- Question - Community questions that aren't bug reports
- Search existing issues to avoid duplicates
- Check the documentation to ensure the behavior isn't expected
- Verify with the latest version to confirm the issue still exists
We provide issue templates for common types. Please use them when available:
- Bug Report
- Feature Request
- Documentation Issue
A high-quality issue includes:
- Clear, descriptive title that summarizes the issue
- Environment details:
- Flutter Bunny version
- Operating system
- Dart/Flutter version (if applicable)
- Any relevant configuration
- Steps to reproduce:
- Provide minimal, complete steps
- Include sample code when applicable
- Mention any specific settings or configuration
- Expected behavior
- Actual behavior:
- Error messages (in text, not screenshots)
- Stack traces when available
- Screenshots for UI issues only
- Additional context:
- Possible solutions you've considered
- Related issues
- References to documentation
Our labels help categorize and prioritize issues:
bug- Confirmed bugsfeature- New feature requestsdocumentation- Documentation improvementsgood first issue- Good for newcomershelp wanted- Extra attention neededpriority: high/medium/low- Issue priorityneeds: reproduction/clarification- More information needed
- New - Issue is created
- Triage - Maintainers review, add labels, and prioritize
- In Progress - Issue is being worked on (assigned)
- Review - Solution is ready for review
- Done - Issue is resolved and closed
- Create an issue first (if one doesn't exist)
- Discuss implementation approach to avoid wasted effort
- Fork the repository and create a feature branch
- Keep changes focused on a single issue
Format: <type>/<issue-number>-<short-description>
Examples:
fix/123-handle-null-parametersfeat/456-add-polish-language-supportdocs/789-update-cli-usage-example
A good PR includes:
- Clear, descriptive title following conventional commits format
- Detailed description including:
- Reference to the issue:
Fixes #123 - Summary of changes
- Motivation and context
- Screenshots/examples for UI changes
- Reference to the issue:
- Comprehensive testing:
- Unit tests for new functionality
- Updated existing tests if needed
- Documentation updates:
- Update README if needed
- Add/update API documentation
- Update CHANGELOG
## Description
[Reference the issue this PR addresses: Fixes #XX]
### Changes
- [Description of changes]
- [Another change]
### Motivation
[Why was this change needed?]
## Type of Change
- [ ] Bug fix (non-breaking change fixing an issue)
- [ ] New feature (non-breaking change adding functionality)
- [ ] Breaking change (fix or feature causing existing functionality to change)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
## Testing
- [ ] Added unit tests
- [ ] Updated existing tests
- [ ] Manually tested on [environment]
## Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding documentation changes
- [ ] My changes generate no new warnings
- [ ] PR title follows conventional commit syntax-
Automated checks:
- CI tests must pass
- Code coverage requirements must be met
- Linting must pass
-
Code review:
- At least one maintainer approval required
- Reviewer checks for:
- Code quality and style
- Test coverage
- Documentation
- Adherence to project standards
-
Revision process:
- Address reviewer comments
- Push changes to same branch
- Request re-review when ready
-
Merge requirements:
- All comments resolved
- Required approvals obtained
- CI checks passing
- Commits squashed if needed
- The issue is automatically closed if properly referenced
- The PR is added to the appropriate milestone for release tracking
- Changes are documented in the CHANGELOG
We value all contributions and recognize contributors in the following ways:
- Add to CONTRIBUTORS.md file
- Mention in release notes
- Include in project documentation as appropriate
| Label | Description |
|---|---|
bug |
Something isn't working |
feature |
New feature or request |
documentation |
Documentation improvements |
duplicate |
Issue already exists |
good first issue |
Good for newcomers |
help wanted |
Extra attention needed |
invalid |
Issue doesn't apply |
question |
Further information requested |
wontfix |
This will not be worked on |
priority: high |
Urgent issues |
priority: medium |
Important but not urgent |
priority: low |
Will be addressed as time permits |