If you find something interesting you want contribute to the repo, feel free to raise a PR, or open an issue for features you'd like to see added.
For small bug-fixes, documentation updates, or other trivial changes, feel free to jump straight to submitting a pull request.
If the changes are larger (API design, architecture, etc), opening an issue can be helpful to reduce implementation churn as we hash out the design.
-
Android NDK 23.2.8568313. You'll need to add
ANDROID_NDK_HOME
to your environment manually. -
Python < 3 (recommended 2.7.18) - you can use pyenv to manage different python versions with ease.
-
Signed Commits. For convenience it is recommended to set git to sign all commits by default as mentioned here
This project also contains just recipes for many common commands. They can be listed using
just -l
For speed and consistency, this repo leverages bazel
as it's main build tool. Check out the bazel docs for more info.
After forking the repo, run builds using bazel to test, build and run:
These require the Android NDK. The docs site can be ran using:
bazel build //docs/site:start
bazel run //docs/site:start
which will run an instance on http://localhost:3000
.
If you are interested in only contributing for android, follow our android guide
Generate the .xcodeproj
to open and work in Xcode. Builds and tests will be executed through bazel, to ensure behavioral parity.
bazel run //ios:xcodeproj
open -a Xcode ios/PlayerUI.xcodeproj/
The first time the Xcode project is generated, the default selected target is PlayerUI
, for a runnable target select PlayerUIDemo
to run the demo application in the simulator.
The demo app can also be built and launched in a simulator from the command line with bazel:
bazel run //ios/demo:PlayerUIDemo
Prior to submitting a pull request, ensure that your fork and branch are up to date with the lastest changes on main
.
Any new features should have corresponding tests that exercise all code paths, and public symbols should have docstrings at a minimum. For more complex features, adding new documentation pages to the site to help guide users to consume the feature would be preferred.
When you're ready, submit a new pull request to the main
branch and the team will be notified of the new requested changes. We'll do our best to respond as soon as we can.
Inspired by react's How to Contribute