Changeset View
Changeset View
Standalone View
Standalone View
externals/javelin/src/docs/facebook.diviner
- This file was added.
| @title Javelin at Facebook | |||||
| @group facebook | |||||
| Information specific to Javelin at Facebook. | |||||
| = Building Support Scripts = | |||||
| Javelin now ships with the source to build several libfbjs-based binaries, which | |||||
| serve to completely sever its dependencies on trunk: | |||||
| - ##javelinsymbols##: used for lint | |||||
| - ##jsast##: used for documentation generation | |||||
| - ##jsxmin##: used to crush packages | |||||
| To build these, first build libfbjs: | |||||
| javelin/ $ cd externals/libfbjs | |||||
| javelin/externals/libfbjs/ $ CXX=/usr/bin/g++ make | |||||
| Note that **you must specify CXX explicitly because the default CXX is broken**. | |||||
| Now you should be able to build the individual binaries: | |||||
| javelin/ $ cd support/javelinsymbols | |||||
| javelin/support/javelinsymbols $ CXX=/usr/bin/g++ make | |||||
| javelin/ $ cd support/jsast | |||||
| javelin/support/jsast $ CXX=/usr/bin/g++ make | |||||
| javelin/ $ cd support/jsxmin | |||||
| javelin/support/jsxmin $ CXX=/usr/bin/g++ make | |||||
| = Synchronizing Javelin = | |||||
| To synchronize Javelin **from** Facebook trunk, run the synchronize script: | |||||
| javelin/ $ ./scripts/sync-from-facebook.php ~/www | |||||
| ...where ##~/www## is the root you want to pull Javelin files from. The script | |||||
| will copy files out of ##html/js/javelin## and build packages, and leave the | |||||
| results in your working copy. From there you can review changes and commit, and | |||||
| then push, diff, or send a pull request. | |||||
| To synchronize Javelin **to** Facebook trunk, run the, uh, reverse-synchronize | |||||
| script: | |||||
| javelin/ $ ./scripts/sync-to-facebook.php ~/www | |||||
| ...where ##~/www## is the root you want to push Javelin files to. The script | |||||
| will copy files out of the working copy into your ##www## and leave you with a | |||||
| dirty ##www##. From there you can review changes. | |||||
| Once Facebook moves to pure git for ##www## we can probably just submodule | |||||
| Javelin into it and get rid of all this nonsense, but the mixed SVN/git | |||||
| environment makes that difficult until then. | |||||
| = Building Documentation = | |||||
| Check out ##diviner## and ##libphutil## from Facebook github, and put them in a | |||||
| directory with ##javelin##: | |||||
| somewhere/ $ ls | |||||
| diviner/ | |||||
| javelin/ | |||||
| libphutil/ | |||||
| somewhere/ $ | |||||
| Now run ##diviner## on ##javelin##: | |||||
| somewhere/ $ cd javelin | |||||
| somewhere/javelin/ $ ../diviner/bin/diviner . | |||||
| [DivinerArticleEngine] Generating documentation for 48 files... | |||||
| [JavelinDivinerEngine] Generating documentation for 74 files... | |||||
| somewhere/javelin/ $ | |||||
| Documentation is now available in ##javelin/docs/##. | |||||
| = Editing javelinjs.com = | |||||
| The source for javelinjs.com lives in ##javelin/support/webroot/##. The site | |||||
| itself is served off the phabricator.com host. You need access to that host to | |||||
| push it. | |||||