# Contribution Standards

**URL:** https://discourse.numenta.org/t/contribution-standards/2130
**Category:** NuPIC
**Tags:** contributing, nupic-wiki
**Created:** [April 6, 2017, 5:50pm UTC](https://discourse.numenta.org/t/contribution-standards/2130 "2017-04-06T17:50:31Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![rhyolight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/rhyolight/32/3922_2.png) [@rhyolight](https://discourse.numenta.org/u/rhyolight)
#### Post date: [April 6, 2017, 5:50pm UTC](https://discourse.numenta.org/t/contribution-standards/2130/1 "2017-04-06T17:50:31Z")

</div>

## Style Guides

Code contributions must adhere to the following style guides.

- [Python Style Guide](http://nupic.docs.numenta.org/prerelease/contributing/python-style-guide.html)
- [C Coding Guide](http://nupic.docs.numenta.org/prerelease/contributing/cpp-style-guide.html)
- [CMake Style Guide](http://nupic.docs.numenta.org/prerelease/contributing/cmake-style-guide.html)
- [Javascript Coding Guide](https://github.com/numenta/numenta-apps/wiki/Javascript-Coding-Standards)

## Unit tests

You should always run the unit tests before making commits. If modifying C++ code, make sure you build the code after making the changes and run the relevant C++ tests.

## Lint

Please use Pylint with the included configuration file in `$NUPIC/py/pylintrc`. This will be picked up by Pylint when you run Pylint in `$NUPIC/py` or any subdirectory. We do not currently have lint set up for the C++ code (feel free to add it!).

## Git Hooks

There is a githooks directory that includes pre-commit and post-merge hooks. You should symlink this directory to `$NUPIC/.git/hooks`. The pre-commit will run the unit tests and check for Pylint errors. The post-merge hook will notify you if you need to rebuild based on the changes merged in.
