1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 14:00:56 +01:00
phorge-phorge/webroot/rsrc/externals/javelin/docs/facebook.diviner
epriestley 95f57756aa Move all external JS into webroot/rsrc/externals
Summary:
Currently, Celerity map rebuilds on Windows don't put Stripe or Raphael into the map. Move them into `webroot/rsrc/externals/` so they get picked up.

At some point we should maybe let the mapper load resources from mulitple locations, but this is more straightforward for now.

See https://github.com/facebook/phabricator/issues/294

Test Plan: Rebuilt map, verified Burnup Rate + Stripe work.

Reviewers: vrana, btrahan

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D5661
2013-04-11 10:06:05 -07:00

82 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.