First, we would like to thank you for your time and efforts on this project, we appreciate it.
Important
At this time, we prioritize bug fixes and code quality improvements over new features. Please refrain from submitting large changes to add new features, as they might not be merged, and exceptions may made. We encourage you to create an issue or reach out beforehand, explaining your proposed changes and their rationale for a higher chance of acceptance. Thank you!
Note
Updating the CHANGELOG.md
is optional. If updated, follow the Keep a Changelog format in the Unreleased
section.
The package version in pubspec.yaml
should not be modified; this will be handled by a maintainer or CI.
- Flutter SDK, which can be installed by following the instructions the
provided link, also make sure to add it to your path so
flutter --version
anddart --version
work - IntelliJ IDEA Community Edition or Android Studio (with Dart and Flutter plugins) or use VS Code (with Dart and flutter extensions)
Make sure you have the Requirement installed and configured correctly
To test your changes:
- Go to the Example project in main.dart and run the project either by using
your IDE or
flutter run
- Make sure to read the Development Notes if you made certain changes or Translations Page if you made changes to the translations of the package
-
Code Style and Formatting:
Adhere to the Dart Coding Conventions (https://dart.dev/effective-dart). Use consistent naming conventions for variables, functions, classes, etc. Follow a consistent code formatting style throughout the project.
We use Dart lints to make the process easier.
-
Documentation:
Document public APIs using Dart comments (https://dart.dev/effective-dart/documentation). Provide comprehensive documentation for any complex algorithms, data structures, or significant functionality. Write clear and concise commit messages and pull request descriptions.
-
Performance:
Write efficient code and avoid unnecessary overhead. Profile the application for performance bottlenecks and optimize critical sections if needed.
-
Bundle size:
Try to make the package size as less as possible but as much as needed
-
Code Review:
Encourage code reviews for all changes to maintain code quality and catch potential issues early. Use pull requests and code reviews to discuss proposed changes and improvements.
-
Versioning and Releases:
Follow semantic versioning for releases (https://semver.org/). Clearly document release notes and changes for each version.
For now, we might introduce breaking changes in a non-major version but will always provide a migration guide in each release info.
-
Consistency:
Adhere to a consistent coding style throughout the project for improvement readability and maintainability
-
Meaningful Names:
Use descriptive variable, class, and function names that clearly convey their purpose.
-
Testing:
Try to write tests (Widget or Unit tests or other types or tests) when possible
- When updating the translations, refer to the translation page.
- Package versioning is automated, PRs need to update
CHANGELOG.md
to add the changes in theUnreleased
per Keep a Changelog format.