Is Your Change Appropriate?
The change must be stable enough to come with a high confidence that it's not going to introduce bugs. For example, it should be simple, obvious, or have some solid stable history of running in production.The change must not break anything that anyone else might care about, unless someone from each of the participating groups agrees the breakage from the change is worth it. Note that a significant performance regression constitutes "breakage" here too.
The change must be useful to at least one participating group. And, the change must at least be potentially useful to others (not necessarily participants).
Get Setup
If you've been given push access, you will need arcanist (the 'arc
' command) to propose your changes. The short version of getting that is:
git clone git://github.com/facebook/libphutil.git git clone git://github.com/facebook/arcanist.git
You then need to add arc to your PATH. You can either symlink it into an existing PATH directory:
cd arcanist/bin/ ln -sv arc <a_dir_already_in_your_path>
Alternatively you can add the arcanist/bin
dir to your path instead:
export PATH="$PATH:<full_arcanist_bin_path>"
You will also need to ensure that you have php5-curl
installed.
Next, go to your checked out WebScaleSQL repo and install the certificate:
cd <webscalesql_repo_path> arc install-certificate
You'll be given instructions to get and paste the token to link this installation to your reviews.facebook.net account.
Proposing a Change
To propose a change, commit it in a single git commit, with a fully completed message. For example:
My first commit Summary: Feature: New Shiny Thing A great new feature. It's useful because of important stuff. You use it by doing things. Test Plan: Ran mtr, and all tests passed. Also tested important stuff, and that worked too. Reviewers: afriend, anotherfriend CC: interestedfriend
You can also use an earlier commit as a commit message template. These fields in the commit message are important and required for Phabricator.
Once committed, run arc diff
to submit the commit to Phabricator:
arc diff --verbatim
If you want to make any subsequent changes to the diff, perhaps because of review feedback, update the git commit using the --amend
flag. Then send the update to Phabricator using arc diff
again:
arc diff --verbatim -m "This message explains my update"
Once a diff is approved, you can update your local diff with the review result in Phabricator:
arc amend
You should then see that your most recent commit message includes the Reviewed By:
line. At this point, you can can push the diff to GitHub via git as usual.
Applying a patch
To pull a diff from Phabricator down into your git repo, usearc patch
with the diff number. (If this was based on another tree, it will prompt you accordingly.)
arc patch D13803