| # Contributing to Flutter Plugins |
| |
| [](https://cirrus-ci.com/github/flutter/plugins/master) |
| |
| _See also: [Flutter's code of conduct](https://github.com/flutter/flutter/blob/master/CODE_OF_CONDUCT.md)_ |
| |
| ## Welcome |
| |
| For an introduction to contributing to Flutter, see [our contributor |
| guide](https://github.com/flutter/flutter/blob/master/CONTRIBUTING.md). |
| |
| Additional resources specific to the plugins repository: |
| - [Setting up the Plugins development |
| environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Plugins-development-environment), |
| which covers the setup process for this repository. |
| - [Plugins repository structure](https://github.com/flutter/flutter/wiki/Plugins-and-Packages-repository-structure), |
| to get an overview of how this repository is laid out. |
| - [Plugin tests](https://github.com/flutter/flutter/wiki/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**](https://github.com/flutter/flutter/wiki/Tree-hygiene#tests), so |
| this is critical to read before submitting a PR. |
| - [Contributing to Plugins and Packages](https://github.com/flutter/flutter/wiki/Contributing-to-Plugins-and-Packages), |
| for more information about how to make PRs for this repository, especially when |
| changing federated plugins. |
| |
| ## Other notes |
| |
| ### Style |
| |
| Flutter plugins follow Google style—or Flutter style for Dart—for the languages they |
| use, and use auto-formatters: |
| - [Dart](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo) formatted |
| with `dart format` |
| - [C++](https://google.github.io/styleguide/cppguide.html) formatted with `clang-format` |
| - **Note**: The Linux plugins generally follow idiomatic GObject-based C |
| style. See [the engine style |
| notes](https://github.com/flutter/engine/blob/master/CONTRIBUTING.md#style) |
| for more details, and exceptions. |
| - [Java](https://google.github.io/styleguide/javaguide.html) formatted with |
| `google-java-format` |
| - [Objective-C](https://google.github.io/styleguide/objcguide.html) formatted with |
| `clang-format` |
| |
| ### Releasing |
| |
| If you are a team member landing a PR, or just want to know what the release |
| process is for plugin changes, see [the release |
| documentation](https://github.com/flutter/flutter/wiki/Releasing-a-Plugin-or-Package). |