Starting with an configured checkout, here's the standard workflow to make a modification to the source code:
gclient sync anywhere in infra.git.
luci-py it might be
git new-branch <branch-name>.
git cl upload. This step runs the tests, which must pass. If they don‘t, go back to the previous step to fix any issue. You can use test.py to run tests anytime. Make sure you’ve added reviewers for your modifications and sent an email.
git cl land if you're a Chromium committer.
Use Textproto for anything that's checked-in/human-editable (i.e. configuration) because it is more readable and easier to edit. More specifically, it allows the addition of comments, JSON does not.