mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-30 01:10:58 +01:00
83 lines
2.5 KiB
Text
83 lines
2.5 KiB
Text
|
@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.
|