Contributing to Recipes

tl;dr: join Discord, be courteous, follow the steps below to set up a development environment.

Welcome

We invite you to join the Flutter team, which is made up of volunteers and sponsored folk alike! There are many ways to contribute, including writing code, filing issues on GitHub, helping people on our mailing lists, our chat channels, or on Stack Overflow, helping to triage, reproduce, or fix bugs that people have filed, adding to our documentation, doing outreach about Flutter, or helping out in any other way.

For additional context please read the Flutter's CONTRIBUTING document.

Sign in to Gerrit (one time)

Gerrit is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. It integrates closely with Git, a distributed version control system. Flutter uses Gerrit/Git for source code control to take advantage of the existent LUCI integrations.

Note: git client must be pre-installed in your system.

Visit Flutter's Gerrit Host and click the sign in link on the top right section of the page.

Create a gerrit account (one time)

Visit the Settings page of the Flutter Gerrit Host. It will offer to create a gerrit account, follow the on screen instructions to create the account.

Generate passwords (one time)

Visit the Settings page of the Flutter Gerrit Host. Scroll down close to the bottom and click on the obtain password link, click on allow, copy the command from the new window and run it on your git terminal. This will cache your credentials in your local environment.

Sign CLA (one time)

Visit the Settings page of the Flutter Gerrit Host. Scroll down close to the bottom and click on the new contributor agreement link, select Google CLA, review the CLA and accept the agreement.

Create a change list

Please ensure you have created a gerrit account, generated passwords (ran the associated commands) and accepted the CLA before running the next commands.

The following commands can be used to create a new change list and sent it for review:

git clone https://flutter.googlesource.com/recipes # clone the repository.
cd recipes
git checkout -b <new_branch>
# git add <file> or git rm <file>
git commit
git push origin HEAD:refs/for/main

# The commands below need to be executed once on the first CL to the repository.
# If this is your first CL and you get an error related to  "missing Change-Id in message footer"
# run the command provided in the hint section above the error. This is is required only in the first
# CL to enable the hook to automatically add a change ID to the CL.
# git commit --amend --no-edit
# git push origin HEAD:refs/for/main