Contributing info ================= To contribute, `pick an issue `_ to work on and leave a comment saying that you've taken the issue. Don't forget to mention when you want to submit the pull request. There are three main ways you can contribute at the moment: - by adding new validators; - by writing tests for existing validators; - by helping us reduce the technical debt. While writing our code, we simply adhere to `Kenneth Reitz's Code Style™ `_. We firmly believe that function names should start with a verb: ``count_pep8_violations``, ``is_pep8_fine``, ``has_no_syntax_errors``. When a particular convention is not documented, strive for consistency with the existing code and use your best judgement. Add new validators ^^^^^^^^^^^^^^^^^^ First, find out which validators to add in `Github Issues `_. If you have an idea of your own, make sure to create an issue first. `Write your validator `_ and put it in ``validators`` folder and an appropriate validator group. A good name for a validator would be the one that plays along nicely with the error message. For example, if the error message consists of a file name and a line number, then the validator name should indicate what is wrong with the line: ``too_nested``, ``fails_john_complexity``. Make sure you have the tests for your validator. Write tests for validators ^^^^^^^^^^^^^^^^^^^^^^^^^^ Before writing a test for validator, choose where to put it. The most suitable place would be ``test__validators`` module inside ``tests`` folder. Inside the module, create file ``test_.py`` and put all of the test cases there. Every validator group should have its own fixture repository located in ``test_fixtures`` under the name ``_repo``. Put the fixture files there. The name of the fixture files should reflect their contents, not what they are used for. So the good name for a function would be ``function_with_tabs`` and not ``function_to_test_are_tabs_used_validator``. This facilitates fixture reuse. Reduce technical debt ^^^^^^^^^^^^^^^^^^^^^ You are always welcome to `refactor `_ the existing code, fix and file bugs and improve documentation.