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 infra/luci
.git new-branch <branch-name>
.git commit
.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.
Use JSON exclusively for passing to/from small scripts (especially python ones, so it doesn't have to depend on the protobuf package), and for communicating to Javascript clients.