See also: Flutter's code of conduct
We invite you to join our team! Everyone is welcome to contribute code via pull requests, to file issues on GitHub, to help people asking for help on our mailing lists or on Stack Overflow, to help triage, reproduce, or fix bugs that people have filed, to add to our documentation, or to help out in any other way.
We grant commit access (which includes full rights to the issue database, such as being able to edit labels) to people who have gained our trust and demonstrated a commitment to Flutter. For more details see the Contributor access page on our wiki.
If you would like to chat to other people who work on Flutter, consider joining the https://gitter.im/flutter/contributors chat channel. We also have a general chat channel for people who aren't working on Flutter but who use Flutter.
The main way to contribute to Flutter that doesn't involve writing code is to go through our issues database, providing reproduction steps, reduced test cases, finding duplicates, and so forth. See the Triage page on our wiki for details. When commenting on the issues database, please be sure to follow our code of conduct.
To develop for Flutter, you will eventually need to become familiar with our processes and conventions. This section lists the documents that describe these methodologies. The following list is ordered: you are strongly recommended to go through these documents in the order presented.
-
Our code of conduct, which stipulates explicitly that everyone must be gracious, respectful, and professional. This also documents our conflict resolution policy and encourages people to ask questions.
-
Values, which talks about what we care most about.
-
Setting up your engine development environment, which describes the steps you need to configure your computer to work on Flutter's engine. If you only want to write code for the Flutter framework, you can skip this step. Flutter's engine mainly uses C++, Java, and Objective-C.
-
Setting up your framework development environment, which describes the steps you need to configure your computer to work on Flutter's framework. Flutter's framework mainly uses Dart.
-
Tree hygiene, which covers how to land a PR, how to do code review, how to handle breaking changes, how to handle regressions, and how to handle post-commit test failures.
-
Issue hygiene, which covers our processes around triaging bugs, escalating high priority bugs, assigning bugs, and our GitHub labels and milestones.
-
Our style guide, which includes advice for designing APIs for Flutter, and how to format code in the framework.
In addition to the above, there are many pages on our Wiki that may be of interest. For a curated list of pages see the sidebar on the wiki's home page. They are more or less listed in order of importance.