The Orbit project welcome community contributors. To contribute to it, please follow guidelines here.
The codebase is hosted on Github at https://github.com/uber/orbit.
All code need to follow the PEP8 style guide with a few exceptions listed in tox.ini.
Before contributing, please review outstanding issues. If you'd like to contribute to something else, open an issue for discussion first.
First fork the repository on dev
branch
$ git clone --single-branch --branch dev https://github.com/uber/orbit.git
Create a new branch to develop new code
$ cd orbit
$ git checkout feat-my-new-feature # our branch naming convention
$ pip install -r requirements.txt # install dependencies
$ pip install -e . # install with dev mode
Install orbit required dependencies for test.
$ pip install -r requirements-test.txt
In order to run tests, you need to build the Cython modules
$ python setup.py build_ext --inplace
After your changes and before submitting a pull request, make sure the change to pass all tests and test coverage to be at least 70%.
$ pytest -vs tests/ --cov orbit/
You can run black linting to lint the code style.
$ black <file path>
$ black .
$ black --diff <file path>
In your PR, please include:
- Changes made
- Links to related issues/PRs
- Tests
- Dependencies
- References
Please add the core Orbit contributors as reviewers.
We use squash and merge for changes onto dev
branch. However, due to history comparison, from dev
to release
and master
, we use rebase and merge. For release details, please refer to RELEASE.md