[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/externals/javelin/docs/ -> facebook.diviner (source)

   1  @title Javelin at Facebook
   2  @group facebook
   3  
   4  Information specific to Javelin at Facebook.
   5  
   6  = Building Support Scripts =
   7  
   8  Javelin now ships with the source to build several libfbjs-based binaries, which
   9  serve to completely sever its dependencies on trunk:
  10  
  11    - ##javelinsymbols##: used for lint
  12    - ##jsast##: used for documentation generation
  13    - ##jsxmin##: used to crush packages
  14  
  15  To build these, first build libfbjs:
  16  
  17    javelin/ $ cd externals/libfbjs
  18    javelin/externals/libfbjs/ $ CXX=/usr/bin/g++ make
  19  
  20  Note that **you must specify CXX explicitly because the default CXX is broken**.
  21  
  22  Now you should be able to build the individual binaries:
  23  
  24    javelin/ $ cd support/javelinsymbols
  25    javelin/support/javelinsymbols $ CXX=/usr/bin/g++ make
  26  
  27    javelin/ $ cd support/jsast
  28    javelin/support/jsast $ CXX=/usr/bin/g++ make
  29  
  30    javelin/ $ cd support/jsxmin
  31    javelin/support/jsxmin $ CXX=/usr/bin/g++ make
  32  
  33  = Synchronizing Javelin =
  34  
  35  To synchronize Javelin **from** Facebook trunk, run the synchronize script:
  36  
  37    javelin/ $ ./scripts/sync-from-facebook.php ~/www
  38  
  39  ...where ##~/www## is the root you want to pull Javelin files from. The script
  40  will copy files out of ##html/js/javelin## and build packages, and leave the
  41  results in your working copy. From there you can review changes and commit, and
  42  then push, diff, or send a pull request.
  43  
  44  To synchronize Javelin **to** Facebook trunk, run the, uh, reverse-synchronize
  45  script:
  46  
  47    javelin/ $ ./scripts/sync-to-facebook.php ~/www
  48  
  49  ...where ##~/www## is the root you want to push Javelin files to. The script
  50  will copy files out of the working copy into your ##www## and leave you with a
  51  dirty ##www##. From there you can review changes.
  52  
  53  Once Facebook moves to pure git for ##www## we can probably just submodule
  54  Javelin into it and get rid of all this nonsense, but the mixed SVN/git
  55  environment makes that difficult until then.
  56  
  57  = Building Documentation =
  58  
  59  Check out ##diviner## and ##libphutil## from Facebook github, and put them in a
  60  directory with ##javelin##:
  61  
  62    somewhere/ $ ls
  63    diviner/
  64    javelin/
  65    libphutil/
  66    somewhere/ $
  67  
  68  Now run ##diviner## on ##javelin##:
  69  
  70    somewhere/ $ cd javelin
  71    somewhere/javelin/ $ ../diviner/bin/diviner .
  72    [DivinerArticleEngine] Generating documentation for 48 files...
  73    [JavelinDivinerEngine] Generating documentation for 74 files...
  74    somewhere/javelin/ $
  75  
  76  Documentation is now available in ##javelin/docs/##.
  77  
  78  = Editing javelinjs.com =
  79  
  80  The source for javelinjs.com lives in ##javelin/support/webroot/##. The site
  81  itself is served off the phabricator.com host. You need access to that host to
  82  push it.


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1