blob: 5515c8c2a632c54a1abf2a7271d36cfd9adb131b [file] [log] [blame] [view]
Adam Barth576795d2015-11-08 21:33:00 -08001Contributing to Flutter
2=======================
3
Greg Spencere60087a2018-08-07 13:41:33 -07004[![Build Status](https://api.cirrus-ci.com/github/flutter/flutter.svg)](https://cirrus-ci.org/flutter/flutter)
Adam Barth576795d2015-11-08 21:33:00 -08005
Ian Hicksoncf2fba72018-11-06 13:41:09 -08006_See also: [Flutter's code of conduct](CODE_OF_CONDUCT.md)_
Ian Hicksoncffe4812016-12-10 21:46:57 -08007
Ian Hickson529d2502018-06-01 12:04:20 -07008Welcome
9-------
10
Ian Hicksoncf2fba72018-11-06 13:41:09 -080011We invite you to join our team! Everyone is welcome to contribute code
12via pull requests, to file issues on GitHub, to help people asking for
13help on our mailing lists or on Stack Overflow, to help triage,
14reproduce, or fix bugs that people have filed, to add to our
15documentation, or to help out in any other way.
Ian Hickson529d2502018-06-01 12:04:20 -070016
Ian Hicksoncf2fba72018-11-06 13:41:09 -080017We grant commit access (which includes full rights to the issue
18database, such as being able to edit labels) to people who have gained
19our trust and demonstrated a commitment to Flutter.
Ian Hickson529d2502018-06-01 12:04:20 -070020
Ian Hicksoncf2fba72018-11-06 13:41:09 -080021This document focuses on what is needed to contribute by writing code
22and submitting pull requests for the Flutter framework. For
23information on contributing in other ways, see [the community page
Tim Sneath52918972019-04-05 11:39:30 -070024on flutter.dev](https://flutter.dev/community).
Ian Hickson529d2502018-06-01 12:04:20 -070025
Ian Hicksoncf2fba72018-11-06 13:41:09 -080026Developing for Flutter
27----------------------
Ian Hickson529d2502018-06-01 12:04:20 -070028
Ian Hicksoncf2fba72018-11-06 13:41:09 -080029To develop for Flutter, you will eventually need to become familiar
30with our processes and conventions. This section lists the documents
31that describe these methodologies. The following list is ordered: you
32are strongly recommended to go through these documents in the order
33presented.
Adam Barth576795d2015-11-08 21:33:00 -080034
Ian Hicksoncf2fba72018-11-06 13:41:09 -0800351. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
36 that everyone must be gracious, respectful, and professional. This
37 also documents our conflict resolution policy and encourages people
38 to ask questions.
Adam Barth576795d2015-11-08 21:33:00 -080039
Ian Hicksoncf2fba72018-11-06 13:41:09 -0800402. [Values](https://github.com/flutter/flutter/wiki/Values),
41 which talks about what we care most about.
Adam Barth576795d2015-11-08 21:33:00 -080042
Ian Hicksoncf2fba72018-11-06 13:41:09 -0800433. [Setting up your engine development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment),
44 which describes the steps you need to configure your computer to
45 work on Flutter's engine. If you only want to write code for the
46 Flutter framework, you can skip this step. Flutter's engine uses
47 mainly C++, Java, and ObjectiveC.
Adam Barth576795d2015-11-08 21:33:00 -080048
Ian Hicksoncf2fba72018-11-06 13:41:09 -0800494. [Setting up your framework development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Framework-development-environment),
50 which describes the steps you need to configure your computer to
51 work on Flutter's framework. Flutter's framework uses mainly Dart.
Adam Barth576795d2015-11-08 21:33:00 -080052
Tim Sneath52918972019-04-05 11:39:30 -0700535. [Tree hygiene](https://github.com/flutter/flutter/wiki/Tree-hygiene),
Ian Hicksoncf2fba72018-11-06 13:41:09 -080054 which covers how to land a PR, how to do code review, how to
55 handle breaking changes, how to handle regressions, and how to
56 handle post-commit test failures.
Adam Barth576795d2015-11-08 21:33:00 -080057
Tim Sneath52918972019-04-05 11:39:30 -0700586. [Issue hygiene](https://github.com/flutter/flutter/wiki/Issue-hygiene),
Ian Hicksoncf2fba72018-11-06 13:41:09 -080059 which covers our processes around triaging bugs, escalating high
60 priority bugs, assigning bugs, and our GitHub labels and
61 milestones.
Adam Barth576795d2015-11-08 21:33:00 -080062
Tim Sneath52918972019-04-05 11:39:30 -0700637. [Our style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo),
Ian Hicksoncf2fba72018-11-06 13:41:09 -080064 which includes advice for designing APIs for Flutter, and how to
65 format code in the framework.
Adam Barth576795d2015-11-08 21:33:00 -080066
Ian Hicksoncf2fba72018-11-06 13:41:09 -080067In addition to the above, there are many pages on [our
68Wiki](https://github.com/flutter/flutter/wiki/) that may be of
69interest. For a curated list of pages see the sidebar on the wiki's
70home page. They are more or less listed in order of importance.
Ian Hickson2f630442018-10-25 15:40:35 -070071
72If you would like to chat to other people who work on Flutter, consider joining the
Ian Hicksoncf2fba72018-11-06 13:41:09 -080073https://gitter.im/flutter/contributors chat channel. We also have a [general chat
Ian Hickson2f630442018-10-25 15:40:35 -070074channel](https://gitter.im/flutter/flutter) for people who aren't working on Flutter
Ian Hicksoncf2fba72018-11-06 13:41:09 -080075but who use Flutter.