# Contributing We appreciate you want to help us by contributing to Consul Democracy. Here's a guide we made describing how to contribute changes to the project. ## Reporting an issue If you have seen anything wrong in the platform performance or directly in the code, we encourage you to [open an issue in the Consul Democracy Github repository](https://github.com/consuldemocracy/consuldemocracy/issues/new). Before doing it, **please take some time to check the [existing issues](https://github.com/consuldemocracy/consuldemocracy/issues) and make sure what you are about to report isn't already reported** by another person. In case someone else reported the same problem before, if you have more details about it you can write a comment in the issue page -a little more help can make a huge difference! In order to write a new issue, take into account these few tips to make it easy to read and comprehend: - Try to use a descriptive and to-the-point title. - It's a good idea to include some sections -in case they're needed- such as: steps to reproduce the bug, expected behaviour/response, actual response or screenshots. - Also it could be helpful to provide your operating system, browser version and installed plugins. ## Resolving an issue [Issues in Consul Democracy](https://github.com/consuldemocracy/consuldemocracy/issues) labeled with `PRs-welcome` are well defined features ready to be implemented by whoever wants to do it. In the other hand, the `not-ready` label marks features or changes not well defined yet or subject to an internal decision, so we recommend not to try to resolve them until the admins come to a resolution. We suggest to follow these steps to keep a good track of the changes you're about to make: - First of all, add a comment to the issue to make everyone know you are going to work on it. If the issue has someone assigned it means that person is already solving it. - Fork the project. - Create a feature branch based on the `master` branch. To make it easier to identify, you can name it with the issue number followed by a concise and descriptive name (e.g. `123-fix_proposals_link`). - Check our [coding conventions](coding_conventions.md) to help you decide how to write your code. - Work in your branch committing there your changes. - Make sure all tests are passing. In case you're extending or creating a new feature, consider adding its own specs. - Once you've finished, send a **pull request** to the [Consul Democracy repository](https://github.com/consuldemocracy/consuldemocracy/) describing your solution to help us understand it. It's also important to tell what issue you're addressing, so specify it in the pull request description's first line (e.g. `Fixes #123`). - Our core team will review your PR and suggest changes if necessary. If everything looks good, your changes will be merged :) > **Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). ## Other ways of contributing We'll appreciate any kind of contribution to Consul Democracy. Even if you can't contribute to it coding, you still can: - Create issues about any problem or error you've encountered. - Help translate the platform to other languages you master at [Consul Democracy's Crowdin](https://crwd.in/consul). - Help with [Consul Democracy's documentation](https://github.com/consuldemocracy/docs).