There are two types of issues we use for development cycle: Bug and Feature. There are other labels for different purposes, however.

Anytime you got stuck or don’t know how something works: remember, that a documentation issue. You need to state that. Task will be reassigned to you. Documentation will be updated shortly. And you will continue to work on it once your new current task will be solved.

See what “To complete an issue” is.

How to complete a Feature

  1. Ask any question you have in the issue comments before starting
  2. Create a new branch named issue-${ISSUE_NUMBER}
  3. Implement a simple test to illustrate the desired functionality
  4. Write some code to complete this task
  5. Write some additional tests to cover edge cases and some possible errors
  6. Write documentation about what have you done and why you have done it this way
  7. Submit a merge request

How to fix a Bug

  1. Ask any question you have in the issue comments before starting
  2. Create a new branch named issue-${ISSUE_NUMBER}
  3. Write a test that is failing to validate that this bug exists
    1. If you can not recreate this bug, feel free to submit just a test with clear name and documentation linking to this issue
    2. If a test fails indeed, continue to the next step
  4. Now, when you have a regression test ready - create a fix for that bug
  5. Write any additional tests if needed
  6. Document in docstrings in general documentation what was wrong
  7. Submit a merge request

Do not close issues by hands

You should never close issues by hands. There’s only one way to close an issue: with a merge request. Any issue closed by anyone except the architect will be reopened.