#Welcome to Checkmate!
##About Checkmate is a cross-language (meta-)tool for static code analysis, written in Python. Unlike other tools, it provides a global overview of the code quality in a project and aims to provide clear, actionable insights to the user.
###Keypoints
- Provides a global overview of code quality in a project
- Plays nicely with 3rd party libraries and checkers (e.g. pylint, pep8, jslint, etc.)
- Keeps analysis results in a document-oriented database and allows for fast querying
- Can be easily extended to new code checkers or version control systems by creating plugins
###Current Status
The first working version of the tool nears completion, please be patient :)
Contributions are very welcome, and are greatly appreciated! Every little bit helps, and credit will always be given. Please read here, how you can contribute.
Are you ready to contribute? Here's how to set up checkmate
for local development.
-
First, make sure MongoDB is installed on your machine.
-
Fork the
checkmate
repo on GitHub. -
Clone your fork locally:
$ git clone [email protected]:<your_github_user_name>/checkmate.git
-
Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:
$ mkvirtualenv checkmate $ cd checkmate/ $ sudo python setup.py build install
-
Create a separate branch for each issues in your local development environment:
$ git checkout -b issue/<issue_id>_<issue_title> Example:$ git checkout -b issue/112_add_jslint
-
Now, make your changes locally.
-
When you're done with your changes, please commit and push them to your branch:
$ git add . $ git commit -m "Fix <issue_id>: detailed description of your changes." $ git push origin issue/<issue_id>_<issue_title>
-
Submit a Pull Request through the GitHub website.
Before you submit a Pull Request, check that it meets these guidelines:
-
Check on Quantifiedcode whether your code is free of errors (no login required).
-
The Pull Request should include tests.
-
If the Pull Request adds functionality, also the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.
-
The Pull Request should work for Python 2.6, 2.7, and 3.3, and for PyPy. Check https://travis-ci.org/quantifiedcode/checkmate/pull_requests and make sure that the tests pass for all supported Python versions.
To run a subset of tests:
$ python -m unittest tests.test_checkmate
-
Checkmate is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE (Version 3). To view a copy of this license, visit http://www.gnu.org/licenses/agpl-3.0.html.
-
Checkmate's documentation by QuantifiedCode UG (haftungsbeschränkt) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
If you have any questions, please get in touch with us: