Skip to content

Latest commit

 

History

History
85 lines (62 loc) · 2.04 KB

CONTRIBUTING.md

File metadata and controls

85 lines (62 loc) · 2.04 KB

Contributing to Orbit

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.

Setup

First fork the repository on dev branch

$ git clone --single-branch --branch dev https://github.com/uber/orbit.git

Making Changes

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

Test

Prerequisites

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

Testing

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/

Linting

You can run black linting to lint the code style.

Linting one single file

$ black <file path>

Linting every file under the current directory

$ black .

Outputting the code change black would have done without actually making change

$ black --diff <file path>

Submission

In your PR, please include:

  • Changes made
  • Links to related issues/PRs
  • Tests
  • Dependencies
  • References

Please add the core Orbit contributors as reviewers.

Merging and Releasing versions

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