Opening a Pull Request

Before opening your first pull request to Yoga you have to know how to get the code, install build time dependencies, and test the code locally.


$> git clone
$> cd yoga

Install dependencies

$> git submodule init
$> git submodule update
$> brew install buck

Build and Test

$> buck build //:yoga
$> buck test //:yoga

Making a Change

Now all you need to do is make your change and test it before submitting a pull request for review. Below is the general structure of the repo and where you may want to make your change. One you have made your change see the testing documentation for more on how to test your change.

|-- yoga                  # Home to the main Yoga codebase written in C++. Any algorithmic changes should be made here
|-- lib                   # Yoga external dependencies. Be thoughtful adding any new ones
|-- tests                 # Yoga's C++ test suite. Both manaul and generated tests
|-- gentest
|   |-- fixtures          # html fixtures for generated tests    
|-- java         
|   |-- com/facebook/yoga # Java binding code
|   |-- jni               # JNI binding code
|-- yogacore              # Android bindings without View support
|-- android               # Android View bindings
|-- YogaKit               # iOS UIView bindings
|-- javascript            # emscripten / javascript bindings
|-- csharp                # .NET bindings in c#