Skip to content

Commit ff9d6e5

Browse files
authored
Add more things to CONTRIBUTING.md (#101875)
* Add more things to CONTRIBUTING.md * I forgot about QA!
1 parent 0575932 commit ff9d6e5

File tree

1 file changed

+93
-19
lines changed

1 file changed

+93
-19
lines changed

CONTRIBUTING.md

Lines changed: 93 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,23 @@ page on our wiki.
2222

2323
We communicate primarily over GitHub and [Discord](https://github.com/flutter/flutter/wiki/Chat).
2424

25-
_See also: [Flutter's code of conduct](CODE_OF_CONDUCT.md)_
25+
Before you get started, we encourage you to read these documents which describe some of our community norms:
26+
27+
1. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
28+
that everyone must be gracious, respectful, and professional. This
29+
also documents our conflict resolution policy and encourages people
30+
to ask questions.
31+
32+
2. [Values](https://github.com/flutter/flutter/wiki/Values),
33+
which talks about what we care most about.
2634

2735
Helping out in the issue database
2836
---------------------------------
2937

38+
Triage is the process of going through bugs and determining if they are valid, finding out
39+
how to reproduce them, catching duplicate reports, and generally making our issues list
40+
useful for our engineers.
41+
3042
If you want to help us triage, you are very welcome to do so!
3143

3244
1. Join the #hackers-triage [Discord channel](https://github.com/flutter/flutter/wiki/Chat).
@@ -52,6 +64,26 @@ If you want to help us triage, you are very welcome to do so!
5264
[contributor access](https://github.com/flutter/flutter/wiki/Contributor-access) wiki
5365
page for details.
5466

67+
68+
Quality Assurance
69+
-----------------
70+
71+
One of the most useful tasks, closely related to triage, is finding and filing bugs. Testing
72+
beta releases, looking for regressions, creating test cases, adding to our test suites, and
73+
other work along these lines can really drive the quality of the product up. Creating tests
74+
that increase our test coverage, writing tests for issues others have filed, all these tasks
75+
are really valuable contributions to open source projects.
76+
77+
If this interests you, you can jump in and submit bugs without needing anyone's permission!
78+
The #hackers-tests channel on our [Discord server](https://github.com/flutter/flutter/wiki/Chat)
79+
is a good place to talk about what you're doing. If you want to contribute test cases, you
80+
can also submit PRs, see the next section for how to set up your development environment.
81+
82+
> As a personal side note, this is exactly the kind of work that first got me into open
83+
> source. I was a Quality Assurance volunteer on the Mozilla project, writing test cases for
84+
> browsers, long before I wrote a line of code for any open source project. —Hixie
85+
86+
5587
Developing for Flutter
5688
----------------------
5789

@@ -63,39 +95,26 @@ that describe these methodologies. The following list is ordered: you
6395
are strongly recommended to go through these documents in the order
6496
presented.
6597

66-
1. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
67-
that everyone must be gracious, respectful, and professional. This
68-
also documents our conflict resolution policy and encourages people
69-
to ask questions.
70-
71-
2. [Values](https://github.com/flutter/flutter/wiki/Values),
72-
which talks about what we care most about.
73-
74-
3. [Setting up your engine development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment),
98+
1. [Setting up your engine development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Engine-development-environment),
7599
which describes the steps you need to configure your computer to
76100
work on Flutter's engine. If you only want to write code for the
77101
Flutter framework, you can skip this step. Flutter's engine mainly
78102
uses C++, Java, and Objective-C.
79103

80-
4. [Setting up your framework development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Framework-development-environment),
104+
2. [Setting up your framework development environment](https://github.com/flutter/flutter/wiki/Setting-up-the-Framework-development-environment),
81105
which describes the steps you need to configure your computer to
82106
work on Flutter's framework. Flutter's framework mainly uses Dart.
83107

84-
5. [Tree hygiene](https://github.com/flutter/flutter/wiki/Tree-hygiene),
108+
3. [Tree hygiene](https://github.com/flutter/flutter/wiki/Tree-hygiene),
85109
which covers how to land a PR, how to do code review, how to
86110
handle breaking changes, how to handle regressions, and how to
87111
handle post-commit test failures.
88112

89-
6. [Issue hygiene](https://github.com/flutter/flutter/wiki/Issue-hygiene),
90-
which covers our processes around triaging bugs, escalating high
91-
priority bugs, assigning bugs, and our GitHub labels and
92-
milestones.
93-
94-
7. [Our style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo),
113+
4. [Our style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo),
95114
which includes advice for designing APIs for Flutter, and how to
96115
format code in the framework.
97116

98-
8. [Flutter design doc template](https://flutter.dev/go/template),
117+
5. [Flutter design doc template](https://flutter.dev/go/template),
99118
which should be used when proposing a new technical design. This is a good
100119
practice to do before coding more intricate changes.
101120

@@ -107,3 +126,58 @@ there are many pages on [our Wiki](https://github.com/flutter/flutter/wiki/),
107126
and an article [Contributing to Flutter: Getting Started](https://medium.com/@ayushbherwani/contributing-to-flutter-getting-started-a0db68cbcd5b)
108127
on Medium that may be of interest. For a curated list of pages see the sidebar
109128
on the wiki's home page. They are more or less listed in order of importance.
129+
130+
131+
Outreach
132+
--------
133+
134+
If your interests lie in the direction of developer relations and developer outreach,
135+
whether advocating for Flutter, answering questions in fora like
136+
[Stack Overflow](https://stackoverflow.com/questions/tagged/flutter?sort=Newest&filters=NoAnswers,NoAcceptedAnswer&edited=true)
137+
or [Reddit](https://www.reddit.com/r/flutterhelp/new/?f=flair_name%3A%22OPEN%22),
138+
or creating content for our [documentation](https://docs.flutter.dev/)
139+
or sites like [YouTube](https://www.youtube.com/results?search_query=flutter&sp=EgQIAxAB),
140+
the best starting point is to join the #hackers-devrel [Discord channel](https://github.com/flutter/flutter/wiki/Chat).
141+
From there, you can describe what you're interested in doing, and go ahead and do it!
142+
As others become familiar with your work, they may have feedback, be interested in
143+
collaborating, or want to coordinate their efforts with yours.
144+
145+
146+
API documentation
147+
-----------------
148+
149+
Another great area to contribute in is sample code and API documentation. If this is an area that interests you, join our
150+
[Discord](https://github.com/flutter/flutter/wiki/Chat) server and introduce yourself on the #hackers-deverl, #hackers-framework,
151+
or #hackers-engine channels, describing your area of interest. As our API docs are integrated into our source code, see the
152+
"developing for Flutter" section above for a guide on how to set up your developer environment.
153+
154+
To contribute API documentation, an excellent command of the English language is particularly helpful, as is a careful attention to detail.
155+
We have a [whole section in our style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#documentation-dartdocs-javadocs-etc)
156+
that you should read before you write API documentation. It includes notes on the "Flutter Voice", such as our word and grammar conventions.
157+
158+
In general, a really productive way to improve documentation is to use Flutter and stop any time your have a question: find the answer, then
159+
document the answer where you first looked for it.
160+
161+
We also keep [a list of areas that need better API documentation](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22d%3A+api+docs%22+sort%3Areactions-%2B1-desc).
162+
In many cases, we have written down what needs to be said in the relevant issue, we just haven't gotten around to doing it!
163+
164+
We're especially eager to add sample code and diagrams to our API documentation. Diagrams are generated from Flutter code that
165+
draws to a canvas, and stored in a [special repository](https://github.com/flutter/assets-for-api-docs/#readme). It can be a lot of fun
166+
to create new diagrams for the API docs.
167+
168+
169+
Releases
170+
--------
171+
172+
If you are interested in participating in our release process, which may involve writing release notes and blog posts, coordinating the actual
173+
generation of binaries, updating our release tooling, and other work of that nature, then reach out on the #hackers-releases
174+
channel of our [Discord](https://github.com/flutter/flutter/wiki/Chat) server.
175+
176+
177+
Social events in the contributor community
178+
------------------------------------------
179+
180+
Finally, one area where you could have a lot of impact is in contributing to social interactions among the Flutter contributor community itself.
181+
This could take the form of organizing weekly video chats on our Discord, or planning tech talks from contributors, for example.
182+
If this is an area that is of interest to you, please join our [Discord](https://github.com/flutter/flutter/wiki/Chat) and ping Hixie on the #hackers
183+
channel!

0 commit comments

Comments
 (0)