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).
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:
You will also need to ensure that you have
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:
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 patchTo pull a diff from Phabricator down into your git repo, use
arc patchwith the diff number. (If this was based on another tree, it will prompt you accordingly.)
arc patch D13803