For an introduction to contributing to Flutter, see our contributor guide.
Additional resources specific to the packages repository:
- Setting up the Packages development environment, which covers the setup process for this repository.
- Packages repository structure, to get an overview of how this repository is laid out.
- Contributing to Plugins and Packages, for more information about how to make PRs for this repository, especially when changing federated plugins.
- Plugin tests, which explains the different kinds of tests used for plugins, where to find them, and how to run them. As explained in the Flutter guide, PRs need tests, so this is critical to read before submitting a plugin PR.
PRs will automatically be assigned to code owners for review. If a code owner is creating a PR, they should explicitly pick another Flutter team member as a code reviewer.
Flutter packages and plugins follow Google style—or Flutter style for Dart—for the languages they use, and use auto-formatters:
- Dart formatted
with
dart format
- C++ formatted with
clang-format
- Note: The Linux plugins generally follow idiomatic GObject-based C style. See the engine style notes for more details, and exceptions.
- Java formatted with
google-java-format
- Kotlin formatted with
ktfmt
- Objective-C formatted with
clang-format
- Swift formatted with
swift-format
If you are a team member landing a PR, or just want to know what the release process is for package changes, see the release documentation.