| Contributing to Flutter |
| ======================= |
| |
| [](https://travis-ci.org/flutter/plugins) |
| |
| _See also: [Flutter's code of conduct](https://flutter.io/design-principles/#code-of-conduct)_ |
| |
| Things you will need |
| -------------------- |
| |
| * Linux, Mac OS X, or Windows. |
| * git (used for source version control). |
| * An ssh client (used to authenticate with GitHub). |
| |
| Getting the code and configuring your environment |
| ------------------------------------------------- |
| |
| * Ensure all the dependencies described in the previous section are installed. |
| * Fork `https://github.com/flutter/plugins` into your own GitHub account. If |
| you already have a fork, and are now installing a development environment on |
| a new machine, make sure you've updated your fork so that you don't use stale |
| configuration options from long ago. |
| * If you haven't configured your machine with an SSH key that's known to github, then |
| follow [GitHub's directions](https://help.github.com/articles/generating-ssh-keys/) |
| to generate an SSH key. |
| * `git clone git@github.com:<your_name_here>/plugins.git` |
| * `cd plugins` |
| * `git remote add upstream git@github.com:flutter/plugins.git` (So that you |
| fetch from the master repository, not your clone, when running `git fetch` |
| et al.) |
| |
| Running the examples |
| -------------------- |
| |
| To run an example with a prebuilt binary from the cloud, switch to that |
| example's directory, run `pub get` to make sure its dependencies have been |
| downloaded, and use `flutter run`. Make sure you have a device connected over |
| USB and debugging enabled on that device. |
| |
| * `cd packages/battery/example` |
| * `flutter run` |
| |
| Contributing code |
| ----------------- |
| |
| We gladly accept contributions via GitHub pull requests. |
| |
| Please peruse our |
| [style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo) and |
| [design principles](https://flutter.io/design-principles/) before |
| working on anything non-trivial. These guidelines are intended to |
| keep the code consistent and avoid common pitfalls. |
| |
| To start working on a patch: |
| |
| * `git fetch upstream` |
| * `git checkout upstream/master -b <name_of_your_branch>` |
| * Hack away. |
| * `git commit -a -m "<your informative commit message>"` |
| * `git push origin <name_of_your_branch>` |
| |
| To send us a pull request: |
| |
| * `git pull-request` (if you are using [Hub](http://github.com/github/hub/)) or |
| go to `https://github.com/flutter/plugins` and click the |
| "Compare & pull request" button |
| |
| Please make sure all your checkins have detailed commit messages explaining the patch. |
| |
| Once you've gotten an LGTM from a project maintainer and once your PR has received |
| the green light from all our automated testing (Travis, Appveyor, etc), submit your |
| changes to the `master` branch using one of the following methods: |
| |
| * Wait for one of the project maintainers to submit it for you. |
| * Click the green "Merge pull request" button on the GitHub UI of your pull |
| request (requires commit access). |
| |
| You must complete the |
| [Contributor License Agreement](https://cla.developers.google.com/clas). |
| You can do this online, and it only takes a minute. |
| If you've never submitted code before, you must add your (or your |
| organization's) name and contact info to the [AUTHORS](AUTHORS) file. |
| |
| We grant commit access to people who have gained our trust and demonstrated |
| a commitment to Flutter. |