Skip to content
This repository has been archived by the owner on Nov 10, 2018. It is now read-only.
JVonderwell edited this page May 13, 2018 · 9 revisions

Contributing to Holoclean

Creating an issue guidelines

When an issue is created , it should have the following items in the description:

What is the priority of the issue?(urgent, medium,low)

  1. A general description of the issue
  2. What are the benefits of fixing this issue?
  3. What is the cost of fixing this issue?
  4. (Optional) Ideas about the implementation

Development workflow

We use a simplified version of GitFlow. The lifecycle of a new feature or bug fix is as follows.

Note: All development and bug fixing should occur on a feature-* branch

  1. An issue is created and a developer/reviewer pair are assigned
  2. From an issue, a feature branch is created from the dev branch with the name feature-* where * is the issue number
  3. The developer works on the branch feature-* until they have met the requirements to submit a PR
  4. A PR is submitted, and the reviewer ensures that the PR requirements are met
  5. The reviewer accepts the pull request
  6. Eventually, two reviewers are assigned to the dev branch as a whole, and then the master branch receives the changes from dev

PR submission requirements

It is the expectation that any time a pull request is submitted from a branch <feature_branch> to <dev> that the developer submitting the pull request has ensured:

  1. All current tests for the code base pass on this branch
    • Not just tests for that feature
  2. All style guidelines have been met
    • The code itself should adhere to PEP8
    • Any unused code has been removed
  3. Any relevant documentation (pydocs, user tutorial) have been generated
    • If a user tutorial was created, this must be reviewed as well
  4. A technical changelog has been generated for the reviewer, this can be bullet points
    • Put this changelog inside the pull request

Committing guidelines

When committing to any feature branch, please include an issue reference # in your commit. That way everyone knows what issues are seeing active development.