For people who make the occasional contribution to Flutter (filing an issue, submitting the occasional PR, chatting on Discord), the default set of permissions is fine. However, if you are a frequent contributor, whether helping us in triage, or often fixing bugs, or regularly improving our documentation, or regularly helping others in our #help channel, or participating in high-level design discussions and prioritization, you may find your life is more pleasant with commit access (also known as “contributor access”, “being a member of the flutter-hackers group”, “being a member of the Flutter team”).
We grant commit access (which includes full rights to the issue database, such as being able to edit labels, and grants access to our internal chat channels) to people who have gained our trust and demonstrated a commitment to Flutter.
Specifically, if you meet one of the following criteria and you have a sponsor (someone who already has contributor access and agrees that you should be granted access), then please ask your sponsor to propose, on the #server-support Chat channel, that you be made a member of the team, and then reply to that message explaining which criteria below you are claiming to meet. The possible criteria are:
Being granted access means that you will be added to the “flutter-hackers” group on GitHub and the “team” role on Discord. This privilege is granted with some expectation of responsibility: contributors are people who care about Flutter and want to help Flutter along our roadmap. A contributor is not just someone who can make changes or comment on issues, but someone who has demonstrated their ability to collaborate with the team, get the most knowledgeable people to review code, contribute high-quality code, follow through to fix bugs (in code or tests), and provide meaningful insights on issues.
We grant access optimistically based on a reasonably small volume of evidence of good faith. Correspondingly, we will remove access quickly if we find our trust has been violated. Contributors with commit access must still follow all our processes and policies, and must follow our code of conduct rigorously. (Please read it, it's stricter than most.)
If you have commit access or “team” access on the Discord server, you are responsible for enforcing our code of conduct.
Our code of conduct is much, much stricter than most. We do not wait until someone has been actively rude or insulting. Being disrespectful in any way is grounds for action. For example, passive-aggressive whining and general unconstructive negativity are all violations of the code of conduct. If someone is in a bad mood, we would rather they avoided contributing to Flutter on that day.
When you see something that might be described as unwelcoming or is in some other way a violation of our code of conduct, promptly contact the offender and ask them to read the code of conduct and consider how they might more effectively espouse its philosophy. Most people react very positively to this.
If they react negatively, or if they continue to make the environment unpleasant, they should be removed from the environment. On Discord, this would be kicking them from the channel. Repeat offenders should be banned. On GitHub, they can be blocked from our organisation (you may need to ask @Hixie or another admin of our GitHub org to do this). Please let the #server-support Chat channel know when you do anything like this, so that we can keep an eye on how common it is.
Part of being a contributor is making sure our documentation is up to date, including our internal (team-facing) documentation such as this wiki. If you spot something wrong, please fix it! As a contributor, you have access to the wiki.
Being in the GitHub “flutter-hackers” group gives you the following:
The ability to merge your own PRs once they are reviewed (see Tree Hygiene).
The ability to add labels, milestones, etc, on issues on GitHub (see Issue Hygiene).
PRs will run their tests slightly faster.
Being in the Discord “team” group gives you the following:
The ability to talk without rate-limiting on the #hackers-* channels.
The ability to kick people.
The ability to manage the server emoji.
The actual process (as followed by Flutter repo admins) is as follows:
For new Googlers joining the team: You need to ask someone in the team to add you to get added. It's not an automatic process after you join the flutter Google group.
We occasionally check for account with commit access that have not been used for a while. It takes very little to count as “active” (e.g. commenting on an issue, even adding an emoji reaction to an issue). If your account has been inactive for over a year we will try to reach out (e.g. by e-mail or on Discord) before removing access.
If your account access was removed but you wish to return to contributing to Flutter, you are most welcome to do so; just reach out on the Discord (see Chat) and ask someone to renominate you according to the process described above.
The Flutter dashboard shows what recently landed and what tests passed or failed with those commits. To see rerun tasks, you need to be added to an allowlist. Anyone with commit access is eligible to be added to that allowlist, but only certain team members have the permissions required to update the backend database where the permissions are stored. To get access, ask on #hackers-infra to be added to the allowlist.
This is only for team members with access to the Flutter Dashboard Datastore.
Create Entity
Email: Empty
-> Edit property. Insert contributor Google accountCreate
If you need access to the LUCI recipes, you need to be added to the relevant ACLs. Ask in #hackers-infra to be added to the LUCI ACLs.
A Googler has to be the one to grant permission. Documentation on how to use the relevant tools is available at: https://goto.google.com/gob-ctl#add-or-remove-users-in-host-acl
If you need access to triage images in Flutter Gold, you need to be added as an authorized user. Users in the @google.com
domain are already authorized to use Flutter Gold, but @gmail.com
addresses can also be added to the allow list.
The list of authorized users is maintained in the skia build-bot repository, in this file. Googlers can submit a change to add to the authorized users.
This repository is also mirrored on GitHub.
If you are a team member who wants to share design docs (see Chat) but you don't want to use your own personal account, you can ask a Flutter admin for an fcontrib.org account. Ping @Hixie or another admin in the #server-support channel on Discord.
You’ll need the user’s email account somewhere else, first and last name, and desired fcontrib.org account login before you begin.
To add a fcontrib.org participant:
Some parts of the codebase have teams specified so that PRs get round-robin assigned for review.
To join one of these teams, request members be added/deleted, or change any settings, ping @Hixie on Discord. Members must be a member of the Flutter Hackers group (as documented at the top of this page).
We currently have the following review teams:
android-reviewers
: for folks working on the Android port of Flutter; use #hackers-android
for discussions.devtools-reviewers
: for the devtools repo; use #hackers-devexp
for discussions.website-reviewers
: for folks working on www.flutter.dev and docs.flutter.dev; use #hackers-devrel
for discussions.To create a new team, contact @Hixie. You will also need to create a CODEOWNERS
file to actually trigger the review assignment.
Some branches are protected to avoid accidents. Only people in the specific branches can push to them. Anyone can ask to be added or removed from these groups, they exist only to reduce accidents, not for security.
To join one of these teams, request members be added/deleted, or change any settings, ping @Hixie on Discord. Members must be a member of the Flutter Hackers group (as documented at the top of this page).
The following groups have been defined for these purposes: pushers-beta, pushers-fuchsia