Welcome! We appreciate your interest in contributing to array_split. If you haven’t done so already, check out the README

How to contribute

Workflow

The preferred workflow for contributing to array_split is to fork the array_split repository on GitHub, clone, and develop on a branch. Steps:

  1. Fork the array_split repository by clicking on the ‘Fork’ button near the top right of the page. This creates a copy of the code under your GitHub user account. For more details on how to fork a repository see this guide.

  2. Clone your fork of the array_split repo from your GitHub account to your local disk:

    $ git clone git@github.com:YourLogin/array_split.git
    $ cd array_split
    
  3. Create a feature branch to hold your development changes:

    $ git checkout -b my-feature
    

    Always use a feature branch. It’s good practice to never work on the master branch!

  4. Develop the feature on your feature branch. Add changed files using git add and then git commit files:

    $ git add modified_files
    $ git commit
    

    to record your changes in Git, then push the changes to your GitHub account with:

    $ git push -u origin my-feature
    
  5. Follow these instructions to create a pull request from your fork. This will send an email to the committers.

(If any of the above seems like magic to you, please look up the Git documentation online.

Coding Guidelines

  1. Unit test new code using python unittest framework.

  2. Ensure unittest coverage is good (>90%) by using the coverage tool:

    $ coverage run --source=array_split --omit='*logging*,*unittest*,*rtd*' -m array_split.tests
    $ coverage report -m
    
  3. Ensure style by using autopep8 and flake8 compliance:

    $ autopep8 -r -i -a --max-line-length=100 array_split
    $ flake8 array_split
    
  4. Use docstrings for API documentation and ensure that it builds with sphinx (without warnings) and renders correctly:

    $ python setup.py build_sphinx
    

    produces top level html file docs/_build/html/index.html.

Code of Conduct

array_split adheres to the Python Code Quality Authority’s Code of Conduct.