diff --git a/.divinerconfig b/.divinerconfig index dcaf6b2..02638ca 100644 --- a/.divinerconfig +++ b/.divinerconfig @@ -1,10 +1,14 @@ { "name" : "Javelin", "src_base" : "https://github.com/epriestley/javelin/blob/master", "phutil_libraries" : { "javelin-diviner" : "support/diviner" }, + "groups" : { + "facebook" : "Information for Facebook Employees" + }, "engines" : [ + ["DivinerArticleEngine", {}], ["JavelinDivinerEngine", {}] ] } diff --git a/src/docs/facebook.diviner b/src/docs/facebook.diviner new file mode 100644 index 0000000..0ebd8af --- /dev/null +++ b/src/docs/facebook.diviner @@ -0,0 +1,69 @@ +@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 trunk, run the synchronize script: + + javelin/ $ ./scripts/synchronize-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. + += 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.