## Introduction Thank you for considering contributing to Neataptic! Neataptic is currently only maintained by a single developer, so every little bit counts! There are many ways you can contribute: updating the documentation, reporting a bug or creating a new feature. We also stimulate the creation of projects using Neataptic; this allows us to show how Neataptic can be used. ## Setting up the dev environment Setting up the developer environment is fairly easy: 1. Fork the repository (button on the topright corner of this page) 2. Clone the repository to your computer (clone from chrome [here](https://github.com/wagenaartje/neataptic)) 3. `cd` into the project directory, and run `npm install` And you are good to go! **PS**: we use the [Javascript Semistandard Style](https://github.com/Flet/semistandard)! ## Bugs Nobody likes them, and we understand that you want to get rid of them as soon as possible, but to assure that the debugging proces runs smoothly we need to have all the information possible about the bug. #### Reporting a bug We need a couple of things to process a bug report efficiently: 1. The version (1.x.x) 2. The error log (this allows us to trace the source of the bug) 3. What you were trying to do (e.g. connecting a node to a node) 4. (_if possible_) a piece of code that allows us to reproduce the bug 5. (_optionally_) Operating system and browser #### Fixing a bug When you encounter a bug and want to fix it, _create an issue first_. Then clearly say that you will create a pull request yourself that fixes the bug. This makes sure people are aware that the bug exists. What you have to provide in your pull request: 1. A link to the issue that describes the bug 2. (_if not in the issue yet_), a brief explanation of what was going wrong 3. How you fixed it 4. What the possible side-effects are of the code change And the pull request will be merged in no-time! ## Features Neataptic gets extended all the time! However we prefer qualitative over quantitative features - anyone can add a new `Activation` method for example, but you have to ask yourself if it really improves the project. But _always_ feel free to create a pull request with new features, as long as you incorporate the following: 1. What feature you are adding (/improving) 2. A usage example of the new feature (in code!) 3. Why you think it adds something to Neataptic 4. Possible side-effects of the new feature Afterwards, there will be quick response - but the pull request may take some time to be accepted, so we can give other contributors time to comment as well. PS: If you want to make big improvements/features, please create an issue or send an e-mail to wagenaartje@protonmail.com