Contributing to NuPIC
Clone this wiki locally
Thank you for your interest in helping NuPIC improve and evolve. We are a passionate collection of developers interested in neocortical machine intelligence implementations from all over the globe.
You can find out more about the mechanics of contributions by watching the NuPIC Development Tutorial.
For instructions on building and installing NuPIC from source code in your environment, please see Installing and Building NuPIC.
Learn about the other contributors who you'll be working alongside.
- The NuPIC Roadmap
- Developer Communication
- Ways to Contribute
- Protocol and Processes
- Developer Resources
- Other References
What the future holds for NuPIC.
Our HTM Forum has a sub-category dedicated only to development discussion of NuPIC. This is used for planning and discussion of new features, as well as questions about how to implement them.
Developer Chat on Gitter
Separate from the public Gitter chat room, we have a developer-only room. This channel includes real-time updates from GitHub and Travis-CI.
Only NuPIC contributors are allowed to enter this chat room.
Ways to Contribute
Help Update This Wiki
You don't have to jump in by writing code. The best way to familiarize yourself with the NuPIC ecosystem is to peruse this wiki and inform yourself. If you see content that is missing or incorrect, please Contribute to the Wiki.
We're missing a lot of documentation. Here are some places to learn about how automatic code documentation works and how to do it:
We tag issues with a "help wanted" label when we are looking for community contributions. You can see all these tickets here.
Protocol and Processes
Below are some things you should familiarize yourself with before working on NuPIC.
A beginner's introduction to how we use git, Github, and Travis-CI for NuPIC development.
If you have a change you want to make, a bug you'd like to fix, or a new feature to implement, start here. This document will inform you about the process of developing NuPIC.
Provide technical details about how code changes are vetted, tested, approved, and eventually integrated into the master branch of our repositories.
Learn more about how NuPIC is released through the wiki linked above.
- rhyolight's nupic.devtools
- Development Tips
- NuPIC's Dependency on
- C++ Development Workflow
- Documenting Code
- External Libraries
- Planning Meeting Notes
- Profiling and Optimization for Speed
Coding Standards and Guides
- C/C++ Coding Guide
- CMake Style Guide
- Python Style Guide
- Contribution Standards
- C++11/14 References
- C++ Unit Tests
- Intermittently Failing Tests (Travis-CI)
- Contributor Model
- Agile Planning
- How to update numenta.org
- All NuPIC-related Repositories
- Issue Trackers
- Travis CI