Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 1 | Contributing to Flutter |
| 2 | ======================= |
| 3 | |
Greg Spencer | e60087a | 2018-08-07 13:41:33 -0700 | [diff] [blame] | 4 | [](https://cirrus-ci.org/flutter/flutter) |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 5 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 6 | _See also: [Flutter's code of conduct](CODE_OF_CONDUCT.md)_ |
Ian Hickson | cffe481 | 2016-12-10 21:46:57 -0800 | [diff] [blame] | 7 | |
Ian Hickson | 529d250 | 2018-06-01 12:04:20 -0700 | [diff] [blame] | 8 | Welcome |
| 9 | ------- |
| 10 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 11 | We invite you to join our team! Everyone is welcome to contribute code |
| 12 | via pull requests, to file issues on GitHub, to help people asking for |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 13 | help on our mailing lists, our chat channels, or on Stack Overflow, to |
| 14 | help triage, reproduce, or fix bugs that people have filed, to add to our |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 15 | documentation, or to help out in any other way. |
Ian Hickson | 529d250 | 2018-06-01 12:04:20 -0700 | [diff] [blame] | 16 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 17 | We grant commit access (which includes full rights to the issue |
| 18 | database, such as being able to edit labels) to people who have gained |
Ian Hickson | 86dacb2 | 2019-08-15 00:07:49 -0700 | [diff] [blame] | 19 | our trust and demonstrated a commitment to Flutter. For more details |
| 20 | see the [Contributor access](https://github.com/flutter/flutter/wiki/Contributor-access) |
| 21 | page on our wiki. |
Ian Hickson | 529d250 | 2018-06-01 12:04:20 -0700 | [diff] [blame] | 22 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 23 | We communicate primarily over GitHub and on [chat channels](https://github.com/flutter/flutter/wiki/Chat). |
Ian Hickson | 86dacb2 | 2019-08-15 00:07:49 -0700 | [diff] [blame] | 24 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 25 | Helping out in the issue database |
| 26 | --------------------------------- |
Ian Hickson | 86dacb2 | 2019-08-15 00:07:49 -0700 | [diff] [blame] | 27 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 28 | If you want to help us triage, you are very welcome to do so! |
Ian Hickson | 86dacb2 | 2019-08-15 00:07:49 -0700 | [diff] [blame] | 29 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 30 | 1. Join the #hackers-triage [chat](https://github.com/flutter/flutter/wiki/Chat) channel. |
| 31 | |
| 32 | 2. Read [our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly |
| 33 | that everyone must be gracious, respectful, and professional. If you're helping out |
| 34 | with triage, you are representing the Flutter team, and so you want to make sure to |
| 35 | make a good impression! |
Dan Field | 24f39d4 | 2020-01-02 11:47:28 -0800 | [diff] [blame] | 36 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 37 | 3. Help out as described in our wiki: https://github.com/flutter/flutter/wiki/Triage |
| 38 | You won't be able to add labels at first, so instead start by trying to |
| 39 | do the other steps, e.g. trying to reproduce the problem and asking for people to |
| 40 | provide enough details that you can reproduce the problem, pointing out duplicates, |
| 41 | and so on. Chat on the #hackers-triage channel to let us know what you're up to! |
Dan Field | 24f39d4 | 2020-01-02 11:47:28 -0800 | [diff] [blame] | 42 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 43 | 4. Familiarize yourself with our |
| 44 | [issue hygiene](https://github.com/flutter/flutter/wiki/Issue-hygiene) wiki page, |
| 45 | which covers the meanings of some important GitHub labels and |
| 46 | milestones. |
Dan Field | 24f39d4 | 2020-01-02 11:47:28 -0800 | [diff] [blame] | 47 | |
Ian Hickson | 441b365 | 2019-08-20 14:44:01 -0700 | [diff] [blame] | 48 | 5. Once you've been doing this for a while, someone will invite you to the flutter-hackers |
| 49 | team on GitHub and you'll be able to add labels too. See the |
| 50 | [contributor access](https://github.com/flutter/flutter/wiki/Contributor-access) wiki |
| 51 | page for details. |
Ian Hickson | 529d250 | 2018-06-01 12:04:20 -0700 | [diff] [blame] | 52 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 53 | Developing for Flutter |
| 54 | ---------------------- |
Ian Hickson | 529d250 | 2018-06-01 12:04:20 -0700 | [diff] [blame] | 55 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 56 | To develop for Flutter, you will eventually need to become familiar |
| 57 | with our processes and conventions. This section lists the documents |
| 58 | that describe these methodologies. The following list is ordered: you |
| 59 | are strongly recommended to go through these documents in the order |
| 60 | presented. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 61 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 62 | 1. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly |
| 63 | that everyone must be gracious, respectful, and professional. This |
| 64 | also documents our conflict resolution policy and encourages people |
| 65 | to ask questions. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 66 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 67 | 2. [Values](https://github.com/flutter/flutter/wiki/Values), |
| 68 | which talks about what we care most about. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 69 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 70 | 3. [Setting up your engine development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment), |
| 71 | which describes the steps you need to configure your computer to |
| 72 | work on Flutter's engine. If you only want to write code for the |
Mike Hatch | 24a1289 | 2019-07-28 13:07:21 -0600 | [diff] [blame] | 73 | Flutter framework, you can skip this step. Flutter's engine mainly |
| 74 | uses C++, Java, and Objective-C. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 75 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 76 | 4. [Setting up your framework development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Framework-development-environment), |
| 77 | which describes the steps you need to configure your computer to |
Mike Hatch | 24a1289 | 2019-07-28 13:07:21 -0600 | [diff] [blame] | 78 | work on Flutter's framework. Flutter's framework mainly uses Dart. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 79 | |
Tim Sneath | 5291897 | 2019-04-05 11:39:30 -0700 | [diff] [blame] | 80 | 5. [Tree hygiene](https://github.com/flutter/flutter/wiki/Tree-hygiene), |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 81 | which covers how to land a PR, how to do code review, how to |
| 82 | handle breaking changes, how to handle regressions, and how to |
| 83 | handle post-commit test failures. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 84 | |
Tim Sneath | 5291897 | 2019-04-05 11:39:30 -0700 | [diff] [blame] | 85 | 6. [Issue hygiene](https://github.com/flutter/flutter/wiki/Issue-hygiene), |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 86 | which covers our processes around triaging bugs, escalating high |
| 87 | priority bugs, assigning bugs, and our GitHub labels and |
| 88 | milestones. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 89 | |
Tim Sneath | 5291897 | 2019-04-05 11:39:30 -0700 | [diff] [blame] | 90 | 7. [Our style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo), |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 91 | which includes advice for designing APIs for Flutter, and how to |
| 92 | format code in the framework. |
Adam Barth | 576795d | 2015-11-08 21:33:00 -0800 | [diff] [blame] | 93 | |
gaaclarke | 56e3c0c | 2019-10-28 15:58:24 -0700 | [diff] [blame] | 94 | 8. [Flutter design doc template](https://flutter.dev/go/template), |
| 95 | which should be used when proposing a new technical design. This is a good |
| 96 | practice to do before coding more intricate changes. |
| 97 | |
Ian Hickson | cf2fba7 | 2018-11-06 13:41:09 -0800 | [diff] [blame] | 98 | In addition to the above, there are many pages on [our |
| 99 | Wiki](https://github.com/flutter/flutter/wiki/) that may be of |
| 100 | interest. For a curated list of pages see the sidebar on the wiki's |
| 101 | home page. They are more or less listed in order of importance. |